ayusecret
级别: 略有小成
精华主题: 0
发帖数量: 183 个
工控威望: 261 点
下载积分: 806 分
在线时间: 73(小时)
注册时间: 2021-10-31
最后登录: 2024-11-18
查看ayusecret的 主题 / 回贴
楼主  发表于: 2022-06-09 08:31
最近基于Python写了一些测试MC协议的代码,想测测断线重连的功能,发现拔了网线后再插上,用原来的套接字无法与PLC通讯(下断点调也无法实现).监控PLC网络状态仍然处于连接中(与之前的套接字连接).如果我在Python程序内重新以一个新的套接字去尝试连接,会回复目标计算机积极拒绝.这样我只能复位PLC才能断开PLC的连接状态,这在实际应用应该是不允许的.后面再Gxword3内配置参数,让PLC自己10s后监视生存,再反复3次监视确认自动断开.想请教各位在用上位机是如何实现断线重连的,又或者是即使无重连功能,重新初始化是如何连上PLC的
13821917697
承接电气自动化项目、电气接线图设计、IO点表、电气元器件选型
级别: 工控侠客
精华主题: 0
发帖数量: 755 个
工控威望: 3141 点
下载积分: 13344 分
在线时间: 1067(小时)
注册时间: 2019-12-26
最后登录: 2024-11-18
查看13821917697的 主题 / 回贴
1楼  发表于: 2022-06-09 11:00
图片:
Python的不太懂啊,C#最近刚好做了个这么功能可以跟你说说思路。首先套接字断线之后是不能沿用原先的连接的,我这里做的方式是重新new了一下。用一个新的连接。建立一个bool变量作为标志位,初次连接成功之后,标志位置反,开始正常工作。如果断开连接,try里面的正常工作指令会报错跳到catch,这里我们把套接字dispose全部释放,并且标志位初始化。然后就又开始重新连接了。就是这样