Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否存在使用OPA UA传输数据的IEC 61131/IEC 61499 PLC功能块?_Python_Tensorflow_Automation_Gekko_Iec61131 3 - Fatal编程技术网

Python 是否存在使用OPA UA传输数据的IEC 61131/IEC 61499 PLC功能块?

Python 是否存在使用OPA UA传输数据的IEC 61131/IEC 61499 PLC功能块?,python,tensorflow,automation,gekko,iec61131-3,Python,Tensorflow,Automation,Gekko,Iec61131 3,我有一个Python机器学习和高级控制应用程序(TensorFlow+Gekko),我需要将其与提供数据采集和最终元件控制的可编程逻辑控制器(PLC)集成。我可以使用机架安装的Linux(首选)或Windows服务器作为计算引擎,并通过OPC-UA(用于过程控制的OLE-通用体系结构)进行数据传输吗 当连接到分布式控制系统(DCS)时,我在其他项目中使用了a和a,如艾默生DeltaV、霍尼韦尔Experion/TDC3000和横河DCS。我可以对PLC功能块(如西门子Simatic S7-300

我有一个Python机器学习和高级控制应用程序(TensorFlow+Gekko),我需要将其与提供数据采集和最终元件控制的可编程逻辑控制器(PLC)集成。我可以使用机架安装的Linux(首选)或Windows服务器作为计算引擎,并通过OPC-UA(用于过程控制的OLE-通用体系结构)进行数据传输吗

当连接到分布式控制系统(DCS)时,我在其他项目中使用了a和a,如艾默生DeltaV、霍尼韦尔Experion/TDC3000和横河DCS。我可以对PLC功能块(如西门子Simatic S7-300)执行同样的操作吗?西门子拥有支持TensorFlow的较新PLC,如SIMATIC S7-1500 NPU(神经处理单元)模块,但需要外部服务器的原因有很多。S7-300支持IEC 61131标准和PROFINET CBA标准(适用于西门子的IEC 61499标准)

下面是我想用来与功能块通信的最小功能块

来自opcua导入客户端的

client=client(“Matrikon.OPC.Simulation”)
尝试:
client.connect()
root=client.get\u root\u node()
#使用浏览路径获取变量节点
myvar=root.get_child([“0:Objects”、“1:MyObject”、“2:MyVariable”])
打印('Variable is',myvar)
最后:
client.disconnect()

我有一个经验,ABB harmony 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)

PLC通常支持MODBUS或OPC数据传输。下面是Gekko的一个例子:我不确定它们是否是推送功能块,或者PLC上是否有允许写入或读取的MODBUS或OPC服务器。下面是另一篇文章,可能会有所帮助,尽管它没有提到IEC标准。谢谢,看到另一个OPC Python包很有帮助。您是否也有将OPC连接到PLC的经验?我的同事已经成功地将OPTO22 PLC与python和Gekko结合使用。我不记得他们使用了哪种OPC连接。然而,我看到OPTO22手册提到他们支持OPC-UA。我想我只需要阅读西门子的文档,看看它是否符合IEC标准。感谢您提供有关OPTO22和其他Python代码的提示。您的代码正在执行OPC DA吗?