1200 MODBUS tcp 通讯,MB_SERVER编程

1200作为服务器端,通过modbus tcp协议与上位进行通讯。客户端连接上后,进行相应的读取、写入操作,断开客户端的连接后,MB_SERVER的status状态一直在7006(准备读取数据),这样客户端再次连接就无法连接上了,想问下,PLC中该如何编程才能让MB_SERVER的连接断开,处于7002(等待客户端连接)等待客户端下次的连接的状态。
之前开过一个贴子,有人回答了:用MB_SERVE块的ERROR常闭触点串联到ActiveEstablished引脚线圈就可以了。
可我用的MB_SERVER 4.0版本,没有这个引脚,该怎么办啊?

问题补充:
图片补充

图片说明:

1200 MODBUS tcp 通讯,MB_SERVER编程   

最佳答案

4.0版本也有ERROR引脚的啊
通过DR引脚
DR 为0代表无读取的数据;为1代表从 Modbus 客户端读取的数据 
如果DR=0 状态等于7006一段时间,就自动把DISCONNET设置成1,然后再设置成0可以吗?
参考:
西门子 S7-1200 PLC 技术参考 V3.3
https://support.industry.siemens.com/cs/cn/zh/view/73600209
s7-1200PLC - 通信 - 以太网通信 -modbus tcp - modbus tcp v4.0 指令
补充
您说的是 ActiveEstablished 引脚吧,他在CONNECT引脚的数据里面
 CONNECT  IN_OUT   Variant  引用包含系统数据类型为“TCON_IP_v4”的连接参数的数据块结构。 
参考手册:
SIMATIC S7 S7-1200 可编程控制器 系统手册
https://support.industry.siemens.com/cs/cn/zh/view/109741593
1329页 上下文内容

图片说明:

1200 MODBUS tcp 通讯,MB_SERVER编程  

提问者对于答案的评价:
非常感谢!!

专家置评

S7-1200作为服务器,断开连接后,MB_SERVER的STATUS状态会为7002,等待客户端连接,不需要复位

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc148099.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月3日 上午11:50
下一篇 2017年6月3日 上午11:50

相关推荐