是否有使用OPA UA传输数据的IEC 61131/IEC 61499 PLC功能块



我在Python中有一个机器学习和高级控制应用程序(TensorFlow+Gekko(,我需要与可编程逻辑控制器(PLC(集成,该控制器提供数据采集和最终元件控制。我可以使用机架安装的Linux(首选(或Windows Server作为计算引擎,通过OPC-UA(OLE for Process Control-Universal Architecture(进行数据传输吗?

有一个Python OPC-UA/IEC 62541客户端(和服务器(和一个Python MODBUS包,当我连接到分布式控制系统(DCS(时,我在其他项目中使用过,如艾默生DeltaV、霍尼韦尔Experion/TDC3000和横河DCS。我可以对PLC功能块(如西门子Simatic S7-300(执行同样的操作吗?西门子有支持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()

我有一次经验,ABB和谐OPC服务器也不支持"opcua"。因此,我使用了"OpenOPC"包,而不是像John在评论中建议的那样使用"opcua"。但是,我不确定特定品牌的OPC是否与"opcua"或"OpenOPC"兼容。

请参阅我用于OpenOPC包进行测试的代码。

import OpenOPC
import time
import pywintypes
pywintypes.datatime = pywintypes.TimeType
opc = OpenOPC.client()
opc.servers()
opc.connect('Matrikon.OPC.Simulation.1')
tags = ['Random.Int1', 'Random.Real4']
while True:
try:
value = OPC.read(tags,group='Simulation Items',update=1)
print (value)
except OpenOPC.TimeoutError:
print ("TimeoutError ocured")
time.sleep(1)

最新更新