Все необходимые параметры в терминале должны быть настроены в соответствии с техническим описанием (картой регистров) ModBus для подключаемого устройства.
Произвести настройку терминала без карты регистров подключаемого устройства невозможно.
Терминал работает с ModBus-устройствами только в режиме «Master» (ведущий).
При подключении к терминалам Навтелеком устройства, работающего по протоколу ModBus, можно получить до 32-х различных параметров.
Общее описание протокола ModBus приведено в статье "Протокол ModBus".
Поддержаны следующие функции протокола ModBus:
0x01
(DO
) – чтение значений из нескольких регистров флагов (Read Coil Status/Discrete Output Coils).
0x02
(DI
) – чтение значений из нескольких дискретных входов (Read Discrete Inputs/Discrete Input Contacts).
0x03
(AO
) – чтение значений из нескольких регистров хранения *(Read Holding Registers/Analog Output Holding Registers).
0x04
(AI
) – чтение значений из нескольких регистров ввода (Read Input Registers/Analog Input Registers).
Возможно получение и передача на телематический сервер от ModBus-устройства следующих параметров:
Для того, чтобы настроить работу терминала с устройством ModBus, необходимо:
Если после окончания настройки работы с устройством ModBus во вкладках "RS-232/RS-485" и "Настройка протокола" появилась необходимость поменять настройки в поле «Считываемые параметры» (изменить адрес датчика или регистра, размерность параметра), нужно снова настроить эти параметры в области «Условия формирования» дополнительного события «Изменились параметры ModBus»» и во вкладке "Настройка протокола"->"Пользовательские параметры»".
Для настройки каждого параметра ModBus необходимо установить для него флаг «Вкл».
Адрес датчика – сетевой адрес подключаемого устройства в режиме «Slave» (ведомый), в диапазоне от 1 до 247. Адрес датчика должен соответствовать адресу, установленному в настройках ModBus-устройства, также как параметры "Скорость обмена", "Чётность" и "Количество стоп-бит".
Адрес регистра - адреса регистров для каждого параметра необходимо установить в соответствии с картой регистров, приведённой в документации на ModBus-устройство.
Значения адреса в настройке прибора необходимо вводить в шестнадцатеричном (HEX) виде.
Иногда в описании устройств указываются номера регистров, обычно они приведены в десятичном (DEC) представлении. В таком случае нужно сделать перевод значения адреса из DEC в HEX при помощи калькулятора Windows в режиме «инженерный» или «программист».
Адрес регистра не следует путать с Номером регистра, который обычно указывается в десятичном виде.
Например, первый регистр AO Holding Register, имеет номер40001
, но его адрес равен0x0000
.
Взаимосвязь понятий Адрес регистра и Номер регистра представлена в таблице:
Номер регистра DEC |
Адрес регистра HEX |
Смещение | Название | Код функции ModBus (Тип регистра) |
---|---|---|---|---|
1 - 9999 | 0x0000 - 0x270E | 1 | Discrete Output Coils Регистры флагов |
0x01 (DO ) |
10001 - 19999 | 0x0000 - 0x270E | 10001 | Discrete Input Contacts Дискретные входы |
0x02 (DI ) |
30001 - 39999 | 0x0000 - 0x270E | 30001 | Analog Input Registers Регистры ввода |
0x04 (AI ) |
40001 - 49999 | 0x0000 - 0x270E | 40001 | Analog Output Holding Registers Регистры хранения |
0x03 (AO ) |
Для пересчёта адресов в номера каждый тип регистров (
DO
,DI
,AI
,AO
) в таблице имеет свое смещение (соответственно: 1, 10001, 30001 и 40001).Например, при запросе значения из регистра с адресом
0x5E
функцией0x03
(AO
), устройство выдаст значение из регистра с номером40095
. Адрес регистра равен0x5E
(hex) =94
(dec), номер регистра94 + 40001 = 40095
.При запросе значения из регистра с тем же адресом
0x5E
функцией0x01
(DO
), устройство выдаст значение из регистра с номером95
. Адрес регистра равен0x5E
(hex) =94
(dec), номер регистра94 + 1 = 95
.
Тип регистра – определяет используемую функцию протокола ModBus.
Доступны следующие функции: 0x01
(DO
), 0x02
(DI
), 0x03
(AO
), 0x04
(AI
).
Параметр - настройка определяет размер параметра (1, 2, 4 или 8 байт) и его представление (битовое поле, знаковое, беззнаковое, вещественное).
Определить данную настройку для каждого параметра позволяет карта регистров из документации на устройство, в которой указывается, сколько байт отведено для параметра и какой тип данных используется.
Тип представления параметра влияет на работу алгоритма формирования событий и отображение информации на телематическом сервере. Для того, чтобы события формировались в соответствии с условием, установленным в настройке (см. ниже), его представление должно быть указано правильно.
Регистры флагов
0x01
(DO
) и Дискретных входов0x02
(DI
) содержат в каждом адресе 1 бит с возможными значениями1
= ON (включен) и0
= OFF (выключен).
Поэтому если при опросе0x01
(DO
) или0x02
(DI
) в настройке Параметр указан размер1 байт
, то терминал отправит в устройство ModBus запрос на получение значений из 8 регистров по 8-и адресам, начиная с адреса запрошенного регистра.
Если в настройке Параметр будет установлен размер 2 байта, то будут получены значения из 16 регистров по 16-ти адресам, и т.д.Регистры ввода
0x04
(AI
) и Регистры хранения0x03
(AO
) по стандарту ModBus имеют размер 2 байта (16 бит) с возмжными значениями от0
до65535
.
Если при опросе0x04
(AI
) или0x03
(AO
), в настройке Параметр указано 2 байта, будет получено значение одного регистра, если указано 4 байта, то будет запрошено значение 2 регистров по двум адресам, начиная с адреса запрошенного регистра.
Порядок байт - настройка позволяет управлять порядком чтения данных из регистров.
В протоколе ModBus значения регистров передаются, начиная с указанного адреса в порядке возрастания адресов, по два байта на регистр, старший байт каждого регистра передаётся первым (порядок от старшего к младшему, big-endian). Однако, не существует строго правила, описывающего как хранить и передавать значения, размер которых превышает размер одного регистра (2 байта). Случаи, когда порядок байт в регистре отличается от указанного (используется порядок от младшего к старшему, little-endian) редки, но возможны.
Ниже приведён рисунок, поясняющий как работает настройка порядка чтения двух регистров (слов):
Период опроса – период опроса значений регистров. Может быть установлен индивидуально для каждого параметра.
Не обнулять – если флаг установлен, то при отсутствии ответа на запрос 3 раза подряд будет зафиксировано значение из последнего ответа от устройства, иначе значение сбросится в специальное (для выбранного типа параметра).
При "обнулении" параметра или если термнал не получает параметр от внешнего устройства, то устанавливаются следующие значения:
Размер параметра |
Тип | Значение при обнулении |
---|---|---|
1 | «битовое поле» | 00000000 |
«знаковое» | -128 |
|
«беззнаковое» | 255 |
|
2 | «битовое поле» | 00000000 00000000 |
«знаковое» | -32768 |
|
«беззнаковое» | 65535 |
|
4 | «битовое поле» | 00000000 00000000 00000000 00000000 |
«знаковое» | -2147483648 |
|
«беззнаковое» | 4294967295 |
|
«вещественное» | 0x7FFFFFFF (nan ) |
|
8 | «битовое поле» | 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 |
«знаковое» | -9223372036854775808 |
|
«беззнаковое» | 18446744073709551616 |
|
«вещественное» | 0x7FFFFFFFFFFFFFFF (nan ) |
Область «Условия формирования дополнительного события «Изменились параметры ModBus»».
Эта группа настроек позволяет задать условия формирования событий «Изменились параметры ModBus» по изменению параметров, которые были выбраны в области настроек «Считываемые параметры».
Событие «Изменились параметры ModBus» передается на сервер с кодом
event_code=41056
.
Полный список кодов событий приведен в этой статье.
Всего может быть задано до 10 условий для формирования дополнительных событий.
«Параметр» - этот список позволяет выбрать параметр, при изменении значения которого, будет сформировано событие «Изменились параметры ModBus».
Содержимое списка динамически изменяется в зависимости от области настроек ModBus «Считываемые параметры». При добавлении нового параметра в одну из областей, в список добавляется возможность выбора этого нового параметра, а при удалении он пропадает и из списка.
Если параметр был выбран в списке, и для него было назначено условие, то в случае изменения или удаления параметра в области «Считываемые параметры», строка с условием формирования дополнительных событий по этому параметру будет автоматически очищена.
«Условия формирования» - для выбора доступны 3 типа условий:
Каждый из типов имеет свои дополнительные настройки.
Для работы функции необходимо задать одну настройку - «Порог изменения».
По этому условию устройство фиксирует в качестве опорного значения первое показание параметра, поступившее после включения устройства. И каждый раз при изменении значения параметра на величину «Порог изменения» относительно опорного значения, устройство:
Ниже приведён рисунок, поясняющий работу условия «Изменение на порог»:
Для работы функции необходимо задать несколько настроек: «Нижняя граница», «Верхняя граница».
По этому условию устройство фиксирует факты перехода значения параметра вверх через границу «Верхняя граница» и перехода значения параметра вниз через границу «Нижняя граница».
Ниже приведён рисунок, поясняющий работу условия «переход через границы»:
Для работы функции необходимо задать несколько настроек: «Нижняя граница», «Верхняя граница», «Гистерезис на границах».
По этому условию устройство фиксирует факты входа и выхода из зоны, образуемой настройками «Нижняя граница» и «верхняя граница». При этом, для защиты от формирования большого количества событий входа и выхода, из-за колебаний значения параметра в пограничной зоне, используется настройка «Гистерезис на границах».
Ниже приведён рисунок, поясняющий работу условия «Вход/выход из зоны»: