| 作者 | 主题 |
|---|---|
|
宁超 至圣 经验值:11564 发帖数:1009 精华帖:39 |
楼主
主题:【分享】Modbus通讯失败后数据一直保持不变,差点引起事故,检查Modbus通讯失败次数
已经不是第一次碰到业主提出这样的问题: Modbus通讯读取的数据存放到PLC的DB块后,当通讯丢失了以后,WinCC上任然显示的是最后一次通讯正常录入DB数据块的一个正常值,让操作人员和维护人员都误认为一切正常,比如电机温度,轴承温度等。过了很长时间甚至是出了事故后才发现那个值原来一直都没有变过!! 于是有了这样的要求:通讯失败时要报警提示或者清零数据 STL代码: ///////////////////////////////// L DIB [AR1,P#0.0] //该站累计的错误次数超过了设定的最大限度,如错误次数达到5次 //以下程序目的是将从站错误标志位放入Dword里(UserStatus ) //如只有Slave1和Slave3从站错误,那么Dowrd的值应该是 //00000000 00000000 00000000 00000101 //////////////////////////////// L #Slave ----------------------------------------------------------------------------------- 然后 : 有了状态字后就可以通过取BooL位来触发报警了。也可以指示从站的错误位置。 |