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 ...
随机推荐
- 4G 信令中的 PCO 字段
目录 文章目录 目录 Protocol Configuration Option Protocol Configuration Option PCO(Protocol Configuration Op ...
- IPv6 — 地址格式与寻址模式
目录 文章目录 目录 前文列表 IPv6 的地址格式 站点前缀 地址生成方式 IPv6 地址的分类以及寻址模式 单播(Unicast)地址 Interface ID 全球唯一地址(Global Uni ...
- 腾讯、阿里、B站最新面经汇总,有的妥妥的凉经
除了BAT(没错我说的B是B站的B),还有网易.希音科技.美柚等中小厂的最新面经. 这次投稿的同学行文幽默风趣,处处透漏着不成功便搞笑的骚气. 祝他早日上岸,也欢迎大家在评论区讨论这些面试题,有哪些面 ...
- docker flannel网络
部署etcd github部署访问链接:https://github.com/etcd-io/etcd/releases/ ETCD_VER=v3.5.1 # choose either URL GO ...
- 昇腾开发全流程 之 MindSpore华为云模型训练
前言 学会如何安装配置华为云ModelArts.开发板Atlas 200I DK A2, 并打通一个训练到推理的全流程思路. 在本篇章,首先我们开始进入训练阶段! 训练阶段 A. 环境搭建 MindS ...
- go 有向简单图 十字链表
package main import "fmt" type CrossEdgeNode struct { tailVex int // 尾顶点 headVex int // 头顶 ...
- 薄书的Gitee 码云使用教程学习纪录
git 使用帮助 参考: https://www.liaoxuefeng.com/wiki/896043488029600/1163625339727712 https://blog.csdn.net ...
- 使用 TiDB Vector 搭建 RAG 应用 - TiDB 文档问答小助手
本文首发至TiDB社区专栏:https://tidb.net/blog/7a8862d5 前言 继上一次<TiDB Vector抢先体验之用TiDB实现以图搜图>后,就迫不及待的想做一些更 ...
- REACT列表过度
<TransitionGroup> <CSSTransition> <li>aaaa</li> </CSSTransition> </ ...
- LeetCode 40. Combination Sum II 组合总和 II (C++/Java)
题目: Given a collection of candidate numbers (candidates) and a target number (target), find all uniq ...