MES与PLC集成时的几种握手方式及特点

news/2025/3/24 2:03:12/文章来源:https://www.cnblogs.com/crycai/p/18230384

方式1:定期抓取数据

某些设备的关键工艺参数(如变速器轴齿热处理炉的温度)非常重要,需要定期抓取以生成实时曲线,及用于长期追溯分析。

这些工艺参数通常都是模拟量,数值始终不停地变化。

通常我们可以通过OPC软件读取这些数据,经过精度处理,然后定期写入实时数据库中。

这些数据的特点是:读取频率高,数据变化小,因此存入数据库时会存在大量重复的记录,而实时数据库提供数据压缩的功能,特别适合此类数据的存储。

方式2:基于条件触发

有许多工艺参数(如螺栓的拧紧值)的收集,主要是用于事后的质量追溯分析的,通常我们会定义一个触发信号通知MES读取。

比如发动机在某工位完成物理装配作业后,PLC会把关键的工艺参数写入数据交换区,然后给DATA_READY信号置位。

而MES会每隔1秒扫描监听DATA_READY信号,当此信号处于高位时,则读取数据交换区的质量追溯数据。

可参考下图:

具体握手过程为:

1、发动机完成某个装配步骤,PLC写入参数1。

2、发动机完成某个装配步骤,PLC写入参数2。

3、发动机完成所有物理装配作业,PLC将DATA_READY置位。MES读取参数1、参数2。

4、发动机准备离开当前工位,PLC将所有数据复位。

方式3:请求-响应机制,1次握手

这种方式和IT系统的MQ/WEB SERVICE等消息处理机制非常类似。

如发动机上线工位,MES给PLC下发工单,过程可参考下图:

具体握手过程为:

1、PLC在PLC_MSG写入请求数据,如工位,同时将REQUEST_SENT置位。

2、MES扫描到REQUEST_SENT,读取PLC_MSG,然后生成工单数据,并写入MES_MSG,同时将RESPONSE_SENT置位。

3、PLC扫描RESPONSE_SENT,读取MES_MSG并写入本地数据块,然后将REQUEST_SENT和PLC_MSG复位。

4、MES将所有数据和控制位复位。

我们可以看出,整个数据交换的过程只发生了1个来回,即1-2步,而3-4步是将消息销毁的动作。

这种方式还有一个特点,就是封装性好,同样一个接口,既可以下发工单,也可以上传过站数据,区别在于PLC_MSG/MES_MSG里存储的数据内容不一样。

方式4:请求-响应机制,2次握手

同样是发动机上线的例子,过程可参考下图:

具体握手过程为:

1、PLC在PLC_MSG写入请求数据,如工位。

2、PLC将REQUEST_SENT置位。

3、MES扫描到REQUEST_SENT,读取PLC_MSG,然后发送REQUEST_RECEIVED。

4、MES生成工单数据,并写入MES_MSG。

5、MES将RESPONSE_SENT置位。

6、PLC扫描RESPONSE_SENT,读取MES_MSG并写入本地数据块,然后将RESPONSE_RECEIVED置位。

7、MES扫描RESPONSE_RECEIVED,将所有数据和控制位复位。

8、PLC将本地数据和控制位复位。

我们可以看出,整个过程相当于进行了2次握手,其中1-3步是第1次握手,用于接收请求;4-8步是第2次握手,用于下发数据。

我们可以看出,方式4比方式3繁琐很多,但是这种方式在实际项目中用得还非常多。这是因为完整响应时间可能多达数秒,而PLC的扫描周期只有几十毫秒,中间多出的状态位可以作为状态指示缓解工人等待的焦虑,也可以作为断点方便通信调试。

方式5:基于工位生产周期

在一些工位,会有多个关键的业务过程,比如发动机上线工位先上线,然后装配,最后发送过站记录。

那么在一个完整的工位生产周期中,PLC需要和MES做2次数据交换,第1次下载工单,第2次上传过站记录,如下图所示:

具体握手过程为:

1、发动机到达,PLC给ENGINE_ARRIVAL置位。

2、PLC检查托盘、设备、物料,条件具备后将STATION_READY置位。

3、MES将STATION_READY_RECEIVED置位。

4、MES将工单数据写入MES_DATA。

5、MES将MES_DATA_SENT置位。

6、PLC将MES_DATA写入本地数据块,并将MES_DATA_RECEIVED置位。

7、MES复位IT侧所有数据和状态位。

8、PLC开始本工位的装配作业,并将发动机序列号写入ENGINE_SN。

9、PLC装配完成后,PLC将PLC_COMPLETE置位。

10、MES将PLC_COMPLETE_RECEIVED置位。

11、MES执行过站逻辑,完成后将MES_COMPLETE置位。

12、PLC将MES_COMPLETE_RECEIVED置位。

13、MES复位IT侧所有数据和状态位。

14、发动机准备离开,PLC将ENGINE_LEAVE置位。

15、PLC复位所有数据和状态位。

我们可以看到,此方式非常繁琐,但是优点是:

生产周期中的关键状态都有体现,可以很方便地通过HMI进行监控。

PLC状态对应于实际的生产执行情况,发生问题时容易追踪。

程序出错时,可以很直观地看到通信执行到哪一步。

另外,我们还应理解,下载工单和上传过站记录都只是完整生产周期的一部分,并且有内在的逻辑联系,比如:在装配的过程上发现缸体有问题,需要换一个缸体上线,此时由于MES还没有接收到过站记录,因此即使在第2次接收到STATION_READY信号时,MES下发的仍旧是同一个工单,这样就可以有效避免工单和发动机序列号的损失。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/719754.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RAID 存储策略

这篇文章总结不错: https://cloud.tencent.com/developer/article/2304179RAID x 存储策略 备注0 无备份,分条存储1 镜像备份5 使用奇偶校验,分条存储6 使用双奇偶校验,分条存储10 RAID0 + RAID150 RAID0 + RAID560 RAID0 + RAID6分条存储,数据被有意打散放在不同的磁盘上…

npm报错A complete log of this run can be found in:的解决办法

npm 启动项目 npm run serve/dev的时候报了个错:再次记录一下 1.问题原因 项目启动失败,一直报错,翻译一下,大概意思就是依赖包或者模板有问题 2.解决方法 (1)需要找到node_modules把这个文件夹删掉 (2)然后cmd或者vscode终端再运行npm install即可,这个命令会重新安装…

SQL之HAVING

初识 HAVING 关于 SQL 中的 HAVING,相信大家都不陌生,它往往与 GROUP BY 配合使用,为聚合操作指定条件 说到指定条件,我们最先想到的往往是 WHERE 子句,但 WHERE 子句只能指定行的条件,而不能指定组的条件,因此就有了 HAVING 子句,它用来指定组的条件。我们来看个具体示…

SQLite 删表后删物理文件

sqlite 删除表后文件还是很大如果在SQLite中删除了一个表,但是文件大小没有减小,这通常是因为SQLite的空间回收机制。SQLite不会在删除数据后立即重新缩小数据库文件,以避免频繁的文件大小调整。 要减小文件大小,可以使用VACUUM命令。VACUUM命令会重建数据库文件,删除未使…

idea - git的提交日志框不见了 -解决

有时候不小心点了什么快捷操作导致没了,需要在设置这里勾选上即可 本文来自博客园,作者:岑惜,转载请注明原文链接:https://www.cnblogs.com/c2g5201314/p/18230341响应开源精神相互学习,内容良币驱除劣币

连接 Dynamics 365 Customer Engagement (on-premises)

AuthType = AD创建项目模板是.NET framework 4.6.2的控制台程序添加nuget包 Microsoft.CrmSdk.CoreAssemblies,Microsoft.CrmSdk.XrmTooling.CoreAssemblyProgram类添加以下代码 using System; using System.Configuration; using Microsoft.Crm.Sdk.Messages; using Microsoft…

visual studio 2019 c++与汇编混合代码

1、visualstudio2019下x64架构的CPU配置不支持内联汇编代码的嵌入,即不支持__asm{}语句。 2、通过创建.asm汇编代码文件封装汇编函数的方式实现c++代码调用汇编函数: 第一步:修改工程的生成依赖项第二步:创建.asm汇编代码文件第三步:编写汇编代码的函数第四步:在c++文件调…

基于ReAct机制的AI Agent

当前,在各个大厂纷纷卷LLM的情况下,各自都借助自己的LLM推出了自己的AI Agent,比如字节的Coze,百度的千帆等,还有开源的Dify。你是否想知道其中的原理?是否想过自己如何实现一套AI Agent?当然,借助LangChain就可以。当前,在各个大厂纷纷卷LLM的情况下,各自都借助自己…

正也科技之芒哥合规管理系统解决方案

正也科技的芒哥合规管理系统是一个针对医药企业的合规性解决方案,旨在帮助企业建立并维护一个符合法律法规要求的合规管理体系。该系统结合医药行业的特点,为企业提供了一系列合规管理工具和功能,以应对复杂的合规挑战。以下是芒哥合规管理系统的主要优势: 全面的合规性支持…

《计算机网络微课堂》实验23 VLAN间通信的实现方法:使用三层交换机

本仿真实验的目的在于验证 VLAN 间的通信可以使用三层交换机来实现。本仿真实验的目的在于验证 VLAN 间的通信可以使用三层交换机来实现。我已经在仿真软件中构建好了我们理论课中所使用的网络拓扑,并在各主机的旁边都标注好了所需配置的 IP 地址和地址掩码。 ​​ ‍博主注:…

《计算机网络微课堂》实验25 动态主机配置协议DHCP的作用

本仿真实验的目的在于验证动态主机配置协议 DHCP 的作用。下面我们来进行一个仿真实验,本仿真实验的目的在于验证动态主机配置协议 DHCP 的作用。 我已经在软件中构建好了我们理论课中所使用的那个例子,并在各设备旁边标注出了所需的配置信息,我们的应用需求是不给局域网中的…

《计算机网络微课堂》实验21 VLAN间通信的实现方法:多臂路由

本仿真实验的目的在于验证微软件的通信可以使用多臂路由来实现。‍‍本仿真实验的目的在于验证微软件的通信可以使用多臂路由来实现。‍‍ ‍ 我已经在仿真软件中构建好了我们理论课中所使用的网络拓扑,‍‍并且在各主机和路由器的各接口旁边都标注好了所需配置的 IP 地址和地…