我有一个 Python (TensorFlow + Gekko) 中的机器学习和高级控制应用程序,我需要将它与提供数据采集和最终元素控制的可编程逻辑控制器 (PLC) 集成。我可以使用机架式 Linux(首选)或 Windows Server 作为计算引擎,通过 OPC-UA(用于过程控制的 OLE - 通用架构)进行数据传输吗?
有一个Python OPC-UA / IEC 62541 客户端(和服务器)和一个Python MODBUS 包,我在连接到艾默生 DeltaV、霍尼韦尔 Experion/TDC3000 和横河 DCS 等分布式控制系统 (DCS) 时在其他项目中使用过. 我可以对诸如 Siemens Simatic S7-300 等 PLC 功能块做同样的事情吗?西门子拥有支持 TensorFlow 的较新 PLC,例如 SIMATIC S7-1500 NPU(神经处理单元)模块,但出于多种原因需要外部服务器。S7-300 支持 IEC 61131 标准和 PROFINET CBA 标准(西门子的 IEC 61499 标准)。
下面是我想用来与功能块通信的最小功能块。
from opcua import Client
client = Client("Matrikon.OPC.Simulation")
try:
client.connect()
root = client.get_root_node()
# Get a variable node using browse path
myvar = root.get_child(["0:Objects", "1:MyObject", "2:MyVariable"])
print('Variable is ', myvar)
finally:
client.disconnect()