一、前言

随着工业自动化水平的不断提高,我们在做上位机开发的时候,会经常涉及到与MES进行数据交互。

上位机与MES(Manufacturing Execution System,制造执行系统)之间的数据交互,大多数情况下都是MES提供数据接口,上位机按照MES的要求进行实施。

今天跟大家分享一下上位机与MES交互的常用方案。

二、文件方式

文件方式是一种较为传统的数据交互方式,其优点是简单、易于实现。上位机或 MES 可以定时生成文本文件或 Excel、XML 等格式的文件,然后对方通过文件夹检测或者FTP等方式获取到指定文件,根据文件内容进行相应的处理。

文件方式的缺点是传输效率较低,且容易出错。此外,文件的格式、传输方式等都需要双方进行严格的规定,否则容易出现数据丢失或不一致的情况。

三、数据库方式

数据库方式是利用关系型数据库(如SQLServer、MySQL、Oracle等)实现上位机与MES 的数据交互。上位机或 MES 可以通过 SQL 语句对数据库进行读写操作,实现数据的共享。

数据库方式的优点是数据存储规范、易于管理。此外,通过数据库事务处理,可以确保数据的完整性和一致性。缺点是数据库的部署和维护成本较高,对网络带宽有一定的要求。

这里要注意,尽量避免操作生产数据表,可以根据实际业务场景,通过新增一个专门用于交互的数据表,来减少操作失误。

四、TCP/IP方式

TCP/IP 方式是指上位机与 MES 通过 TCP/IP 协议进行数据交互。上位机或 MES 可以采用 Socket 编程,实现数据的双向传输。

TCP/IP 方式的优点是传输速度快、效率高。缺点是需要双方约定数据格式和传输协议,且网络不稳定时可能会出现数据丢失或不一致的情况。

五、通信协议

这个的通信协议指的是一些应用层的协议,比如ModbusTCP、MQTT、OPCUA等。这种方式的本质仍然是TCP/IP,只是不需要人为约定协议数据格式,我们只需要把注意力放到变量地址或变量名上。

通信协议方式的优点是传输速度快、效率高。缺点是需要均对该协议有足够的了解。

六、OPC方式

对于一些IT出身的人来说,为了方便,会使用KepServer来做数据交互,KepServer本身不仅可以走OPC,还支持数据库或Iot Gateway插件等一些方式。

OPC方式的优点就是简单便捷,但是缺点也很明显,首先就是收费的问题,KepServer的授权费用较为昂贵,并且通信效率要相对较低。

七、WebService方式

WebService 是一种基于 XML 的服务架构,它不受语言和平台限制,可以实现不同语言之间的相互调用。上位机和 MES 可以通过 WebService 进行数据交互,实现跨平台、跨语言的数据共享。

WebService 方式的优点是跨平台、跨语言,易于集成。缺点是需要对 WebService 进行详细的定义和部署,实现起来相对复杂。

八、WebApi方式

RESTful API 是一种基于 HTTP 协议的轻量级 WebService 架构,它简单、易于实现。上位机和 MES 可以通过 RESTful API 进行数据交互,实现数据的共享。

RESTful API 方式的优点是简单、易于实现。缺点是需要对 RESTful API 进行详细的定义和部署,实现起来相对复杂。

这个也是目前比较主流的一种交互方式。

上位机与MES数据交互的常用方案的更多相关文章

  1. 1-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(来看一下怎么样监听网络数据,监听电脑上位机软件的数据)

    首先安装网络监听软件 运行这个软件 这个软件安装到电脑上,默认是监听咱电脑上的网络通信 咱们先监听电脑的软件的网络通信数据,然后再说怎么监听Wi-Fi和APP的软件的网络通信数据 咱就监听咱基础篇的 ...

  2. 上位机-串口通信详解(以RS232为例))

    1.什么是串口通信? 写这个的时候我在想应该怎么解释串口通信,因为串口通信很多朋友不了解的原因是涉及到硬件的知识,对于没有相关专业知识的朋友很难理解串口通信.所以我这里只做部分的解释,需要了解更多硬件 ...

  3. 2018最新mfc作为上位机接收硬件端USB或串口数据显示成图片 解决串口接收数据丢字节丢包问题

    原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/9490616.html 本文用的是VS2013MFC写串口数据接收: 第一步:首先建立一个MFC ...

  4. ROS常用库(二) Serial库(单片机和上位机串口通讯)

    比如我们做了个单片机,在win里面用串口调试助手接收和下发数据,那么在ubuntu里用ros怎么实现?换个说法,怎么实现上位机和下位机的通讯? 首先,用python自带的库就可以实现这个功能. 安装p ...

  5. WPF 界面布局、常用控件入门教程实例 WPF入门学习控件快速教程例子 WPF上位机、工控串口通信经典入门

    WPF(Windows Presentation Foundation)是一种用于创建 Windows 桌面应用程序的框架,它提供了丰富的控件库和灵活的界面布局,可以创建现代化的用户界面.下面是 WP ...

  6. Protobuf 完整解析 - 公司最常用的数据交互协议

    Google Protocol Buffer(简称 Protobuf)是一种轻便高效的结构化数据存储格式,平台无关.语言无关.可扩展,可用于通讯协议和数据存储等领域. 数据交互xml.json.pro ...

  7. 快速设计一个简单的WPF串口上位机

    最近一直在学习UWP,其中有的技术参考了WPF,所以又回头再来学习WPF,感觉学的东西很杂,必须记录一下,不然时间长了还得忘掉,于是申请开始写博客,将学习的心得记录一下,以备后用.这次是因为公司内训, ...

  8. 【实验室笔记】C#上位机学习笔记

    用C#编写上位机,基本流程是[1]串口配置,[2]串口发送数据,[3]串口接收数据. [1]串口配置 串口的属性配置包括: No.1串口端口号 No.2串口波特率 No.3串口数据位 No.4串口停止 ...

  9. C#上位机串口控制12864显示

    实现的效果 上面是用Proteus仿真的,,对了如果自己想用proteus仿真需要安装下面这个软件 再看一下实物显示效果 先做上位机部分........... 为了程序一启动就把电脑上能用的串口号显示 ...

  10. 医疗器械c#上位机开发指引教程

    此教程面向的读者:对医疗器械上位机编程有兴趣,或者急需了解医疗器械(尿常规.血液分析.生化.心电.B超等医疗下位仪器)的编程流程.编程细节的程序员. 1.得到仪器协议 当我们需要与医疗器械等下位机数据 ...

随机推荐

  1. Servlet——简介

    Servlet    快速入门   1.创建web项目,导入Servlet依赖坐标 <dependencies> <dependency> <groupId>jav ...

  2. 如何用VMWARE创建一个Linux虚拟机

    序言 各位好啊,我是会编程的蜗牛,作为java开发者,我们都是需要接触Linux服务器的,一般部署应用都是部署在Linux服务器上的~ 但一般的服务器要么需要购买,要么只是公司里的,那么有没有免费的L ...

  3. 《Vue.js 设计与实现》读书笔记 - 第9章、简单 Diff 算法

    第9章.简单 Diff 算法 9.1 减少 DOM 操作的性能开销 在之前的章节,如果新旧子节点的类型都是数组,我们会先卸载所有旧节点,再挂载所有新的子节点.但是如果存在相同类型的节点,我们完全可以复 ...

  4. 在Windows平台使用源码编译和安装PyTorch3D指定版本

    最近在部署 SyncTalk 虚拟数字人项目时,需要安装很多依赖项,在执行到pip install --no-index --no-cache-dir pytorch3d -f https://dl. ...

  5. Redis数据库常见命令

    Redis数据库常见命令 Linux启动Redis # 启动服务 redis-server # 开启客户端 redis-cli # 关闭redis服务 shutdown #查看服务是否运行 ping ...

  6. KubeSphere 社区双周报 | KubeSphere 多项更新 | 2023.06.23-07.06

    KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书.新增的讲师证书以及两周内提交过 commit 的贡献者,并对近期重要的 PR 进行解析,同时还包含了线上/线下活动和布道推广等一系列 ...

  7. 会话层技术-session

    会话层技术-session session技术拿下! 一.先整理学习过程中的几个疑惑 cookie和session分别都是怎么创建的? 首先cookie是一个类,它需要java后端开发人员手动创建. ...

  8. HTML字体分类

    网页中的将字体分为5大类 1.serif:衬线字体 2.sans-serif:非衬线字体 3.monospace:等宽字体 4.cursive:草书字体 5.fantasy:幻虚字体 <p st ...

  9. snap和apt的区别简单了解[]

    Linux中没有tree命令的时候提示安装的时候出现了两个命令,简单看了看两者有何区别(一般用apt就可以了):   sudo snap install tree 和 sudo apt install ...

  10. 字符串、列表、元组、字典(python)

    文章目录 1.python字符串 1.1 python访问字符串中的值 1.2Python 字符串连接 1.3Python字符串运算符 2.python列表 2.1访问列表中的值 2.2更新列表 2. ...