使用 pyads 非常频繁地打开和关闭与 PLC 的连接

Open and close a connection to a PLC very frequently using pyads

所以我有一个 flask 应用程序,它将提供由 PLC 管理的某些模块的状态。我会在我的应用程序上收到非常频繁的 GET 请求(~每 1 秒),并且每次 GET 调用时,我都必须从 PLC 获取状态。我正在使用 pyads 连接到 PLC。它们连接到 PLC 的方式如基本用法所示:

import pyads

# connect to plc and open connection
plc = pyads.Connection('127.0.0.1.1.1', pyads.PORT_SPS1)
plc.open()

# read int value by name
i = plc.read_by_name("GVL.int_val")

# write int value by name
plc.write_by_name("GVL.int_val", i)

# close connection
plc.close()

所以我的问题是,我应该在 GET 调用的视图函数中打开和关闭与 PLC 的连接,还是应该在创建应用程序时打开与 PLC 的连接并在整个应用程序中继续使用该连接?哪个更好?

我也不太明白pyads包和PLC打开的是什么样的连接?是 TCP 连接吗?

是的,这是我从 here and here 收集到的 TCP 连接 由于 Pyads 只是底层 TwinCAT 的包装器,它使用与 TwinCAT 相同的底层协议。

我看TwinCAT documentation,示例库不会每次都主动关闭连接。所以我相信你可以连接一次并保持连接打开。