Найти в Дзене
Геннадий Антонов

Про рантайм, Raspberry Pi, цифрового двойника и прочее

Добрый день, читатель. После долгого перерыва, решил поделится описанием недавней разработки, которая могла быть полезна в промышленности. Разработал прототип рантайма (исполнительную среду), для мотор менеджера - это микропроцессорное устройство (МП устройство) управления и защиты электродвигателей. Если кто не знает, рантайм - это программа (или набор программ), которая исполняется на МП устройстве, и делает из этого устройства промышленный ПЛК или устройство релейной защиты и автоматики. В первую очередь, рантайм обеспечивает работу логики, которую пишет инженер на языках стандарта 61131-3. Например LD - релейно-контактная логика, FBD - функциональные блоки итд. Именно рантайм "переваривает" логику из 61131-3, и обеспечивает работу например: таймеров, обработку входов-выходов ПЛК, различных числовых операци и многое другое. На данном прототипе рантайма, я постарался реализовать логику, которая была бы полностью совместима с устройством Tesys T от Шнайдер Электрик. Tesys T - МП устр

Добрый день, читатель.

После долгого перерыва, решил поделится описанием недавней разработки, которая могла быть полезна в промышленности.

Разработал прототип рантайма (исполнительную среду), для мотор менеджера - это микропроцессорное устройство (МП устройство) управления и защиты электродвигателей.

Если кто не знает, рантайм - это программа (или набор программ), которая исполняется на МП устройстве, и делает из этого устройства промышленный ПЛК или устройство релейной защиты и автоматики.

В первую очередь, рантайм обеспечивает работу логики, которую пишет инженер на языках стандарта 61131-3. Например LD - релейно-контактная логика, FBD - функциональные блоки итд. Именно рантайм "переваривает" логику из 61131-3, и обеспечивает работу например: таймеров, обработку входов-выходов ПЛК, различных числовых операци и многое другое.

На данном прототипе рантайма, я постарался реализовать логику, которая была бы полностью совместима с устройством Tesys T от Шнайдер Электрик.

Tesys T - МП устройство, которое у нас в России (и в мире) довольно широко используется в промышленности, в качестве управления и защиты электромоторами. К сожалению, адекватной замены данному устройству у нас в России на рынке нет.

Так вот, в этом Tesys T, используется в логике IL-подобный язык, набор команд, который я полностью реализовал в своем рантайме.

Идея заключалась в том, чтобы можно было безболезненно перенести логику из Tesys T, на мой разработанный рантайм, а также чтобы Модбас адреса полностью сответствовали Тесисным, что важно для АСУТП.

Это на случай, если вдруг кто-то решит развернуть мой рантайм на своих МП устройствах, в качестве мотор менеджера, как замену Tesys T от Шнайдер Электрик.

Неплохо то, что поскольку я разрабатываю сам, тут я могу не ограничиваться только Тесисными командами.

Как раз обсуждал с коллегой этот вопрос, и он мне предложил, что в логике Тесиса нет команд для битового XOR и таймера TOF.

Эти команды XOR и TOF, я тут же реализовал и проверил.

Вообщем, сейчас рантайм полностью совместим с Тесисной логикой, имея при этом дополнительный, улучшенный набор команд.

Сейчас может выполняться рантаймом весь набор Тесисных команд, плюс сверх того дополнительные команды-блоки, которые как мне показалось, было бы также неплохо иметь.

Написано на С++.

Позже, пересобрал его с поддержкой процессорной архитектура AARCH64, чтобы была возможность запускать его на Raspberry Pi 4.

У рантайма есть встроенный Модбас сервер и обработка регистров Модбас сервера.

На данный момент временные регистры в логике, соответствуют INPUT REGISTER Модбас сервера. Они доступны с внешнего клиента и только для чтения.

Обычные регистры - это HOLDING REGISTER в Модбас сервере. С внешнего клиента можно как читать, так и писать значения в них.

Также, рантайм может управлять GPIO на Raspberry.

Пока сделал привязку выходных реле - к обычному holding регистру с адресом 0 и его битам.

Каждому биту нулевого регистра, соответствует свое выходное реле. На видео ниже это хорошо видно.

Выполняется логика на малине довольно быстро. Если убрать искусственную задержку, то логику из 23 строк, рантайм, за 1 проход цикла обрабатывает в среднем за 5 микросекунд.

Логику загружаю пока простым текстовым файлом.

Выглядит так.

Логика, работу которой покажу в этой статье
Логика, работу которой покажу в этой статье

Кстати, мой рантайм может принимать логику с комментариями!

Вот схема тестовой логики на FBD.

Блок схема на FBD логики, чтобы было понятнее, что пытаемся реализовать
Блок схема на FBD логики, чтобы было понятнее, что пытаемся реализовать

Смысл данной логической диаграммы в том, чтобы запускалась схема пульсирующего бита (LifeBit) по Модбас команде.

Кстати, я там добавил еще свои команды в логику, которых нет в Тесисе, если вы обратили внимание, вот это:

SET_IF_BIT

Это выполнение операции, только если есть управляющий бит. Такой битовый мультиплексор, своеобразный.

Смотрите на видео, где рантайм запущен на Raspberry Pi 4, управляет регистрами Модбас, GPIO и выходными реле.

На видео я через сеть и Модбас пул подаю команды:

1) По значению 1 в 5 регистр, запускается схема пульсирующего бита. Которая действует на выходные реле GPIO

2) По значению 0 в 5 регистр (нулевой бит ставим в 0), останавливается схема пульсирующего бита.

3) Регистр номер 0, его биты управляют выходными реле. Записью 1 и 0 в эти биты, мы устанавливаем выходные реле в сработанное-несработанное состояние.

4) Видео без звука, а так хорошо слышно как клацают реле. Можно подцепить внешнюю силовую нагрузку 220 VAC типа лампы, небольшую нагрузку (оптимально до 5 ампер, хоть на реле 10 указано, думаю что грется будут серьезно при таком токе), или пускателя, если нагрузка велика.

5) Обратите внимание на 1 и 3 регистр, в втором окошке Mbpoll2. Это срабатывает обратный отсчет таймеров. Таймера для пульсирующего бита там отсчитывают по 100 миллисекунд, а уставка у них 10 * 100 = 1 секунда.

Запускать рантайм можно на обычном компьютере, GPIO там не будет, но можно управлять Модбас регистрами и мониторить их.

Уже в плане логики это полноценный работающий прототип, и есть планы дорабатывать его дальше.

Можно добавить блоки-модули управления и защиты электромотором (по типу Тесиса).

Возможность сохранения осциллограмм. Это отдельная большая тема.

Возможность логирования событий. В том числе возможность создания ручных триггеров из логики.

Перспектива применения:

  1. Во встраиваемых устройствах. В идеале, конечно, это была бы замена устройству Тесис от Шнайдера.
  2. Другое интересное применение рантайму можно найти в качестве создания виртуального мотор менеджера.

Идея состоит в том, что в реальности на одной подстанции могут быть сотни МП устройств мотор менеджеров.

Вместо этих сотен устройств, будут два высокопроизводительных сервера - основной и резервный, на которых будут запущены эти сотни МП устройств. С такой же логикой, настройками и управлением, как и реальные мотор менеджеры, только виртуальные.

Однако они также будут управлять выходными реле группами и компактно расположенными в одном шкафу, принимать аналоговые и дискретные сигналы от ячеек, по цифре или АЦП.

В чем я вижу преимущества такого подхода:

  • Нет подвижных контактов для Ethernet кабеля, который нужно пробрасывать до устройства. Те кто сталкивались, знают, что это прямо беда на подстанциях. Эти разъемы с подвижными контактами для связи, часто выходят из строя, связь нарушается, что критично для АСУТП и производства.
  • На порядок сократиться сетевая инфраструктура - не нужны будут множество коммутаторов, маршрутизаторов, которые обеспечивают работу большого количества устройств.
  • Сервера достаточно устойчивые устройства, вкупе с резервированием, не исключено, что это будет надежнее чем одно обычное устройство управления мотором.
  • Виртуальный мотором менеджер не требует замены, обслуживания - кроме самого сервера, который один заменяет сотни штук.
  • В плане информационной безопасности, сервер легче защитить чем сотни распределенных устройств. Опять же даже за счет того же снижения сетевого оборудования.

Недостатков тоже, наверное, хватает. Вот некоторые на вскидку:

  • Большие длины контрольного кабеля
  • Потребуется оборудования для преобразования и передачи аналоговых-дискретных сигналов.

3. Запуск рантайма как цифрового двойника - копии реального устройства, возможность использования в цифровых моделях производственных процессов, для прогнозирования итд.

Если кого нибудь заинтересовала данная статья или тема - пишите в комментариях, оставляйте отзыв, или пишите мне напрямую в Телеграм @antonovgp

Продолжение статьи читайте здесь.