一、前言

随着工业自动化水平的不断提高,我们在做上位机开发的时候,会经常涉及到与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. QT6窗口系统之QT底层窗口QWindow:QT框架中哪些常见窗口是基于QWindow的? 如何实现QT框架栅格窗口?如何实现QT框架OpenGL窗口?

    QT6窗口系统之QT底层窗口QWindow:QT框架中哪些常见窗口是基于QWindow的? 如何实现QT框架栅格窗口?如何实现QT框架OpenGL窗口? 简介 本文介绍了QT6窗口系统中的QT底层窗口 ...

  2. Dos常用命令 - Dir

    Dos命令,用于扫描当前目录创建目录清单 dir /s /b /ad >> "目录清单.txt" 解释: 将 dir /s /b /ad 生成的目录 追加写入目录清单. ...

  3. Java项目笔记(三)

    一.前端传参类似以下格式,对象中包含一个对象,后台此时接收option为stirng类型 curriculumid question answer option {optionOne ,optionT ...

  4. 生理性喜欢(把我吃掉&病态饥饿)

    alloverzyt 转载好文章 https://www.zhihu.com/question/627599874/answer/3494578704 什么是生理性喜欢? 是吃掉. 这不是什么夸张的写 ...

  5. 全网最适合入门的面向对象编程教程:57 Python字符串与序列化-序列化与反序列化

    全网最适合入门的面向对象编程教程:57 Python 字符串与序列化-序列化与反序列化 摘要: Python 序列化与反序列化是将 Python 对象转换为字节流(序列化)以便存储或传输,和将字节流转 ...

  6. 多校A层冲刺NOIP2024模拟赛04

    T1.02表示法 竟然有出题人敢出高精度(其实只是一个把string转成01串),开场看出记搜后十分犹豫到底要不要写高精,徘徊很久还是写了个小高精. 码( /* GGrun */ #include&l ...

  7. KubeSphere 开源社区 2023 年度回顾与致谢

    2023 年结束了,让我们再一次一起回顾一下 KubeSphere 开源社区在过去一年的变化.更重要的是,本篇文章将会对 2023 年所有参与过 KubeSphere 社区贡献的成员致以最诚挚的感谢, ...

  8. 云原生周刊:Dapr v1.11 发布

    开源项目推荐 Kamaji Kamaji 可以大规模地部署和运行 Kubernetes 控制平面,而只需承担一小部分操作负担.Kamaji 的特别之处在于,控制平面组件是在一个单一的 pod 中运行, ...

  9. 宝塔linux 搭建

    前言 2020年的时候,用宝塔搭了个WordPress,一个人的博客不算是博客,没有社区氛围.就转到博客园了. 21年跟着教程,写了一个PHP的个人博客项目. 又有一台阿里云的服务器,就把代码部署上去 ...

  10. Java常见面试真题之中级进阶(HashMap篇)

    前言 本来想着给自己放松一下,刷刷博客,突然被几道面试题难倒!说说Hashtable 与 HashMap 的区别?HashMap 中的 key 我们可以使用任何类作为 key 吗?HashMap 的长 ...