Modbus-устройства

Материал из TekonWiki
Перейти к навигацииПерейти к поиску


АСУД-248 позволяет реализовать взаимодействие с устройствами по протоколу Modbus.

Документ описывает настройку в ПО АСУД.SCADA 1.5.7 для предыдущих версий ПО см. прошлую версию документа [1].

Поддерживаются спецификации:

  • Modbus-RTU
  • Modbus TCP

Чтение данных (одиночное, групповое), запись данных (одиночная).

Тракт передачи данных в общем случае:

Устройство Modbus - RS-232/485 -  КЦС-IPM / КУН-IPM - Компьютерная сеть - ПК (или Пульт АСУД-248)
Устройство Modbus - Компьютерная сеть - ПК (или Пульт АСУД-248)

Требуемое программное обеспечение (АСУД.SCADA версии 1.5.7 и выше):

  • OPC Server\kcslogger.exe
  • OPC Server\extensions\kcsip.dll
  • OPC Server\extensions\drv\mbtcp.dll
  • OPC Server\extensions\drv\mbrtu.dll
  • OPC Server\extensions\original.gdb
  • OPC Server\extensions\asudbase.exe

Внимание, требуется наличие USB-ключа защиты АСУД.SCADA. Опрос Modbus-устройств осуществляется программой KCSLogger. В ключе защиты ПО АСУД.SCADA должно быть прописано число драйверов EXT-модуля, соответствующее общему числу подключаемых приборов.

С помощью утилиты KCS_DEMO.EXE существует возможность в тестовом режиме проверить связь с Modbus-устройством (наличие USB-ключа при этом не требуется).

Настройка программного обеспечения АСУД.SCADA заключается во:

  • вводе карты Modbus регистров в программе ASUDBase;
  • настройке OPC-сервера: Контейнер оборудования;
  • настройка карты АСУД.SCADA - примитивы
    • дискретный датчик - сигналы аварии (неисправностей);
    • цифровой индикатор - данные температуры, давления;
    • текстовое поле - информация о режимах работы оборудования, возможность записи значений в Modbus устройство.


Регистрация устройства в программе ASUDBase

Настройка регистров Modbus-устройства осуществляется с помощью программы ASUDBase (версии 1.5-14 и выше).

Откройте окно Настройка\Регистрация и введите данные подключения Modbus-устройства

Регистрация устройства Modbus

Рисунок - Регистрация устройства Modbus

Номер концентратора указать 901...999, 1901...1999, 2901...2999, ...

Или номер будет проставлен автоматически после установки флажка "IP-соединение".

Номер должен быть уникальным для каждого добавляемого устройства (фактически этот номер используется лишь для идентификации Modbus-устройства в базе данных).

Укажите в поле "Прибор" устройство Modbus RTU или Modbus TCP в зависимости от протокола реализуемого устройством. (Если данные типы устройств отсутствуют следует произвести обновление поддерживаемых типов устройств: меню Настройка \ Работа с БД \ Добавить новые типы устройств).

В поле Modbus указать непосредственно тип подключаемого устройства (если устройство пока отсутствует - оставить поле пустым).

Также следует указать

  • Мастер устройство (КЦС-IPm, КУН-IPm, прямое IP),
  • IP-адреса
  • Порт (по умолчанию 5000 для КЦС-IPm, КУН-IPm. Для устройств, подключаемых напрямую по IP-сети, номер порта следует уточнить в документации на устройство).
  • Параметры RS-интерфейса, к которому подключено устройство (тип, номер, скорость, четность и т.п.)
  • RS-идентификатор - номер устройства в RS-сети.
  • Интервал опроса - период опроса устройства (0 - опрашивать максимально быстро).
  • Читать архив - установить все флажки - резервный параметр, в настоящее время не используется.

Нажать кнопку "Добавить".

Устройство добавляется с одной системой "Отопление" (по умолчанию) - это (наименование) не имеет существенного значение.

Далее по необходимости добавить новый тип Modbus устройства, нажав на кнопку "+" и в открывшемся окне указать читаемые регистры.

Настройка устройства Modbus

Рисунок - Настройка карты регистров Modbus устройства

Серым подсвечены колонки относящиеся к настройкам Modbus-протокола, остальные колонки относятся к настройкам АСУД.

Modbus-настройки (см. описание на подключаемое устройства)

  • Регистр - тип регистра, выпадающее меню
 - Coils   — однобитовый тип, доступен на чтение и на запись.
 - DiscInp — однобитовый тип, доступен только на чтение.
 - HoldReg — 16-битовый тип, доступен на чтение и на запись.
 - InpReg  — 16-битовый тип, доступен только на чтение.
  • Адрес - адрес регистра в 10-тичной системе
  • Тип данных - тип данных в регистре, выпадающее меню
  - BIT     (1 регистр)
  - WORD    (1 регистр)
  - FLOAT   (2 регистра)
  - DWORD   (2 регистра)
  - INTEGER (2 регистра)
  • Блок/Бит - для типа данных БИТ указывается анализируемый бит в слове.
  • Формат - формат представления числа в регистре.
 Подробнее см. Формат данных (по умолчанию = 1).


Scada-настройки (для отображения в АСУД.SCADA)

  • Вирт.КДД-RS - выполнить ли трансляцию данных прочитанного регистра устройства в дискретный сигнал OPC-сервера Текоn, путем привязки к каналу концентратора Виртуальный КДД-RS. Что позволит впоследствии в АСУД.SCADA использовать примитивы типа "Дискретный датчик" с данным сигналом. При этом предполагается что значение регистра может быть только 0 или 1.
 Значение 0 - не транслировать данные в виртуальный  КДД-RS.
 Значение 1 - транслировать данные в виртуальный КДД-RS.

Номер виртуального КДД-RS и номер канала концентратора при этом указываются ниже (под таблицей).

  • Параметр - номер параметра.
 Если значение [Вирт.КДД-RS]  = 1 ( > 0) - указывает номер дискретного входа КДД-RS (1..14).
 Если значение [Вирт.КДД-RS]  = 0 - должен указывать просто уникальный номер
 для данного концентратора (номер должен быть > 500).
  • Сокращение - сокращенное название параметра
 Отображается в окне 2 программы ASUDBase при просмотре полученных значений.
  • Название - полное название параметра


Modbus-настройки дополнительные

(в большинстве случаев можно оставить значение  по умолчанию).  
  • Множитель - множитель значения считанного из регистра.
 Только для типов DWORD, INTEGER, FLOAT.
 После чтения значение в SCADA = значение регистра * множитель 
 Перед записью Значение  = Значение SCADA / множитель
  • Адрес W - адрес записи.
 Следует указать, если запись необходимо произвести в регистр по другому адресу отличному от адреса чтения.
  • ** - набор параметров, указываемых в случае, если перед записью регистра, следует выполнить запись значения в другой регистр.
 Например, если перед изменением параметра следует указать, пароль.
 (как в контроллерах ОВЕН ТРМ-133М при изменении текущего состояния)
 ** Адрес - адрес регистра.
 ** Тип - тип регистра.
 ** Значение - значение для записи.
 Формат значения при этом берется из поля Формат основного регистра.
 Множитель - не используется.
  • Sleep - ожидание в мс., указывается в случае если необходима задержка после
 записи регистра перед следующей операцией чтения. 


Автозаполнение (новой строки таблицы) - при установке флага некоторые поля при добавлении новой записи заполняются на основе предыдущих введенных значений.

Экспорт - экспортировать данные настройки в файл для последующего использования.

Импорт - импортировать данные настройки из файла.


Настройки устройства - следует указать исходя из описания устройства

  • Название прибора - название устройства.
  • Базовый регистр - как правило = 0 (или 1)
  • Читать группу элементов - можно ли читать более 1 регистра за один запрос.
 0 - можно читать сколько угодно
 >0 - максимальное число регистров на чтение в одном запросе 
  • Разрешить при чтении пропуски в группе - можно ли читать несколько регистров
за один запрос, если они расположены не подряд.

Формат данных - возможные варианты формата представления данных.

1 регистр - типы Byte, Word
2 регистра - типы DWord, Integer, Float

После настройки всех Modbus-устройств можно автоматически сформировать конфигурационный файл OPC-сервера. Для этого следует выбрать меню Настройка \ SCADA \ Конфигурация Modbus.

Созданный файл DBase \ wac.conf следует скопировать в папку Tekon \ OPC Server \ settings. Затем запустить конфигуратор OPC-сервера и по необходимости внести изменения в настройки, как описано ниже.

Настройка ОРС-сервера

Для отображения данных в SCADA следует выполнить настройку OPC-сервера Tekon.

В конфигурации добавляется устройство DA Tekon \ Контейнер оборудования.

Для отображения данных регистров со значением поля [Вирт.КДД-RS] = 0 и со значением параметра >= 500 следует добавить устройство DA Tekon \ Контейнер оборудование \ Прибор учета

Далее выполнить двойной клик на приборе учета, в открывшемся окне слева выбрать требуемое устройство для отображения данных, а справа установить флажки у параметров, которые необходимо в дальнейшем отображать в АСУД.SCADA

Настройка отображения данных устройства Modbus

Рисунок - Настройка отображения данных устройства Modbus

Запись вида ModbusRTU (Отопление 0:192.168.1.100:4) имеет следующий смысл

  • ModbusRTU - тип устройства
  • Отопление - тип системы устройства
  • 0 - идентификатор системы устройства
  • 192.168.1.100 - IP-адрес устройства
  • 4 - RS-идентификатор устройства.

В связи с чем следует иметь ввиду, что если в базе данных на одном КЦС-IPM зарегистрированы два однотипных устройства с одинаковыми RS-идентификаторами хоть и физически подключенные на разные интерфейсы, они будут отображены в окне представленном выше. Поэтом следует в настройках данных устройств указать разные (произвольные) идентификаторы систем.

Внимание! При выборе устройства, параметры (справа) будут отображены, только если к этому моменту произошло хотя бы одно успешное чтение данных с Modbus-устройства с помощью программы kcslogger (или если конфигурационный файл wac.conf был сформирован автоматически в программе ASUDBase).


Для запуска опроса зарегистрированных Modbus-устройств следует запустить программу KCSLogger и нажать кнопку Запуск. При необходимости свернуть программу в трей Windows.


Для каждого Modbus-устройства следует добавить свой DA Tekon \ Контейнер оборудования \ Прибор учета.

Для привязки дискретных сигналов (регистры со значением поля [Вирт.КДД-RS] = 1) следует добавить устройство DA Tekon \ Контейнер оборудование \ КДД-RS (Виртуальный КДД-RS)

Далее настроить обычным образов соответствующие дискретные входы КДД-RS с указанием названия сигнала, задержки, инверсии и т.п.

Закрыть конфигуратор OPC-сервера.

Запустить опрос Modbus-устройств (программу KCSLogger)

Объединение устройств в группы

Дополнительно в случае необходимости одновременной записи однотипных значений регистров в несколько устройств, существует возможность объединить Modbus-устройства в группы.

Для определения групп следует отредактировать файл Tekon \ ASUD Scada \ OPC Server \ settings \ modbusgrp.ini

В данном примере ';' - является комментарием

;[1] название группы (уникальное)
;Params=88 99 112  - номера параметров через пробел или пусто если для всех параметров
;Conc= 901 902 903 - номера концентраторов через пробел

Создана группа 1, для концентраторов 901-903. В случае записи, например, значения в регистр 99 концентратора 902, это же значение будет записано в регистры 99 концентраторов 901 и 903.

Настройка визуализации данных в АСУД.SCADA

В АСУД.SCADA для визуализации данных Modbus-устройств можно использовать следующие примитивы:

  • Дискретные датчики
 Для привязки к тегам Виртуальных КДД-RS
  • Цифровой индикатор
 Для отображения любых цифровых значений (с возможностью указания граничных значений)
  • Текстовое поле
 Для отображения любых цифровых значений, а также преобразования цифрового значения в текстовое 
 по заданному правилу с помощью скрипта (см. пример номер 2). 
 Кроме того с помощью данного примитива и скрипта можно выполнить запись значения в регистр Modbus-устройства.

Изменение настроек Modbus-устройства

В случае необходимости добавить новые регистры, читаемые устройством, следует открыть программу ASUDBase, меню Настройка \ Регистрация. Выбрать любой концентратор с устройством требуемого типа. Нажать кнопку "..." и в окне настройки регистров (см. выше) добавить данные регистров. Внесенные изменения будут применены для всех концентраторов устройств данного типа. Далее следует выполнить опрос устройств программой KCSLogger (если программа была запущена, ее необходимо перезапустить). После опроса, открыть конфигуратор ОРС-сервера, выбрать устройство в Контейнере оборудования и установить флажки у добавленных параметров. Закрыть конфигуратор. Открыть АСУД.SCADA и добавить необходимые примитивы на карту.

--Alex 10:15, 3 июля 2013 (UTC)