完成了s7-300作为slave的modbus tcp测试,接下来测试异常情况:

1是通讯中断。由于s7-300作为slave,即tcp server,始终是在等待连接,所以通讯中断后不需要主动发起连接。经过反复测试(关闭、打开modbus 模拟器,并且换了不同的模拟器软件,都能重新连接上plc建立通讯)

2是plc断电或者stop,重新运行,这时发现就不能与通讯伙伴重新建立连接了。对于这种情况其实也很简单,在程序中加一个断开连接(FB66) 重新发起连接(FB65)的功能,然后在ob100中对一个bool变量置位,plc重新运行后就会重新发起一次连接了。

西门子plc温度检测库的调用(DCS与西门子S7-300PLC的ModbusTcp通讯)(1)

西门子plc温度检测库的调用(DCS与西门子S7-300PLC的ModbusTcp通讯)(2)

,