MES 与 PLC 的几种交互方式
在 MES 开发领域,想要从 PLC 获取数据就必须要和 PLC 有信号交互。高效准确的获取 PLC 数据一直是优秀 MES 系统开发的目标之一。初涉相关系统开发的工程师往往不能很好的理解 PLC 和 MES 之间编程逻辑的本质差别,在设计交互逻辑是难免顾此失彼。因此本文结合本人这些年来和 PLC 交互的经验总结出一下几种交互方式和各自特点。
一、周期读取
周期读取就是按固定时间间隔来读取 PLC 数据。这种方式多用于读取设备心跳数据,设备工作状态,设备一般运行信息等,MES 只需要显示状态不需要进行逻辑的数据。
二、单向触发
单向触发是在 PLC 中定义一个触发点,在特定条件满足时把点位置为1,MES 读取到出发点跳变为1时,执行预定义的处理。 这种方式 PLC 和 MES 之间没有形成交互,无法实现相互动作的锁定。需要处理好触发时长和触发间隔,不然有丢失数据的风险。
以托盘进站交互作为例子,托盘进入工位后,工位 PLC 读取 RFID 内的托盘信息。之后置位托盘进站请求。此时 MES 以 1s 为周期的来读取托盘进站点位,当该点位由0变为1时读取工位信息并保存。如此循环。
交互时序图:

具体交互过程:
- PLC 准备工位信息
- PLC 置位托盘进站点位并保持 3s
- MES 读取到托盘进站点位上升沿
- MES 执行预定义的动作
三、一次交互(自复位)
单次交互虽然解决了从 PLC 获取数据的问题,但是非常依赖时间序列来实现交互关系。这样一个可靠的交互过程往往需要花费数秒的时间。一个工位通常又需要数次交互才能完成一个操作循环。这在分秒必争的工位节拍里是完全不可接受的。
以托盘进站交互为例子,设置了 PLC 和 MES 双方的交互点位,让双方可以知道对方状态并执行相应的动作。
交互时序图:

具体交互过程:
- PLC 准备工位信息
- PLC 置位托盘进站点位
- MES 反馈信息
- MES 反馈动作结果PLC 收到 MES 反馈结果后复位托盘进站点位和工位信息
- MES 收到 PLC 复位进站点位后复位反馈信息和进站结果
四、二次交互(手动复位)
二次交互在一次交互的基础上增加了手动复位功能。拥有了更加完善且完全可控的交互过程。可以通过组合的方式,实现各种复杂的交互逻辑。
交互时序图:

具体交互过程:
- PLC 准备工位信息
- PLC 置位托盘进站点位
- MES 反馈信息
- MES 反馈动作结果 PLC 收到 MES 反馈结果后复位托盘进站点位
- PLC 置位复位托盘进站点位,MES 收到 PLC 复位进站点位后复位反馈信息和进站结果
- PLC 收到 MES 进站结果复位后,复位复位托盘进站点位
MES 与 PLC 的几种交互方式的更多相关文章
- android Service Activity三种交互方式(付源码)(转)
android Service Activity三种交互方式(付源码) Android应用服务器OSBeanthread android Service Binder交互通信实例 最下边有源代码: ...
- Service Activity三种交互方式
Service Activity三种交互方式 2012-09-09 22:52 4013人阅读 评论(2) 收藏 举报 serviceandroidimportclassthreadjava ...
- 大数据--Hive的安装以及三种交互方式
1.3 Hive的安装(前提是:mysql和hadoop必须已经成功启动了) 在之前博客中我有记录安装JDK和Hadoop和Mysql的过程,如果还没有安装,请先进行安装配置好,对应的随笔我也提供了百 ...
- python与shell的3种交互方式介绍
[目录] 1.os.system(cmd) 2.os.popen(cmd) 3.利用subprocess模块 4.subprocessor模块进阶 [概述] 考虑这样一个问题,有hello.py脚本, ...
- android Service Activity三种交互方式(付源码)
android SDK提供了Service,用于类似Linix守护进程或者windows的服务. Service有两种类型: 本地服务(Local Service):用于应用程序内部 远程服务(Rem ...
- HTTP与服务器的四种交互方式
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE.URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP ...
- Ext.net中常用的三种交互方式
http://www.ext.net.cn/forum.php?mod=viewthread&tid=10433
- Android面试,与Service交互方式
五种交互方式,分别是:通过广播交互.通过共享文件交互.通过Messenger(信使)交互.通过自定义接口交互.通过AIDL交互.(可能更多) Service与Thread的区别 Thread:Thre ...
- python交互的几种方式
# 第一种交互方式 name = input("name:")age = input("age:")job = input("job:")s ...
- 西门子S7系列PLC的主要种类及应用软件
德国西门子(SIEMENS)公司生产的可编程序控制器在我国的应用也相当广泛,在冶金.化工.印刷生产线等领域都有应用.西门子(SIEMENS)公司的PLC产品包括LOGO,S7-200,S7-300,S ...
随机推荐
- Docker 必知必会3----使用自己制作的镜像
前面的两篇文章分别讲了,docker的基础概念,设计思路以及docker的基本操作.感兴趣的同学可以查阅: https://www.cnblogs.com/jilodream/p/18177695ht ...
- 4G EPS 的架构模型
目录 文章目录 目录 前文列表 EPS 的架构 EPS 的架构模型 E-UTRAN UE eNodeB EPC MME(移动性管理) SGW(本地移动性锚点) PGW(业务锚点) HSS(用户认证及鉴 ...
- 一次nginx文件打开数的问题排查处理
现象:nginx域名配置合并之后,发现consul-template无法完成nginx重载,然后发现需要重启nginx,才能让配置生效. 注意:下次哪个服务有报错,就看重启时所有日志输出,各种情况日志 ...
- 部署springboot+vue项目文档(若依ruoyi项目部署步骤)
摘自:https://blog.csdn.net/Dreamboy_w/article/details/104389797 部署springboot+vue项目文档(若依ruoyi项目部署步骤)一:部 ...
- StackExchange.Redis跑起来,为什么这么溜?
StackExchange.Redis 是一个高性能的 Redis 客户端库,主要用于 .NET 环境下与 Redis 服务器进行通信,大名鼎鼎的stackoverflow 网站就使用它.它使用异步编 ...
- HTML——input之密码框
在 HTML 中,把 <input> 标签的 type 属性设置为 password 可以表示密码框.具体语法格式如下: <input type="password&quo ...
- EndNote里参考文献的期刊名显示错误怎么办?
本文介绍EndNote文献管理软件导入文献引用时,期刊名称带有%J前缀从而不能正常显示的解决方法. 前期的文章中,我们多次介绍了文献管理软件EndNote的具体使用方法与技巧.而在使用EndN ...
- 日常Bug排查-MVCC和for update混用导致读数据不一致
日常Bug排查-MVCC和for update混用导致读数据不一致 前言 日常Bug排查系列都是一些简单Bug的排查.笔者将在这里介绍一些排查Bug的简单技巧,同时顺便积累素材. Bug现场 又是喜闻 ...
- 易盾逆向分析-知乎login
声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 目标网站 aHR0cHM6 ...
- ES备份恢复
1.官网提供snap快照备份恢复 https://www.elastic.co/guide/en/elasticsearch/reference/7.9/snapshot-restore.html 环 ...