恭喜,你发布的帖子
发布于 2020-10-07 10:14:45
10楼
1、MCGS这个屏是不支持底层S7通讯的,只支持I、Q、M、V四个片区的RAM读取,所以读取不到PLC的RUN/STOP状态的。
2、心跳信号只是作为通讯通、断状态的判断,屏的数据表第一个寄存器就是通讯状态字,值为0是正常、其他值是通讯异常,没必要用心跳信号。
3、就你现在采取的心跳信号来切换工作状态,如果是通讯不稳定引起的触摸屏自动切换工作模式,当通讯恢单PLC不是STOP模式,那么就有可能导致程序不按你想要的模式工作了。如果通讯很差频繁的通、断?你这样做简直是灾难制造者!到时候别拿通讯干扰大来当借口,这个借口站不住脚的。
4、很多控制,都是居于应用层的STOP/RUN,而不是靠硬件的STOP/RUN来实现功能。举个栗子,PLC控制电机是用程序逻辑实现启动、停止控制,而不是靠PLC的RUN、STOP来控制电机。所以,你上面的程序逻辑这样做简直是太儿戏。
额 我回复下大佬的问题啊 首先呢 我这个并不是完全应用在工程上的 这只是一个开阔思路的小程序.并不是说要在现场设备上实现.
1.这个确实 没有办法直接读取
2.这个解决方案我试过 但是要求是检测plc的运行或停止状态 并不是通讯状态,. 在我的测试中 使用mcgs的设备通讯状态通道只要和plc通讯上了 就算我把plc打回stop状态 通道的值依然是0 即没有断开. 所以我觉得可能是plc虽然停止了 但是并没有断开与屏幕的通讯导致的 所以论坛上咨询下大神们 最后选择了这个心跳信号的方案 而且也解决了
3.这个心跳信号啊 是屏幕脚本做的 而且只读取plc的 run/stop状态 并不参与plc的程序控制 也不控制plc的实际状态 他只是在屏幕上显示出来当前plc的工作状态而已. 可能是我之前没有描述清楚误会了.
请填写推广理由:
分享
只看
楼主