У меня есть приложение для машинного обучения и расширенного управления в Python (TensorFlow + Gekko), которое мне нужно интегрировать с программируемым логическим контроллером (ПЛК), который обеспечивает сбор данных и контроль конечных элементов. Могу ли я использовать установленный в стойку Linux (предпочтительно) или Windows Server в качестве вычислительного механизма с передачей данных через OPC-UA (OLE для управления процессами - универсальная архитектура)?
Существует Python OPC-UA / IEC 62541 клиент (и сервер) и пакет Python MODBUS , который я использовал в других проектах при подключении к распределенным системам управления (DCS), таким как Emerson DeltaV, Honeywell Experion / TDC3000и Йокогава DCS. Могу ли я сделать то же самое с функциональными блоками ПЛК, такими как Siemens Simatic S7-300? Siemens имеет более новые ПЛК с поддержкой TensorFlow, такие как модуль SIMATIC S7-1500 NPU (Neural Processing Unit), но существует множество причин, по которым внешний сервер желателен. Стандарт МЭК 61131 и стандарт PROFINET CBA поддерживаются (стандарт МЭК 61499 для Siemens) в S7-300.
Ниже приведен минимальный функциональный блок, который я хотел бы использовать для связи с функциональным блоком.
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()