OPC UA, вероятно, является стандартом де-факто для промышленной связи M2M и очень важен в контексте Industrie 4.0.
Допустим, у вас есть промышленное оборудование (например, ПЛК), которое управляет некоторыми другими, например датчиками. С помощью OPCUA вы можете моделировать в ПЛК (который становится сервером OPCUA) некоторые данные, используя информационную модель (объектно-структурированную и иерархическую, схожие с UML), построенную с использованием правил, определенных стандартом OPCUA (https://opcfoundation.org/developer-tools/specifications-unified-architecture/part-3-address-space-model/).). ПЛК сначала собирает данные с этих датчиков с использованием специального отраслевого протокола, а затем моделирует в своем адресном пространстве некоторые данные, которые считаются актуальными.
Вы также можете построить (opcua) сервер на датчиках, представить себе датчик температуры или влажности, в котором вы моделируете данные, такие как не только значение температуры, но и производитель, инженерная единица (например, по Фаренгейту или Цельсию). ). Но вы также можете вставить методы на сервер и связать их с некоторыми конкретными действиями, например, включить / выключить определенную функциональность при возникновении некоторых условий. Для всех спецификаций вы можете посмотреть https://opcfoundation.org/developer-tools/specifications-unified-architecture,, где после регистрации вы можете скачать спецификации подробно. Другая хорошая документация, которую я нашел, это http://documentation.unified -automation.com / uasdkcpp / 1.6.1 / html / index.html , где объясняются основные понятия.
Как только вы определили свои серверы opcua с информационной моделью в его адресном пространстве, вы можете начать взаимодействовать с некоторыми другими промышленными механизмами стандартизированным способом. Эти машины могут быть приложениями MES или HMI, и они должны быть клиентами opcua. Они могут запрашивать вышеупомянутый сервер opcua, просматривая их адресное пространство, считывая значения, вызывая методы, отслеживая некоторые интересные переменные или события (подписавшись на них, сервер отправит уведомление, когда произойдет изменение). Основным преимуществом является то, что все эти операции выполняются с использованием стандартизированных сообщений: если вы хотите записать данные, вы должны отправить сообщение WriteRequest , если вы хотите прочитать, клиент отправит ReadRequest и так далее. Поскольку все стандартизировано (от типов данных до сериализации сообщений), все клиенты могут понимать структуру серверов opcua (даже если они принадлежат разным производителям). Без этого каждый производитель мог бы использовать свой собственный способ определения служб или переменных, и вам пришлось бы создавать свое приложение (скажем, HMI), чтобы соответствовать API или соглашениям данного конкретного поставщика.
Относительно OPCUA через MQTT, здесь вы можете найти некоторую полезную информацию Протокол OPC UA против протокола MQTT . Как я уже говорил, OPCUA имеет преимущество в определении структурированной и стандартной информационной модели, доступной через стандартные сервисы, поэтому использование MQTT - это только одна часть целого.
Еще одним хорошим справочником для понимания информационных моделей на сервере opcua может быть Унифицированная архитектура OPC