Принцип работы
Модуль передает в сеть данные о состоянии входов при запросе от Мастера.
В качестве Мастера сети можно использовать:
ПК
;ПЛК
;панель оператора
;удаленный облачный сервис
.
Сигнал с датчика, измеряющего физический параметр объекта (температуру, давление и т.п.), поступает в модуль в результате последовательного опроса датчиков. Полученный сигнал преобразуется по данным НСХ в цифровые значения. В процессе обработки сигналов осуществляется их фильтрация от помех и коррекция показаний в соответствии с заданными параметрами.
Опрос датчиков и обработка их сигналов измерительным устройством осуществляется последовательно по замкнутому циклу.
Индикация и управление
На лицевой панели модуля расположены элементы индикации, см. таблицу.
В нижней части лицевой панели расположено поле «IP».
Назначение индикации
Индикатор | Состояние индикатора | Назначение |
---|---|---|
Питание (зеленый) | Не светится | Питание выключено |
Светится | Напряжение питания модуля подано | |
Eth 1 (зеленый) | Не светится | Кабель не подключен |
Мигает | Передача данных по порту 1 Ethernet | |
Eth 2 (зеленый) | Не светится | Кабель не подключен |
Мигает | Передача данных по порту 2 Ethernet | |
Авария (красный)* | Не светится | Сбои отсутствуют |
Светится постоянно | Сбой основного приложения и/или конфигурации | |
Включается один раз в две секунды (включается на 100 мс) | Необходима замена батареи питания часов (напряжение батареи ниже 2 В) | |
Включается два раза в секунду (включается на 100 мс через паузу 400 мс) | Сработал тайм-аут перехода в безопасное состояние (отсутствуют запросы от мастера сети по протоколу Modbus TCP) | |
Включается на 900 мс через паузу 100 мс | Аппаратный сбой периферии (Flash, RTC, Ethernet Switch) | |
Индикаторы состояния входов (зеленый/красный/оранжевый) | Светится зеленым | Вход включен |
Не светится | Вход отключен | |
Выключается на короткое время | Измерение на входе** | |
Светится оранжевым | Некритическая ошибка входа** | |
Светится красным | Критическая ошибка входа** | |
Примечание *´Приоритеты индикации светодиода «Авария» от большего к меньшему: аппаратный сбой, программные ошибки, безопасный режим, уровень заряда батареи. **Cм. таблицу. |
Под лицевой панелью расположены клеммники и сервисная кнопка (рисунок).
Сервисная кнопка предназначена для выполнения следующих функций:
Часы реального времени
В модуле есть встроенные часы реального времени (RTC). Они работают от собственного батарейного источника питания.
Отсчет времени производится по UTC в секундах, начиная с 00:00 01 января 2000 года. Значение RTC используется для записи в архив.
Подробнее о настройке часов реального времени см. раздел.
Запись архива
В модуль встроена флеш-память (flash), размеченная под файловую систему с шифрованием файлов. Алгоритм шифрования — Data Encryption Standard (DES) в режиме сцепления блоков шифротекста (CBC). В качестве ключа используется строка superkey. Вектор инициализации генерируется с помощью хеш-функции (см. приложение А). Аргументом функции является пароль, заданный в ПО Owen Configurator. В конце файла сохраняется контрольная сумма, рассчитанная по алгоритму CRC32 (контрольная сумма также шифрируется).
Архив модуля сохраняется в виде набора файлов. Период архивации, ограничение на размер одного файла и их количество задается пользователем в ПО Owen Configurator. Если архив полностью заполнен, то данные перезаписываются, начиная с самых старых данных самого старого файла.
Файл архива состоит из набора записей. Записи разделены символами переноса строки (0x0A0D). Каждая запись соответствует одному параметру и состоит из полей, разделенных символом «;» (без кавычек). Формат записи приведен в таблице ниже.
Формат записи в файле архива
Параметр | Тип | Размер | Комментарий |
---|---|---|---|
Метка времени | Binary data | 4 байта | В секундах начиная с 00:00 01.01.2000 (UTC+0) |
Разделитель | Строка | 1 байт | Символ «;» (без кавычек) |
Уникальный идентификатор параметра (UID) | Строка | 8 байт | В виде строки из HEX-символов с ведущими нулями |
Разделитель | Строка | 1 байт | Символ «;» (без кавычек) |
Значение параметра | Строка | зависит от параметра | В виде строки из HEX-символов с ведущими нулями |
Разделитель | Строка | 1 байт | Символ «;» (без кавычек) |
Статус параметра | Binary data | 1 байт | 1 – значение параметра корректно, 0 – значение параметра некорректно и его дальнейшая обработка не рекомендована |
Перенос строки | Binary data | 2 байта | \n\r (0x0A0D) |
Пример
Расшифрованная запись:
0x52 0x82 0xD1 0x24 0x3B 0x30 0x30 0x30 0x30 0x61 0x39 0x30 0x30 0x3B 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x31 0x3B 0x31 0x0A 0x0D
где
0x52 0x82 0xD1 0x24 — метка времени. Для получения даты и времени в формате UnixTime следует изменить порядок байт на противоположный и добавить константу-смещение (число секунд между 00:00:00 01.01.1970 и 00:00:00 01.01.2000): 0x24D18252 (HEX) + 946684800 (DEC) = 1564394971 (DEC, соответствует 29 июля 2019 г., 10:09:31);
0x3B — разделитель;
0x30 0x30 0x30 0x30 0x61 0x39 0x30 0x30 — уникальный идентификатор параметра (00003ba00);
0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x31 — значение параметра (00000001);
0x31 — статус параметра (1 – значение параметра корректно);
0x0A 0x0D — символы переноса строки.
Прибор фиксирует время в архивных файлах по встроенным часам реального времени. Также можно задать часовой пояс, который будет считываться OwenCloud или внешним ПО. Запись во флеш-память (flash) происходит с определенной частотой, рассчитанной таким образом, чтобы ресурса флеш-памяти (flash) прибора хватило на срок не менее 10 лет работы.
Для чтения архива можно использовать:
облачный сервис OwenCloud (автоматическое чтение в случае потери и дальнейшего восстановления связи);
ПО Owen Configurator (например, для ручного анализа);
ПО пользователя (с помощью 20 функции Modbus).
Список архивируемых параметров доступен в Owen Configurator на вкладке Информация об устройстве. Порядок записи параметров в архив соответствует порядку параметров на вкладке.
Архив считывается с помощью 20 функции Modbus (0x14). Данная функция возвращает содержание регистров файла памяти и позволяет с помощью одного запроса прочитать одну или несколько записей из одного или нескольких файлов.
В запросе чтения файла для каждой записи указывается:
тип ссылки – 1 байт (должен быть равен 6);
номер файла – 2 байта;
начальный адрес регистра внутри файла – 2 байта;
количество регистров для чтения – 2 байта.
Количество считываемых регистров в запросе должно быть подобрано таким образом, чтобы длина ответа не превышала допустимую длину пакета Modbus (256 байт).
Размер файла архива заранее неизвестен, поэтому следует считывать порции данных с помощью отдельных запросов. Если в ответ на запрос будет получено сообщение с кодом ошибки 0х04 (MODBUS_SLAVE_DEVICE_FAILURE), то можно сделать вывод, что адреса регистров в запросе находятся за пределами файла. Чтобы считать последние данные файла, требуется уменьшить количество регистров в запросе.
Режимы обмена данными
Модуль поддерживает следующие режимы обмена данными:
- обмен с Мастером сети по протоколу Modbus TCP (порт 502) — до 4 одновременных соединений с разными Мастерами сети;
- соединение и обмен данными с ПК с помощью ПО Owen Configurator;
- обмен с удаленным облачным сервисом OwenCloud (необходим доступ в Интернет);
- обмен по протоколу MQTT;
- обмен по протоколу SNMP.
Включение датчика в список опроса
Включение любого датчика в список опроса производится автоматически после задания типа его НСХ в параметре «Тип датчика». Во время установки в параметре «Тип датчика» значение «Датчик отключен» датчик из списка опроса исключается.
Для каждого входа задается параметр «Период опроса». Период опроса может быть установлен в интервале от 0,6 до 10 секунд. Если опрос входа не может быть произведен с заданной периодичностью (например, если на всех входах задан период опроса 0,6 секунд), то модуль автоматически увеличивает период опроса до наименьшего возможного.
В модуле предусмотрен режим «Максимальной загрузки АЦП». В этом режиме период опроса будет автоматически настроен на минимальный возможный период для соответствующего типа датчика.
Установка диапазона измерения
Во время работы с активными преобразователями, выходным сигналом которых является унифицированный сигнал напряжения постоянного тока или силы тока постоянного напряжения, в модуле предусмотрена возможность масштабирования шкалы измерения. Текущие величины контролируемых параметров вычисляются с помощью масштабирующих значений, задаваемых индивидуально для каждого входа. Использование масштабирующих значений позволяет отображать контролируемые физические параметры непосредственно в единицах их измерения (атмосферах, килопаскалях, метрах и т. д.).
Для масштабирования шкалы измерения следует установить границы диапазона измерения:
- Ain.L — нижняя граница, соответствует минимальному уровню выходного сигнала датчика;
- Ain.H — верхняя граница, соответствует максимальному уровню выходного сигнала датчика.
Дальнейшая обработка сигналов датчика осуществляется в заданных единицах измерения по линейному закону (прямо пропорциональному при Ain.H > Ain.L или обратно пропорциональному при Ain.H < Ain.L). Расчет текущего значения контролируемого датчиком параметра производится по формуле:
где
Ain.L, Ain.H — заданные значения параметров Ain.L и Ain.H;
Vвх — текущее значение входного сигнала;
Vmin, Vmax — минимальное и максимальное значения входного сигнала датчика по данным таблицы (мА, мВ или В);
Пизм — измеренное модулем значение параметра.
Пример
При использовании датчика с выходным сигналом силы тока постоянного напряжения (4…20) мА (тип датчика 11 в параметре in-t), контролирующего давление в диапазоне (0...25) атм., в параметре Ain.L задается значение 00,00, а в параметре Ain.H - значение 25,00. После этого обработка и отображение показаний будет производиться в атмосферах.Настройка цифровой фильтрации измерений
Для дополнительной защиты от электромагнитных помех в модуле предусмотрен программный цифровой фильтр низких частот. Цифровая фильтрация проводится в два этапа.
На первом этапе фильтрации из текущих измерений входных параметров отфильтровываются значения, имеющие явно выраженные «провалы» или «выбросы». Для этого модуль вычисляет разность между результатами измерений входной величины, выполненных в двух последних циклах опроса, и сравнивает ее с заданным значением, называемым полосой фильтра. Если вычисленная разность превышает заданный предел, то производится повторное измерение, полученный результат отбрасывается, а значение полосы фильтра удваивается. В случае подтверждения нового значения фильтр перестраивается (т.е. полоса фильтра уменьшается до исходной) на новое стабильное состояние измеряемой величины. Такой алгоритм позволяет защитить модуль от воздействия единичных импульсных и коммутационных помех, возникающих на производстве при работе силового оборудования.
Полоса фильтра задается в единицах измеряемой величины в ПО OWEN Configurator индивидуально для каждого датчика. Уменьшение полосы фильтра улучшает помехозащищенность входа измерения, но приводит к замедлению реакции модуля на быстрое изменение входной величины. Поэтому при низком уровне помех или при работе с быстро меняющимися процессами рекомендуется увеличить значение полосы фильтра или отключить действие этого параметра. При работе в условиях сильных помех для устранения их влияния на работу модуля необходимо уменьшить значение полосы фильтра. Данный фильтр может быть отключен установкой значения 0 в параметре Полоса фильтра.
На втором этапе фильтрации осуществляется сглаживание (демпфирование) сигнала с целью устранения шумовых составляющих. Основной характеристикой сглаживающего фильтра является «постоянная времени фильтра».
Фильтрация происходит по формуле:
где
П – значение в регистре «Значение аналогового выхода»;
Пизм – значение, измеренное на входе;
Пизм’ – значение, измеренное на входе в предыдущий такт измерений;
T = 1 / (k / 10+1) – коэффициент сглаживания;
K – постоянная времени фильтра.
Постоянная времени фильтра задается в секундах индивидуально для каждого входа в соответствующем параметре в ПО OWEN Configurator.
Увеличение постоянной значения фильтра улучшает помехозащищенность входа измерения, но и одновременно увеличивает его инерционность. То есть, реакция модуля на быстрые изменения входной величины замедляется.
В случае необходимости данный фильтр может быть отключен установкой значения 0 в параметре Постоянная времени фильтра.
Временные диаграммы работы цифровых фильтров представлены на рисунке.
Коррекция измерительной характеристики датчиков
Для устранения начальной погрешности преобразователей входных сигналов, измеренное модулем значение может быть откорректировано. В модуле есть два типа коррекции, позволяющие осуществлять сдвиг или наклон характеристики на заданную величину.
Сдвиг характеристики применяется:
- для компенсации погрешностей, вносимых сопротивлением подводящих проводов при использовании двухпроводной схемы подключения ТС;
- при отклонении у ТС значения R0.
Изменение наклона характеристики осуществляется путем умножения
измеренной (и скорректированной «сдвигом», если эта коррекция необходима)
величины на поправочный коэффициент β, значение которого задается
параметром Наклон. Пример изменения наклона измерительной характеристики
графически представлен на рисунке. Данный вид коррекции используется, как
правило, для компенсации погрешностей самих датчиков (например, при
отклонении у
где
Пфакт – фактическое значение контролируемой входной величины;
Пизм – измеренное модулем значение той же величины.
Определить необходимость введения поправочного коэффициента можно, измерив максимальное или близкое к нему значение параметра, где отклонение наклона измерительной характеристики наиболее заметно.
Полученная после фильтрации и коррекции результирующая информация об измеренных значениях входных параметров поступает для передачи в сеть.
Работа по протоколу ModBus
Работа по протоколу ModBus проходит в режиме TCP.
Результаты измерения представляются в следующих форматах:
- четырехбайтовые значения с плавающей точкой (без времени);
- двухбайтовое целое.
Оба формата можно считать независимо, каждый по своему адресу (см. таблицу)
Время измерения – это циклическое время с шагом 0,01 секунд, передаваемое в двух байтах. Время точно соответствует времени проведения измерения в данном канале и при работе с ним (например, при вычислении дифференциальной составляющей при ПИД-регулировании) можно не учитывать задержку передачи по сети Ethernet. Отсчет циклического времени начинается при включении модуля и каждые 65536 тактов (что соответствует 655,36 секунд) время обнуляется.
Запись регистров осуществляется командой 16 (0x10), чтение – командами 3 (0x03) или 4 (0x04).
Регистры обмена по протоколу ModBus
Параметр | Значение (ед. изм.) | Адрес регистра | Тип доступа | Формат данных | |
---|---|---|---|---|---|
DEC | HEX | ||||
Значение (float) на входе 1 | — | 4000 | 0xFA0 | Только чтение | FLOAT 32 |
Циклическое время измерения входа 1 | 0...65535 (миллисекунд) | 4002 | 0xFА2 | Только чтение | UINT 16 |
Значение (float) на входе 2 | — | 4003 | 0xFA3 | Только чтение | FLOAT 32 |
Циклическое время измерения входа 2 | 0...65535 (миллисекунд) | 4005 | 0xFА5 | Только чтение | UINT 16 |
Значение (float) на входе 3 | — | 4006 | 0xFA6 | Только чтение | FLOAT 32 |
Циклическое время измерения входа 3 | 0...65535 (миллисекунд) | 4008 | 0xFА8 | Только чтение | UINT 16 |
Значение (float) на входе 4 | — | 4009 | 0xFA9 | Только чтение | FLOAT 32 |
Циклическое время измерения входа 4 | 0...65535 (миллисекунд) | 4011 | 0xFАВ | Только чтение | UINT 16 |
Значение (float) на входе 5 | — | 4012 | 0xFAC | Только чтение | FLOAT 32 |
Циклическое время измерения входа 5 | 0...65535 (миллисекунд) | 4014 | 0xFАЕ | Только чтение | UINT 16 |
Значение (float) на входе 6 | — | 4015 | 0xFAF | Только чтение | FLOAT 32 |
Циклическое время измерения входа 6 | 0...65535 (миллисекунд) | 4017 | 0xFВ1 | Только чтение | UINT 16 |
Значение (float) на входе 7 | — | 4018 | 0xFB2 | Только чтение | FLOAT 32 |
Циклическое время измерения входа 7 | 0...65535 (миллисекунд) | 4020 | 0xFВ4 | Только чтение | UINT 16 |
Значение (float) на входе 8 | — | 4021 | 0xFB5 | Только чтение | FLOAT 32 |
Циклическое время измерения входа 8 | 0...65535 (миллисекунд) | 4023 | 0xFВ7 | Только чтение | UINT 16 |
Хол. спай 1 | — | 4040 | 0xFC8 | Только чтение | FLOAT 3 |
Хол. спай 2 | — | 4042 | 0xFCA | Только чтение | FLOAT 3 |
Хол. спай 3 | — | 4044 | 0xFCC | Только чтение | FLOAT 3 |
Значение (integer) на входе 1 | — | 4064 | 0xFE0 | Только чтение | INT 16 |
Значение (integer) на входе 2 | — | 4065 | 0xFE1 | Только чтение | INT 16 |
Значение (integer) на входе 3 | — | 4066 | 0xFE2 | Только чтение | INT 16 |
Значение (integer) на входе 4 | — | 4067 | 0xFE3 | Только чтение | INT 16 |
Значение (integer) на входе 5 | — | 4068 | 0xFE4 | Только чтение | INT 16 |
Значение (integer) на входе 6 | — | 4069 | 0xFE5 | Только чтение | INT 16 |
Значение (integer) на входе 7 | — | 4070 | 0xFE6 | Только чтение | INT 16 |
Значение (integer) на входе 8 | — | 4071 | 0xFE7 | Только чтение | INT 16 |
Статус входа 1 | — | 4072 | 0xFE8 | Только чтение | UINT 16 |
Статус входа 2 | — | 4073 | 0xFE9 | Только чтение | UINT 16 |
Статус входа 3 | — | 4074 | 0xFEA | Только чтение | UINT 16 |
Статус входа 4 | — | 4075 | 0xFEB | Только чтение | UINT 16 |
Статус входа 5 | — | 4076 | 0xFEC | Только чтение | UINT 16 |
Статус входа 6 | — | 4077 | 0xFED | Только чтение | UINT 16 |
Статус входа 7 | — | 4078 | 0xFEE | Только чтение | UINT 16 |
Статус входа 8 | — | 4079 | 0xFEF | Только чтение | UINT 16 |
Тайм-аут перехода в безопасное состояние | 0...60 (секунд) | 700 | 0x2BC | Чтение и запись | UINT 8 |
Разрешение конфигурирования из удаленного облачного сервиса | 0 – заблокировано; 1 – разрешено | 701 | 0x2BD | Чтение и запись | UINT 16 |
Управление и запись значений из удаленного облачного сервиса | 0 – заблокировано; 1 – разрешено | 702 | 0x2BE | Чтение и запись | UINT 16 |
Доступ к регистрам Modbus из удаленного облачного сервиса | 0 – полный запрет; 1 – только чтение; 2 – только запись; 3 – полный доступ | 703 | 0x2BF | Чтение и запись | UINT 16 |
Состояние батареи (напряжение) | 0…3300 (мВ) | 801 | 0x321 | Только чтение | UINT 16 |
Период архивирования | 10…3600 (секунд) | 900 | 0x384 | Чтение и запись | UINT 16 |
Максимальная загрузка АЦП | 0 – Выкл. 1 – Вкл. | 4097 | 0x1001 | Чтение и запись | UINT 16 |
Тип датчика входа 1 | см. таблицу | 4100 | 0x1004 | Чтение и запись | UINT 32 |
Полоса фильтра входа 1 | 0…100 | 4102 | 0x1006 | Чтение и запись | UINT 16 |
Положение десятичной точки входа 1 | 0…7 | 4103 | 0x1007 | Чтение и запись | UINT 16 |
Сдвиг характеристики входа 1 | –10000…10000 | 4104 | 0x1008 | Чтение и запись | FLOAT 32 |
Наклон характеристики входа 1 | –1…10 | 4106 | 0x100A | Чтение и запись | FLOAT 32 |
AIN.H верхняя граница входа 1 | –10000…10000 | 4108 | 0x100C | Чтение и запись | FLOAT 32 |
AIN.L нижняя граница входа 1 | –10000…10000 | 4110 | 0x100E | Чтение и запись | FLOAT 32 |
Постоянная времени фильтра входа 1 | 0…65535 | 4112 | 0x1010 | Чтение и запись | UINT 16 |
Период измерения входа 1 | 600…10000 (миллисекунд) | 4113 | 0x1011 | Чтение и запись | UINT 16 |
Тип датчика входа 2 | см. таблицу | 4116 | 0x1014 | Чтение и запись | UINT 32 |
Полоса фильтра входа 2 | 0…100 | 4118 | 0x1016 | Чтение и запись | UINT 16 |
Положение десятичной точки входа 2 | 0…7 | 4119 | 0x1017 | Чтение и запись | UINT 16 |
Сдвиг характеристики входа 2 | –10000…10000 | 4120 | 0x1018 | Чтение и запись | FLOAT 32 |
Наклон характеристики входа 2 | –1…10 | 4122 | 0x101A | Чтение и запись | FLOAT 32 |
AIN.H верхняя граница входа 2 | –10000…10000 | 4124 | 0x101C | Чтение и запись | FLOAT 32 |
AIN.L нижняя граница входа 2 | –10000…10000 | 4126 | 0x101E | Чтение и запись | FLOAT 32 |
Постоянная времени фильтра входа 2 | 0…65535 | 4128 | 0x1020 | Чтение и запись | UINT 16 |
Период измерения входа 2 | 600…10000 (миллисекунд) | 4129 | 0x1021 | Чтение и запись | UINT 16 |
Тип датчика входа 3 | см. таблицу | 4132 | 0x1024 | Чтение и запись | UINT 32 |
Полоса фильтра входа 3 | 0…100 | 4134 | 0x1026 | Чтение и запись | UINT 16 |
Положение десятичной точки входа 3 | 0…7 | 4135 | 0x1027 | Чтение и запись | UINT 16 |
Сдвиг характеристики входа 3 | –10000…10000 | 4136 | 0x1028 | Чтение и запись | FLOAT 32 |
Наклон характеристики входа 3 | –1…10 | 4138 | 0x102A | Чтение и запись | FLOAT 32 |
AIN.H верхняя граница входа 3 | –10000…10000 | 4140 | 0x102C | Чтение и запись | FLOAT 32 |
AIN.L нижняя граница входа 3 | –10000…10000 | 4142 | 0x102E | Чтение и запись | FLOAT 32 |
Постоянная времени фильтра входа 3 | 0…65535 | 4144 | 0x1030 | Чтение и запись | UINT 16 |
Период измерения входа 3 | 600…10000 (миллисекунд) | 4145 | 0x1031 | Чтение и запись | UINT 16 |
Тип датчика входа 4 | см. таблицу | 4148 | 0x1034 | Чтение и запись | UINT 32 |
Полоса фильтра входа 4 | 0…100 | 4150 | 0x1036 | Чтение и запись | UINT16 |
Положение десятичной точки входа 4 | 0…7 | 4151 | 0x1037 | Чтение и запись | UINT 16 |
Сдвиг характеристики входа 4 | –10000…10000 | 4152 | 0x1038 | Чтение и запись | FLOAT 32 |
Наклон характеристики входа 4 | –1…10 | 4154 | 0x103A | Чтение и запись | FLOAT 32 |
AIN.H верхняя граница входа 4 | –10000…10000 | 4156 | 0x103C | Чтение и запись | FLOAT 32 |
AIN.L нижняя граница входа 4 | –10000…10000 | 4158 | 0x103E | Чтение и запись | FLOAT 32 |
Постоянная времени фильтра входа 4 | 0…65535 | 4160 | 0x1040 | Чтение и запись | UINT 16 |
Период измерения входа 4 | 600…10000 (миллисекунд) | 4161 | 0x1041 | Чтение и запись | UINT 16 |
Тип датчика входа 5 | см. таблицу | 4164 | 0x1044 | Чтение и запись | UINT 32 |
Полоса фильтра входа 5 | 0…100 | 4166 | 0x1046 | Чтение и запись | UINT 16 |
Положение десятичной точки входа 5 | 0…7 | 4167 | 0x1047 | Чтение и запись | UINT 16 |
Сдвиг характеристики входа 5 | –10000…10000 | 4168 | 0x1048 | Чтение и запись | FLOAT 32 |
Наклон характеристики входа 5 | –1…10 | 4170 | 0x104A | Чтение и запись | FLOAT 32 |
AIN.H верхняя граница входа 5 | –10000…10000 | 4172 | 0x104C | Чтение и запись | FLOAT32 |
AIN.L нижняя граница входа 5 | –10000…10000 | 4174 | 0x104E | Чтение и запись | FLOAT 32 |
Постоянная времени фильтра входа 5 | 0…65535 | 4176 | 0x1050 | Чтение и запись | UINT 16 |
Период измерения входа 5 | 600…10000 (миллисекунд) | 4177 | 0x1051 | Чтение и запись | UINT 16 |
Тип датчика входа 6 | см. таблицу | 4180 | 0x1054 | Чтение и запись | UINT 32 |
Полоса фильтра входа 6 | 0…100 | 4182 | 0x1056 | Чтение и запись | UINT 16 |
Положение десятичной точки входа 6 | 0…7 | 4183 | 0x1057 | Чтение и запись | UINT 16 |
Сдвиг характеристики входа 6 | –10000…10000 | 4184 | 0x1058 | Чтение и запись | FLOAT 32 |
Наклон характеристики входа 6 | –1…10 | 4186 | 0x105A | Чтение и запись | FLOAT 32 |
AIN.H верхняя граница входа 6 | –10000…10000 | 4188 | 0x105C | Чтение и запись | FLOAT 32 |
AIN.L нижняя граница входа 6 | –10000…10000 | 4190 | 0x105E | Чтение и запись | FLOAT 32 |
Постоянная времени фильтра входа 6 | 0…65535 | 4192 | 0x1060 | Чтение и запись | UINT 16 |
Период измерения входа 6 | 600…10000 (миллисекунд) | 4193 | 0x1061 | Чтение и запись | UINT 16 |
Тип датчика входа 7 | см. таблицу | 4196 | 0x1064 | Чтение и запись | UINT 32 |
Полоса фильтра входа 7 | 0…100 | 4198 | 0x1066 | Чтение и запись | UINT 16 |
Положение десятичной точки входа 7 | 0…7 | 4199 | 0x1067 | Чтение и запись | UINT 16 |
Сдвиг характеристики входа 7 | –10000…10000 | 4200 | 0x1068 | Чтение и запись | FLOAT 32 |
Наклон характеристики входа 7 | –1…10 | 4202 | 0x106A | Чтение и запись | FLOAT 32 |
AIN.H верхняя граница входа 7 | –10000…10000 | 4204 | 0x106C | Чтение и запись | FLOAT 32 |
AIN.L нижняя граница входа 7 | –10000…10000 | 4206 | 0x106E | Чтение и запись | FLOAT 32 |
Постоянная времени фильтра входа 7 | 0…65535 | 4208 | 0x1070 | Чтение и запись | UINT16 |
Период измерения входа 7 | 600…10000 (миллисекунд) | 4209 | 0x1071 | Чтение и запись | UINT 16 |
Тип датчика входа 8 | см. таблицу | 4212 | 0x1074 | Чтение и запись | UINT 32 |
Полоса фильтра входа 8 | 0…100 | 4214 | 0x1076 | Чтение и запись | UINT 16 |
Положение десятичной точки входа 8 | 0…7 | 4215 | 0x1077 | Чтение и запись | UINT 16 |
Сдвиг характеристики входа 8 | –10000…10000 | 4216 | 0x1078 | Чтение и запись | FLOAT 32 |
Наклон характеристики входа 8 | –1…10 | 4218 | 0x107A | Чтение и запись | FLOAT 32 |
AIN.H верхняя граница входа 8 | –10000…10000 | 4220 | 0x107C | Чтение и запись | FLOAT 32 |
AIN.L нижняя граница входа 8 | –10000…10000 | 4222 | 0x107E | Чтение и запись | FLOAT 32 |
Постоянная времени фильтра входа 8 | 0…65535 | 4224 | 0x1080 | Чтение и запись | UINT16 |
Период измерения входа 8 | 600…10000 (миллисекунд) | 4225 | 0x1081 | Чтение и запись | UINT 16 |
Время в миллисекундах | — | 61563 | 0xF07B | Только чтение | UINT 32 |
Новое время | Дата/Время в секундах с 1 января 2000 г. | 61565 | 0xF07D | Чтение и запись | UINT 32 |
Записать новое время | 0 – не записывать 1 – записать | 61567 | 0xF07F | Чтение и запись | UINT 16 |
Время и дата (UTC) | Дата/Время в секундах с 1 января 2000 г. | 61568 | 0xF080 | Только чтение | UINT 32 |
Часовой пояс | смещение в минутах от Гринвича | 61570 | 0xF082 | Чтение и запись | INT 16 |
DNS сервер 1 | — | 12 | 0xС | Чтение и запись | UINT 32 |
DNS сервер 2 | — | 14 | 0xЕ | Чтение и запись | UINT 32 |
Установить IP-адрес | — | 20 | 0x14 | Чтение и запись | UINT 32 |
Установить маску подсети | — | 22 | 0x16 | Чтение и запись | UINT 32 |
Установить IP-адрес шлюза | — | 24 | 0x18 | Чтение и запись | UINT 32 |
MAC адрес | — | 61696 | 0xF100 | Только чтение | UINT 48 |
Текущий IP-адрес | — | 26 | 0x1A | Только чтение | UINT 32 |
Текущая маска подсети | — | 28 | 0x1C | Только чтение | UINT 32 |
Текущий IP-адрес шлюза | — | 30 | 0x1E | Только чтение | UINT 32 |
Режим DHCP | 0 – выкл.; 1 – вкл.; 2 – разовая установка кнопкой | 32 | 0x20 | Чтение и запись | UINT 16 |
Подключение к OwenCloud | 0 – выкл.; 1 – вкл. | 35 | 0x23 | Чтение и запись | UINT 16 |
Статус подключения к OwenCloud | 0 – нет связи; 1 – соединение; 2 – работа; 3 – ошибка; 4 – нет пароля | 36 | 0x24 | Только чтение | UINT 16 |
Включение/Отключение NTP | 0 – выкл.; 1 – вкл. | 5632 | 0x1600 | Чтение и запись | UINT 16 |
Пул NTP серверов | — | 5633 | 0x1601 | Чтение и запись | STRING 256 |
NTP сервер 1 | — | 5697 | 0x1641 | Чтение и запись | UINT 32 |
NTP сервер 2 | — | 5699 | 0x6143 | Чтение и запись | UINT 32 |
Период синхронизации NTP | 5…65535 с | 5701 | 0x1645 | Чтение и запись | UINT 16 |
Статус NTP | 0 – отключено; 1 – опрос; 2 – синхронизировано | 5702 | 0x1646 | Чтение и запись | UINT 16 |
Подключение к брокеру MQTT | 0 – выкл.; 1 – вкл. | 5888 | 0x1700 | Только чтение | UINT 16 |
Логин MQTT | — | 5928 | 0x1728 | Чтение и запись | STRING 256 |
Пароль MQTT | — | 5960 | 0x1748 | Чтение и запись | STRING 256 |
Имя устройства MQTT | — | 5896 | 0x1708 | Чтение и запись | STRING 256 |
Адрес брокера MQTT | — | 5993 | 0x1769 | Чтение и запись | STRING 256 |
Порт MQTT | 0…65535 | 5891 | 0x1703 | Чтение и запись | UINT 16 |
Хранение последнего сообщения MQTT | 0 – выкл.; 1 – вкл. | 5895 | 0x1707 | Чтение и запись | UINT 16 |
Интервал публикации MQTT | 5…600 с | 5892 | 0x1704 | Чтение и запись | UINT 16 |
Качество обслуживания MQTT | 0 – QoS0; 1 – QoS1; 2 – QoS2 | 5893 | 0x1705 | Чтение и запись | UINT 16 |
Интервал Keep Alive MQTT | 0…600 с | 5992 | 0x1768 | Чтение и запись | UINT 16 |
Статус MQTT | 0 – отключено; 1 – подулючено; 2 – ошибка соединения | 6025 | 0x1789 | Только чтение | UINT 16 |
Включить (MQTTstatus) | 0 – выкл.; 1 – вкл. | 6026 | 0x178A | Чтение и запись | UINT 16 |
Включение/Отключение SNMP | 0 – выкл.; 1 – вкл. | 5120 | 0x1400 | Чтение и запись | UINT 16 |
Сообщество для чтения SNMP | — | 6001 | 0x1771 | Чтение и запись | STRING 256 |
Сообщество для записи SNMP | — | 6017 | 0x1781 | Чтение и запись | STRING 256 |
IP адрес для ловушки SNMP | — | 5121 | 0x1401 | Чтение и запись | UINT 32 |
Номер порта для ловушки | 0…65535 | 5123 | 0x1403 | Чтение и запись | UINT 16 |
Версия SNMP | 0 – SNMPv1; 1 – SNMPv2 | 5124 | 0x1404 | Чтение и запись | UINT 16 |
При управлении по протоколу Modbus для каждого входа следует указать тип датчика записью кода в соответствующий регистр. По умолчанию установлено значение 0.
Коды типов датчиков
Значение в регистре «тип датчика» | Тип датчика |
---|---|
0 | Датчик отключен |
1 | Cu 100 (α = 0,00426 °С-1) |
2 | Cu 50 (α = 0,00426 °С-1) |
3 | Pt 100 (α = 0,00385 °С-1) |
4 | 100П (α = 0,00391 °С-1) |
5 | ТХК (L) |
6 | ТХА (K) |
7 | Датчик (–50…+50) мВ |
8 | Pt 50 (α = 0,00385 °С-1) |
9 | 50П (α = 0,00391 °С-1) |
10 | 50М (α = 0,00428 °С-1) |
11 | Датчик (4…20) мА |
12 | Датчик (0…20) мА |
13 | Датчик (0…5) мА |
14 | Датчик (–1…1) В |
15 | 100М (α = 0,00428 °С-1) |
16 | ТСМ гр.23 (53 Ом) |
17 | ТПР (B) |
18 | ТПП (S) |
19 | ТПП (R) |
20 | TНН (N) |
21 | ТЖК (J) |
22 | ТВР (А-1) |
23 | ТВР (А-2) |
24 | TВР (А-3) |
25 | TМК (Т) |
26 | Датчики контактные (сухие) |
27 | Ni 100 (α = 0,00617 °С-1) |
28 | Cu 500 (α = 0,00426 °С-1) |
29 | 500M (α = 0,00428 °С-1) |
30 | Pt 500 (α = 0,00385 °С-1) |
31 | 500П (α = 0,00391 °С-1) |
32 | Ni 500 (α = 0,00617 °С-1) |
33 | Cu 1000 (α = 0,00426 °С-1) |
34 | 1000M (α = 0,00428 °С-1) |
35 | Pt 1000 (α = 0,00385 °С-1) |
36 | 1000П (α = 0,00391 °С-1) |
37 | Ni 1000 (α = 0,00617 °С-1) |
38 | Резистивный датчик (0…2,0) кОм |
39 | Резистивный датчик (0…5,0) кОм |
Коды ошибок для протокола Modbus
Во время работы модуля по протоколу Modbus возможно возникновение ошибок, представленных в таблице. В случае возникновения ошибки модуль отправляет Мастеру сети ответ с кодом ошибки.
Список возможных ошибок
Название ошибки | Возвращаемый код | Описание ошибки |
---|---|---|
MODBUS_ILLEGAL_FUNCTION | 01 (0x01) | Недопустимый код функции – ошибка возникает, если модуль не поддерживает функцию Modbus, указанную в запросе |
MODBUS_ILLEGAL_DATA_ADDRESS | 02 (0x02) | Недопустимый адрес регистра – ошибка возникает, если в запросе указаны адреса регистров, отсутствующие в модуле |
MODBUS_ILLEGAL_DATA_VALUE | 03 (0x03) | Недопустимое значение данных – ошибка возникает, если запрос содержит недопустимое значение для записи в регистр |
MODBUS_SLAVE_DEVICE_FAILURE | 04 (0x04) | Ошибка возникает, если запрошенное действие не может быть завершено |
Во время обмена по протоколу Modbus модуль проверяет соответствие запросов спецификации Modbus. Не прошедшие проверку запросы игнорируются модулем. Запросы, в которых указан адрес, не соответствующий адресу модуля, также игнорируются.
Далее проверяется код функции. Если в модуль приходит запрос с кодом функции, не указанной в таблице, возникает ошибка MODBUS_ILLEGAL_FUNCTION.
Список поддерживаемых функций
Название функции | Код функции | Описание функции |
---|---|---|
MODBUS_READ_HOLDING_REGISTERS | 3 (0x03) | Чтение значений из одного или нескольких регистров хранения |
MODBUS_READ_INPUT_REGISTERS | 4 (0x04) | Чтение значений из одного или нескольких регистров ввода |
MODBUS_WRITE_SINGLE_REGISTER | 6 (0x06) | Запись значения в один регистр |
MODBUS_WRITE_MULTIPLE_REGISTERS | 16 (0x10) | Запись значений в несколько регистров |
MODBUS_READ_FILE_RECORD | 20 (0x14) | Чтение архива из файла |
MODBUS_WRITE_FILE_RECORD | 21 (0x15) | Запись архива в файл |
Ситуации, приводящие к возникновению ошибок во время работы с регистрами, описаны в таблице.
Ошибки во время работы с регистрами
Используемая функция | Наименование ошибки | Возможные ситуации, приводящие к ошибке |
---|---|---|
MODBUS_READ_HOLDING_REGISTERS | MODBUS_ILLEGAL_DATA_ADDRESS |
|
MODBUS_READ_INPUT_REGISTERS | MODBUS_ILLEGAL_DATA_ADDRESS |
|
MODBUS_WRITE_SINGLE_REGISTER | MODBUS_ILLEGAL_DATA_ADDRESS |
|
MODBUS_ILLEGAL_DATA_VALUE |
| |
MODBUS_WRITE_MULTIPLE_REGISTERS | MODBUS_ILLEGAL_DATA_ADDRESS |
|
MODBUS_ILLEGAL_DATA_VALUE |
|
Ситуации, приводящие к возникновению ошибок во время работы с архивом, описаны в таблице.
Ошибки во время работы с архивом
Используемая функция | Наименование ошибки | Возможные ситуации, приводящие к ошибке |
---|---|---|
MODBUS_READ_FILE_RECORD | MODBUS_ILLEGAL_FUNCTION |
|
MODBUS_ILLEGAL_DATA_ADDRESS |
| |
MODBUS_ILLEGAL_DATA_VALUE |
| |
MODBUS_SLAVE_DEVICE_FAILURE |
| |
MODBUS_WRITE_FILE_RECORD | MODBUS_ILLEGAL_FUNCTION |
|
MODBUS_ILLEGAL_DATA_ADDRESS |
| |
MODBUS_SLAVE_DEVICE_FAILURE |
|
Работа по протоколу MQTT
Архитектура MQTT определяет три типа устройств в сети:
- брокер – устройство (обычно – ПК с серверным ПО), которое осуществляет передачу сообщений от издателей к подписчикам;
- издатели – устройства, которые являются источниками данных для подписчиков;
- подписчики – устройства, которые получают данные от издателей.
Одно устройство может совмещать функции издателя и подписчика.
Подписка и публикация данных происходит в рамках топиков. Топик представляет собой символьную строку с кодировкой UTF-8, которая позволяет однозначно идентифицировать определенный параметр. Топики состоят из уровней, разделяемых символом «/».
Структура топиков модулей: Серия/Имя_устройства/Функция/Имя_узла/Параметр, где:
- Серия – наименование серии устройства, всегда имеет значение MX210;
- Имя_устройства – имя конкретного модуля, заданное в ПО Owen Configurator (см. раздел);
- Функция – GET (чтение значений входов или выходов модуля) или SET (запись значений выходов модуля);
- Имя_узла – тип входов или выходов (DI/DO/AI/AO);
- Параметр – название конкретного параметра (см. таблицу).
Уровни топиков модуля
Серия | Имя устройства | Функция | Имя узла | Параметр | Описание | Формат значения |
---|---|---|---|---|---|---|
MX210 | Device | GET | AI1–AI8 | VALUE | Значение аналогового входа | С плавающей точкой |
Пример
Работа по протоколу SNMP
Протокол основан на архитектуре «Клиент/Сервер», при этом в терминологии протокола клиенты называются менеджерами, а серверы – агентами.
Менеджеры могут производить чтение (GET) и запись (SET) параметров агентов. Агенты могут отправлять менеджерам уведомления (трапы) – например, о переходе оборудования в аварийное состояние.
Каждый параметр агента имеет уникальный идентификатор (OID), представляющий собой последовательность цифр, разделенных точками. Для упрощения настройки обмена производители устройств-агентов обычно предоставляют MIB-файлы, которые включают в себя список параметров прибора с их названиями и идентификаторами. Эти файлы могут быть импортированы в SNMP-менеджер.
Диагностика работы первичных датчиков
В процессе работы модуль контролирует работоспособность подключенных к нему первичных преобразователей. В случае обнаружения неисправности любого из них модуль передает сообщение об ошибке по сетевому интерфейсу Ethernet.
Ошибки формируются:
- при работе с ТС в случае их обрыва или короткого замыкания;
- при работе с ТП в случае их обрыва, а также при увеличении температуры свободных концов термопар свыше 90 °С или при ее уменьшении ниже минус 40 °С;
- при работе с любым типом первичных преобразователей в случае получения результатов измерений, выходящих за установленные для данного датчика границы диапазона контроля.
Некоторые типы неисправностей первичных преобразователей не могут быть диагностированы модулем. К ним относятся обрывы датчиков тока и напряжения (измеренный вход выдает нулевое значение или диагностирует как неисправность «Значение слишком мало»).
Из-за введенной в модуль диагностики короткого замыкания ТС модуль воспринимает сигналы сопротивления менее 25 Ом как недостоверные, в связи с этим, например, датчик (0...2000) Ом не может измерять сигналы в диапазоне от 0 до 25 Ом (от 0 до 1,26 % диапазона).
Ошибки датчиков
В случае возникновения ошибки на входе во время обмена по протоколу Modbus код ошибки передается в регистр статуса входа и в старший байт регистра значения (тип float).
Коды ошибок регистра значения
Характер ошибки | Старший байт регистра значения (float32) | Регистр статуса | Индикация |
---|---|---|---|
Измерение успешно | 0х00 | 0х00 | Зеленый |
Значение заведомо неверно | 0хF0 | — | Оранжевый |
Данные не готовы. Необходимо дождаться результатов первого измерения после включения модуля | 0xF6 | 0x06 | Оранжевый |
Датчик отключен | 0xF7 | 0x07 | Выключен |
Велика температура свободных концов ТП | 0xF8 | 0x08 | Оранжевый |
Мала температура свободных концов ТП | 0xF9 | 0x09 | Оранжевый |
Измеренное значение слишком велико | 0xFA | 0x0A | Оранжевый |
Измеренное значение слишком мало | 0xFB | 0x0B | Оранжевый |
Короткое замыкание датчика | 0xFC | 0x0C | Красный |
Обрыв датчика | 0xFD | 0x0D | Красный |
Отсутствие связи с АЦП | 0xFE | 0x0E | Красный |
Некорректный калибровочный коэффициент | 0xFF | 0x0F | Оранжевый |