当前位置: 主页 > PLC控制

1200 MODBUS tcp 通讯,MB_SERVER编程

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

问题补充:
图片补充

图片说明:

1200 MODBUS tcp 通讯,MB_SERVER编程591f7f1045fb030d88dc55c4ae7b9434

最佳答案

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

图片说明:

1200 MODBUS tcp 通讯,MB_SERVER编程1200 MODBUS tcp 通讯,MB_SERVER编程

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

专家置评

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

  • 关注微信

猜你喜欢

微信公众号