想要实现在通信断掉的情况下实现程序运行终止,或者说在西门子PLC程序中怎样实现在通信正常的情况下输出数字量1,断开的情况下输出为0!
最佳答案
1、实现的方法很多,不要应用通讯模块本身来检测(通讯模块发生故障时检测不了),例如通常应用的测心跳方法,即主站与分站约定一信息位,主站S7-300可用OB35发送脉冲,分站S7-200检测该信息位,如在一定的时间内该信息位无变化,则认为无心跳了,即为通讯故障。
2、或者说在西门子PLC程序中怎样实现在通信正常的情况下输出数字量1,断开的情况下输出为0?
完全可以应用上述的方法,即有心跳时输出数字量1,无心跳了则输出0.
2、有关总线通讯中的看门狗 – 心跳检测
http://www.davidrobot.com/2011/06/bus_communication_monitoring_watchdog_livebit.html?replytocom=1052
3、也可以应用系统诊断功能:
《DP诊断功能块的使用》:
http://www.gongkong.com/Common/Details.aspx?c=1&m=4&l=6&Type=article&CompanyID=8-B9F2-1F2B4D8D438E&Id=9-AD59-3DB519CB0B83
《PROFIBUS-DP诊断完全解决方案》:
http://www.gongkong.com/common/Details.aspx?c=1&m=4&Type=datum&CompanyID=&Id=5-A925-308889FFFFFF
参见《使用OB8x诊断SIMATIC PLC》:
http://www2.ad.siemens.com.cn/download/Upload/AS/application/A0059.zip
STEP 7诊断硬件和网络故障的方法,参考:
http://blog.gkong.com/more.asp?name=liaochangchu&id=117288
http://falogix.com/?p=495
提问者对于答案的评价:
谢谢了。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc242813.html