在 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 进站结果复位后,复位复位托盘进站点位