Modbus в оборудовании и программном обеспечении «Прорыв»
Протокол сам по себе — только половина дела. Вторая половина: кто выступает мастером, где описывается карта регистров конкретного прибора и как добавить в систему устройство, которого раньше в ней не было. Здесь — как это устроено у нас.
Контроллер как мастер
Контроллеры и устройства сбора данных серии ТК16L и E-422 работают в линии ведущими: опрашивают счётчики электроэнергии, датчики, станции управления, вычислители и расходомеры по Modbus RTU через порты RS-422/RS-485 и по Modbus TCP через Ethernet. Собранные данные накапливаются в архивах контроллера и передаются на верхний уровень — в программный комплекс Телескоп+ или в стороннюю систему.
Практические следствия такой схемы:
- опрос идёт локально, поэтому пропадание связи с центром не прерывает сбор данных — они дочитываются из архива контроллера;
- на одном канале RS-485 живёт несколько приборов, а контроллер сам разводит их по адресам и следит за таймингами;
- для устройств с интерфейсом RS-232 или с сетевым подключением используются отдельные порты и преобразователи интерфейсов.
Модули расширения как ведомые устройства
Наши модули расширения — ПИК А16, ПИК-16УМ1, ПИК-24М, ПИК-24МE, ПИК-24Т, ТМДА24 — подключаются к контроллеру по RS-485 и выступают в роли ведомых Modbus. Так набор входов и выходов наращивается без замены контроллера: аналоговые входы, дискретные входы, каналы телеуправления, входы термосопротивлений.
Это же означает, что модули можно опрашивать и сторонним мастером — они не требуют проприетарного протокола.
Разработка драйвера устройства
Чтобы система понимала новый прибор, нужен драйвер: описание карты регистров и правил пересчёта в физические величины. В Телескоп+ такой драйвер разрабатывается штатными средствами — набор функций для разработки драйвера Modbus-устройства описан в разделе вопросов и ответов по программному обеспечению.
Что обычно требуется задать в драйвере:
- адреса регистров и функции чтения для каждого параметра;
- тип данных и порядок слов — как разобрано в разделе о типах данных;
- масштабные коэффициенты и единицы измерения;
- периодичность опроса и поведение при отсутствии ответа.
Скрипты на контроллере
Когда логика выходит за рамки простого опроса — например, нужно принять решение по значению регистра и выдать команду управления, — на контроллере исполняются скрипты. Они пишутся на C# в Редакторе скриптов, компилируются и переносятся в контроллер; есть пошаговая отладка прямо на устройстве. Скрипт может обращаться к подключённым по Modbus приборам, обрабатывать полученные значения и формировать управляющие воздействия — так, в частности, реализованы алгоритмы управления групповыми замерными установками.
Шлюзы и преобразователи
Если прибор с RS-485 нужно вывести в сеть TCP/IP, применяется шлюз: Е-32 или преобразователь RS-485 в Ethernet на 16 портов. Для мастера при этом меняется только транспорт: PDU остаётся прежним, а вместо адреса и контрольной суммы появляется заголовок MBAP. Именно поэтому разбор кадра полезно понимать в обоих вариантах — отладка через шлюз без этого превращается в гадание.
С чего начать интеграцию
- Получите от производителя карту регистров и параметры порта.
- Прочитайте один-два регистра с известными значениями и сверьте с показаниями прибора — так проверяются смещение адресов и порядок слов.
- Соберите параметры в драйвер и проверьте опрос на реальном канале, с рабочими паузами и тайм-аутами.
- Убедитесь, что при обрыве связи система корректно помечает данные как недостоверные, а не подставляет последнее значение.
Нужна помощь с конкретным прибором — напишите нам: список поддерживаемых устройств пополняется, и часто драйвер уже существует.
