Tag Archives: OPC UA

OPC UA — путь в никуда?

Либо — велосипедист-хренов, либо лыжи по асфальту точно не ездят.

За прошедшие полгода я сумел поиграться с несколькими реализациями технологии OPC UA. Я поигрался установкой OPC UA на обычные компы, на RaspberryPi. Попробовал заставить работать UPC UA на «голом железе». Ну что я могу сказать… Жуть!

Читать далее

Визуализатор

Эта программка предназначена для (моей текущей) конкретной цели — графического отображения содержимого памяти микроконтроллера.

Проблема

Микроконтроллер, с которым я сейчас кувыркаюсь, STM32F429 — достаточно «жирный». На него у меня накатана FreeRTOS. На ней трудится LwIP. Ещё выше — UPC UA. И на самом верху — бизнес-логика — то, ради чего этот программный Франкенштей затевался.

Программный стек (FreeRTOS + LwIP + OPC UA) пока не работает. Какие-то непонятные срывы, падения в  HardFault и прочие радости разработчика. Понятно, что хотелось бы видеть динамическую картину распределения памяти как-то всю сразу.

Отсюда и появилась идея визуализации.

Читать далее

OPC UA. Подписка на события

Получать данные от сервера по запросу клиента, конечно, хорошо, но…

Но бывают ситуации, когда данные меняются очень редко, а реагировать на их изменение нужно достаточно быстро. Ну, например, у нас есть какое-то устройство (сервер), который следит за напряжением «в розетке». Пока напряжение находится в норме (допустим, это 220 В ±10%, что составляет от 198 до 242 В), то на стороне клиента всё должно работать как обычно. Если напряжение выходит за допустимые пределы, то клиент должен предпринять определённые действия. Например, запустить дизель или включить аварийное освещение.

Понятно, что если клиент будет периодически опрашивать сервер, то это решение — плохое решение. Ведь помимо того, что клиент будет сам отвлекаться и отвлекать от полезной работы сервер, окажутся ещё загружены и линии связи. В правильно спроектированных системах такого быть не должно. Было бы куда правильнее чтобы при наступлении определённых событий сервер сам проявлял инициативу и посылал клиенту соответствующее сообщение.

В сфере передачи данных, вообще, существует такой механизм как широковещательные сообщения. Конечно, можно построить систему, воспользовавшись этим механизмом. Но если в системе много поставщиков и много потребителей информации, то это тоже будет не совсем правильное решение.

Существует ещё один способ — подписка на события. Клиенты, кому это действительно надо, подписываются у серверов на интересующие их (клиентов) события. Таким образом, у серверов появляются таблицы рассылок. И при наступлении того или иного события сервер оповещает о нём всех тех (клиентов), кто подписался на это событие. Поскольку предполагается, что события случаются не часто, то линии связи будут загружены минимально, а клиенты и серверы будут отвлекаться от своих основных работ только по мере возникновения событий.

Читать далее

OPC UA: туда и обратно

Благодаря предыдущей статье мы научились получать от сервера данные. Хорошо. Теперь давайте попробуем передавать данные на сервер.

Поскольку сервер у нас (условно) является вольтметром, то пусть он теперь будет заниматься сразу двумя напряжениями. Одно напряжение V1 сервер будет «измерять» внутри себя, а другое V2 — получать от клиента.

Читать далее

А не пощупать ли нам OPC UA на практике?

— Хм? Отчего ж достопочтенным джентльменам нельзя пощупать. Давайте, господа гуссары, полапаем как следует!

Для этого дела воспользуемся Питоном, ибо он прост в применении. Будем юзать Python-3.

Для начала нужно установить на комп кое-какие пакеты.

Читать далее

OPC UA

OPC UA — это относительно новая технология, которая применяется в сфере производства и промышленных предприятий для передачи информации. Короче — не интересно.

Я скажу пару слов об этой технологии. Чуть больше общих слов по теме можно прочитать в Википедии и других открытых источниках.

Допустим, у нас имеется большое промышленное предприятие. Например, стелелитейное или АвтоВАЗ. На предприятии сосредоточено множество самых разнообразных станков, роботов, складских помещений и прочего оборудования. А количество датчиков (температуры, давления, скорости, напряжения, мощности, присутствия, веса и прочих «сухих контактов») вообще не поддаётся перечислению.

Читать далее