1、项目使用的版本:
python-snap7 = 3.1.0
2、这是我在项目使用的 Client 对象初始化方式:
self.client = Client(
auto_reconnect=True, # auto_reconnect=True: 连接断开时自动重连
max_retries=sys.maxsize, # max_retries=sys.maxsize: 无限重试次数
retry_delay=1.0, # 初始1秒
backoff_factor=1.0, # 指数增长
max_delay=5.0, # 最大5秒(避免等待过长)
on_disconnect=self._on_disconnect,
on_reconnect=self._on_reconnect
)
补充:批量读取标签(read_tags) 一次为 15个,线上有100个标签,本地有6个标签。同时我问了AI给我的回答是(本地只配置了少量变量,所以走了单 block 路径,触发了 auto_reconnect。 线上配置了多个变量,走了多 block 路径,没有触发重连),作为使用者我来说,使用read_tags是不关心一次批量读取多少,它应该是 PLC 掉线了就触发重新连接。
3、错误:我使用读取标签的方法:read_tags 本地测试掉线重连正常,线上正式掉线重连启动失败。
下面是我的日志,我发现 Client 内部调用的代码逻辑不一致:
1、项目使用的版本:
python-snap7 = 3.1.0
2、这是我在项目使用的 Client 对象初始化方式:
补充:批量读取标签(read_tags) 一次为 15个,线上有100个标签,本地有6个标签。同时我问了AI给我的回答是(本地只配置了少量变量,所以走了单 block 路径,触发了 auto_reconnect。 线上配置了多个变量,走了多 block 路径,没有触发重连),作为使用者我来说,使用read_tags是不关心一次批量读取多少,它应该是 PLC 掉线了就触发重新连接。
3、错误:我使用读取标签的方法:
read_tags本地测试掉线重连正常,线上正式掉线重连启动失败。下面是我的日志,我发现 Client 内部调用的代码逻辑不一致: