首页 > 解决方案 > 使用 pyads 非常频繁地打开和关闭与 PLC 的连接

问题描述

所以我有一个烧瓶应用程序,它将服务于由 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 连接吗?

标签: pythonflaskplc

解决方案


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

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


推荐阅读