比如MODBUS TCP通讯,如果网线拔掉了,不应该检测到通讯中断吗?用MB_SERVER功能块举例,其他它的背景数据块里有一个Connected变量,就是显示通讯是否连接的,那用这个检测是不是就可以不用再做心跳检测了?我觉得是可以的,但是测试的时候我发现拔掉网线,36秒后Connectet才变为false,这个时间就有点长了,但是这个时间是能设置的,我们在设备组态内的PN接口中的接口选项中,有一个“保持连接监视”,这里默认是30s,我把它改位3s,再拔掉网线测试,差不多9s才显示断开,为什么都会比设定的时间多6s呢?是因为这个6S还能不能缩短,在哪设置?
问题补充:
这个好像只有客户端可以修改尝试连接次数,服务端没有,我想问下服务端可以修改尝试连接次数吗?按说服务端是被动连接的,但是服务端也有Connected检测,它是如何检测的。
图片说明:
产品版区:SIMATIC Net
悬赏西币:5 | 解决时间:2020-09-24 10:36:52 | 提问者: 勿以泪惧 - 资深学长  第3级
最佳答案
回答者:
ISIEMENSID
-
顶级工程师  第12级
2020-09-10 19:16:51
提问者对于答案的评价:
非常感谢!
专家置评
基于TCP/IP 的连接,网线断后,需要等到keepalive 握手时间超时才能判断连接中断,这是TCP/IP 的机理决定的
置评专家:西门子自动化产品支持 2020-09-24 14:10:52