Принцип работы
Работой модуля управляет Мастер сети. Модуль передает в сеть данные о состоянии входов при запросе и получает команды на управление выходами от Мастера сети.
В качестве Мастера сети можно использовать:
- ПК;
- ПЛК;
- панель оператора;
- удаленный облачный сервис.
Индикация и управление
На лицевой панели МК210-301 и МК210-311 расположены элементы индикации — светодиоды. Расшифровка значений приведена в таблице.
В нижней части лицевой панели расположено поле «IP».
Назначение светодиодов
Светодиод | Состояние светодиода | Назначение |
---|---|---|
Питание (зеленый) | Не светится | Питание выключено |
Светится | Напряжение питания прибора подано | |
Eth 1 (зеленый) | Не светится | Кабель не подключен |
Мигает | Передача данных по порту 1 Ethernet | |
Eth 2 (зеленый) | Не светится | Кабель не подключен |
Мигает | Передача данных по порту 2 Ethernet | |
Авария (красный)* | Не светится | Сбои отсутствуют |
Светится постоянно | Сбой основного приложения и/или конфигурации | |
Включается один раз в две секунды (включается на 100 мс) | Необходимо заменить батарею питания часов (напряжение батареи ниже 2 В) | |
Включается два раза в секунду (включается на 100 мс через паузу 400 мс) | Модуль находится в безопасном состоянии | |
Включается на 900 мс через паузу 100 мс | Аппаратный сбой периферии (Flash, RTC, Ethernet Switch) | |
Индикаторы состояния входов (зеленые) | Светится зеленым | Вход замкнут |
Не светится | Вход разомкнут | |
Индикаторы состояния выходов (красный/зеленый) | Светится зеленым | Выход замкнут |
Не светится | Выход разомкнут | |
Светится красным (для выходов модуля МК210-311) | Авария (обрыв нагрузки, спекание контактов, и др.)** | |
Примечание * Приоритеты индикации светодиода «Авария» от большего к меньшему: аппаратный сбой, программные ошибки, безопасный режим, уровень заряда батареи. ** См. раздел. |
Под крышкой модуля расположены клеммники и сервисная кнопка (рисунок).
Сервисная кнопка выполняет следующие функции:
Часы реального времени
В приборе есть встроенные часы реального времени (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.
Работа по протоколу Modbus TCP
Чтение и запись параметров по протоколу Modbus TCP
Операция | Функция |
---|---|
Чтение | 3 (0х03) или 4 (0х04) |
Запись | 6 (0х06) или 16 (0х10) |
Список регистров Modbus можно получить следующими способами:
- считать с прибора с помощью ПО OWEN Configurator во вкладке Параметры устройства;
- посмотреть в таблице и таблице.
Общие регистры оперативного обмена по протоколу Modbus
Название | Регистр | Размер/тип/описание |
---|---|---|
Название (имя) прибора для отображения пользователю (DEV) | 0xF000 | Символьная строка 32 до байт, кодировка Win1251 |
Версия встроенного ПО прибора для отображения пользователю (VER) | 0xF010 | Символьная строка 32 до байт, кодировка Win1251 |
Время | 0xF080 | 4 байта, в секундах с 2000 г |
Часовой пояс | 0xF082 | 2 байта, signed short, смещение в минутах от Гринвича |
Заводской номер прибора | 0xF084 | Символьная строка 32 байта, кодировка Win1251, используется 17 символов |
Регистры обмена по протоколу ModBus
Параметр | Значение (ед. изм.) | Адрес регистра | Тип доступа | Формат данных | |
---|---|---|---|---|---|
DEC | HEX | ||||
Состояние дискретных входов DI1-DI6, битовая маска | 0…63 | 51 | 0х33 | Только чтение | UINT 8 |
Включение фильтра антидребезга для входа DI1 | 0 – выключено 1 – включено | 96 | 0х60 | Чтение и запись | UINT 16 |
Включение фильтра антидребезга для входа DI2 | 0 – выключено 1 – включено | 97 | 0х61 | Чтение и запись | UINT 16 |
Включение фильтра антидребезга для входа DI3 | 0 – выключено 1 – включено | 98 | 0х62 | Чтение и запись | UINT 16 |
Включение фильтра антидребезга для входа DI4 | 0 – выключено 1 – включено | 99 | 0х63 | Чтение и запись | UINT 16 |
Включение фильтра антидребезга для входа DI5 | 0 – выключено 1 – включено | 100 | 0х64 | Чтение и запись | UINT 16 |
Включение фильтра антидребезга для входа DI6 | 0 – выключено 1 – включено | 101 | 0х65 | Чтение и запись | UINT 16 |
Значение счетчика импульсов входа DI1 | 0…4294967295 | 160 | 0хA0 | Только чтение | UINT 32 |
Значение счетчика импульсов входа DI2 | 0…4294967295 | 162 | 0хA2 | Только чтение | UINT 32 |
Значение счетчика импульсов входа DI3 | 0…4294967295 | 164 | 0хA4 | Только чтение | UINT 32 |
Значение счетчика импульсов входа DI4 | 0…4294967295 | 166 | 0хA6 | Только чтение | UINT 32 |
Значение счетчика импульсов входа DI5 | 0…4294967295 | 168 | 0хA8 | Только чтение | UINT 32 |
Значение счетчика импульсов входа DI6 | 0…4294967295 | 170 | 0хAA | Только чтение | UINT 32 |
Сброс значения счетчика импульсов входа DI1 | 0 – сбросить 1 – не сброшен | 224 | 0хE0 | Чтение и запись | UINT 16 |
Сброс значения счетчика импульсов входа DI2 | 0 – сбросить 1 – не сброшен | 225 | 0хE1 | Чтение и запись | UINT 16 |
Сброс значения счетчика импульсов входа DI3 | 0 – сбросить 1 – не сброшен | 226 | 0хE2 | Чтение и запись | UINT 16 |
Сброс значения счетчика импульсов входа DI4 | 0 – сбросить 1 – не сброшен | 227 | 0хE3 | Чтение и запись | UINT 16 |
Сброс значения счетчика импульсов входа DI5 | 0 – сбросить 1 – не сброшен | 228 | 0хE4 | Чтение и запись | UINT 16 |
Сброс значения счетчика импульсов входа DI6 | 0 – сбросить 1 – не сброшен | 229 | 0хE5 | Чтение и запись | UINT 16 |
Режим работы выхода DO1 | 0 – перекл. логич. сигнала 1 – ШИМ | 272 | 0х110 | Чтение и запись | UINT 16 |
Режим работы выхода DO2 | 0 – перекл. логич. сигнала 1 – ШИМ | 273 | 0х111 | Чтение и запись | UINT 16 |
Режим работы выхода DO3 | 0 – перекл. логич. сигнала 1 – ШИМ | 274 | 0х112 | Чтение и запись | UINT 16 |
Режим работы выхода DO4 | 0 – перекл. логич. сигнала 1 – ШИМ | 275 | 0х113 | Чтение и запись | UINT 16 |
Режим работы выхода DO5 | 0 – перекл. логич. сигнала 1 – ШИМ | 276 | 0х114 | Чтение и запись | UINT 16 |
Режим работы выхода DO6 | 0 – перекл. логич. сигнала 1 – ШИМ | 277 | 0х115 | Чтение и запись | UINT 16 |
Режим работы выхода DO7 | 0 – перекл. логич. сигнала 1 – ШИМ | 278 | 0х116 | Чтение и запись | UINT 16 |
Режим работы выхода DO8 | 0 – перекл. логич. сигнала 1 – ШИМ | 279 | 0х117 | Чтение и запись | UINT 16 |
Период ШИМ выхода DO1 | 1000…60000 (миллисекунд) | 308 | 0х134 | Чтение и запись | UINT 16 |
Период ШИМ выхода DO2 | 1000…60000 (миллисекунд) | 309 | 0х135 | Чтение и запись | UINT 16 |
Период ШИМ выхода DO3 | 1000…60000 (миллисекунд) | 310 | 0х136 | Чтение и запись | UINT 16 |
Период ШИМ выхода DO4 | 1000…60000 (миллисекунд) | 311 | 0х137 | Чтение и запись | UINT 16 |
Период ШИМ выхода DO5 | 1000…60000 (миллисекунд) | 312 | 0х138 | Чтение и запись | UINT 16 |
Период ШИМ выхода DO6 | 1000…60000 (миллисекунд) | 313 | 0х139 | Чтение и запись | UINT 16 |
Период ШИМ выхода DO7 | 1000…60000 (миллисекунд) | 314 | 0х13А | Чтение и запись | UINT 16 |
Период ШИМ выхода DO8 | 1000…60000 (миллисекунд) | 315 | 0х13В | Чтение и запись | UINT 16 |
Коэффициент заполнения ШИМ выхода DO1 | 0…1000 (0,10%) | 340 | 0х154 | Чтение и запись | UINT 16 |
Коэффициент заполнения ШИМ выхода DO2 | 0…1000 (0,10%) | 341 | 0х155 | Чтение и запись | UINT 16 |
Коэффициент заполнения ШИМ выхода DO3 | 0…1000 (0,10%) | 342 | 0х156 | Чтение и запись | UINT 16 |
Коэффициент заполнения ШИМ выхода DO4 | 0…1000 (0,10%) | 343 | 0х157 | Чтение и запись | UINT 16 |
Коэффициент заполнения ШИМ выхода DO5 | 0…1000 (0,10%) | 344 | 0х158 | Чтение и запись | UINT 16 |
Коэффициент заполнения ШИМ выхода DO6 | 0…1000 (0,10%) | 345 | 0х159 | Чтение и запись | UINT 16 |
Коэффициент заполнения ШИМ выхода DO7 | 0…1000 (0,10%) | 346 | 0х15А | Чтение и запись | UINT 16 |
Коэффициент заполнения ШИМ выхода DO8 | 0…1000 (0,10%) | 347 | 0х15B | Чтение и запись | UINT 16 |
Диагностика исправности реле и обрыва нагрузки выхода DO1* | 0 – выкл. 1 – вкл. | 436 | 0x1B4 | Чтение и запись | UINT 16 |
Диагностика исправности реле и обрыва нагрузки выхода DO2* | 0 – выкл. 1 – вкл. | 437 | 0x1B5 | Чтение и запись | UINT 16 |
Диагностика исправности реле и обрыва нагрузки выхода DO3* | 0 – выкл. 1 – вкл. | 438 | 0x1B6 | Чтение и запись | UINT 16 |
Диагностика исправности реле и обрыва нагрузки выхода DO4* | 0 – выкл. 1 – вкл. | 439 | 0x1B7 | Чтение и запись | UINT 16 |
Диагностика исправности реле и обрыва нагрузки выхода DO5* | 0 – выкл. 1 – вкл. | 440 | 0x1B8 | Чтение и запись | UINT 16 |
Диагностика исправности реле и обрыва нагрузки выхода DO6* | 0 – выкл. 1 – вкл. | 441 | 0x1B9 | Чтение и запись | UINT 16 |
Диагностика исправности реле и обрыва нагрузки выхода DO7* | 0 – выкл. 1 – вкл. | 442 | 0x1BA | Чтение и запись | UINT 16 |
Диагностика исправности реле и обрыва нагрузки выхода DO8* | 0 – выкл. 1 – вкл. | 443 | 0x1BB | Чтение и запись | UINT 16 |
Битовая маска состояния выходов DO1-DO8 | 0…255 | 468 | 0x1D4 | Только чтение | UINT 8 |
Битовая маска установки состояния выходов DO1-DO8 | 0…255 | 470 | 0x1D6 | Чтение и запись | UINT 8 |
Битовая маска состояния диагностики реле и обрыва нагрузки DO1-DO8* | 0…255 | 472 | 0x1D8 | Только чтение | UINT 8 |
Безопасное состояние выхода DO1 | 0…1000 (0,10%) | 474 | 0x1DA | Чтение и запись | UINT 16 |
Безопасное состояние выхода DO2 | 0…1000 (0,10%) | 475 | 0x1DВ | Чтение и запись | UINT 16 |
Безопасное состояние выхода DO3 | 0…1000 (0,10%) | 476 | 0x1DС | Чтение и запись | UINT 16 |
Безопасное состояние выхода DO4 | 0…1000 (0,10%) | 477 | 0x1DD | Чтение и запись | UINT 16 |
Безопасное состояние выхода DO5 | 0…1000 (0,10%) | 478 | 0x1DE | Чтение и запись | UINT 16 |
Безопасное состояние выхода DO6 | 0…1000 (0,10%) | 479 | 0x1DF | Чтение и запись | UINT 16 |
Безопасное состояние выхода DO7 | 0…1000 (0,10%) | 480 | 0x1D0 | Чтение и запись | UINT 16 |
Безопасное состояние выхода DO8 | 0…1000 (0,10%) | 481 | 0x1E1 | Чтение и запись | 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 (секунд); заводская настройка – 30 | 900 | 0x384 | Чтение и запись | UINT 16 |
Новое время | с 2000 г., секунд | 61565 61566 | 0xF07D 0xF07E | Чтение и запись | UINT 32 |
Записать новое время | 0 – не записывать 1 – записать | 61567 | 0xF07F | Чтение и запись | UINT 16 |
Время и дата (UTC) | с 2000 г., секунд | 61568 61569 | 0xF080 0xF081 | Только чтение | UINT 32 |
Часовой пояс | смещение в минутах от Гринвича | 61570 | 0xF082 | Чтение и запись | UINT 16 |
MAC адрес | — | 61696 | 0xF100 | Только чтение | UINT 48 |
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 |
Текущий 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 |
Примечание *Только для МК210-311 |
Коды ошибок для протокола 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 | DI | MASK | Битовая маска дискретных входов | Целочисленный |
GET | DI1–DI6 | COUNTER | Значение счетчика | Целочисленный | ||
SET | DO | MASK | Битовая маска дискретных выходов | Целочисленный | ||
GET | DO | STATE | Битовая маска дискретных выходов | Целочисленный | ||
GET | DO | DIAGNOSTICS | Битовая маска диагностики дискретных выходов* | Целочисленный | ||
Примечание * Только для
МК210-311 |
Пример
Работа по протоколу SNMP
Протокол основан на архитектуре «Клиент/Сервер», при этом в терминологии протокола клиенты называются менеджерами, а серверы – агентами.
Менеджеры могут производить чтение (GET) и запись (SET) параметров агентов. Агенты могут отправлять менеджерам уведомления (трапы) – например, о переходе оборудования в аварийное состояние.
Каждый параметр агента имеет уникальный идентификатор (OID), представляющий собой последовательность цифр, разделенных точками. Для упрощения настройки обмена производители устройств-агентов обычно предоставляют MIB-файлы, которые включают в себя список параметров прибора с их названиями и идентификаторами. Эти файлы могут быть импортированы в SNMP-менеджер.
Ограничение обмена данными при работе с облачным сервисом
Облачный сервис OwenCloud является надежным хранилищем данных, обмен информации с которым шифруется модулем. Можно ограничить доступ и обмен данными с облачным сервисом в ПО OWEN Configurator.
По умолчанию подключение модуля к облачному сервису запрещено.
Для того, чтобы разрешить подключение, следует:
- Установить пароль для доступа к прибору.
- Задать значение Вкл. в параметре Подключение к OwenCloud (рисунок).
Если доступ к модулю через облачный сервис разрешен, то можно настроить следующие ограничения доступа (рисунок):
- Разрешение конфигурирования — доступ к конфигурационным параметрам модуля;
- Управление и запись значений — чтение и запись значений выходов модуля;
- Доступ к регистрам Modbus — чтение и/или запись значений регистров.
Режимы работы входов типа «сухой контакт»
Группа входов DI1–DI6 модуля выполняет определение логического уровня.
Для каждого входа задействован счетчик импульсов, поступающих на вход.
Параметры счетчика импульсов
Параметр | Значение |
---|---|
Разрядность | 32 бит |
Максимальная частота входного сигнала | 400 Гц |
Подавление дребезга | Вкл. / Выкл. Настраивается в ПО OWEN Configurator |
Время подавления дребезга | 25 мс (не настраивается) |
Если счетчик переполнился, то соответствующий регистр обнуляется автоматически. Последовательность действий для принудительного обнуления приведена, см. раздел
Значения состояния дискретных входов хранятся в виде битовой маски и считываются из соответствующего регистра.
Режимы работы дискретных выходов
Каждый дискретный выход может работать в одном из следующих режимов:
- переключение логического сигнала;
- генерация ШИМ сигнала.
Для выбора режима и изменения параметров выхода следует записать значения в соответствующие Modbus-регистры.
Безопасное состояние выходных элементов
Для каждого выхода возможна установка безопасного состояния.
Выход переходит в безопасное состояние, если в течение времени тайм-аута отсутствуют команды от Мастера сети. На выходе модуля устанавливается значение параметра Безопасное состояние в процентах (от 0 до 100 %).
Тайм-аут перехода в безопасное состояние задается пользователем. Модуль при включении перейдет в состояние, которое было установлено последним до выключения, и будет находиться в нем до получения новой команды от Мастера сети. Для отключения функции перехода в безопасное состояние следует установить параметр Тайм-аут перехода в безопасное состояние равным 0.
Если Мастером сети является только облачный сервис OwenCloud, необходимо отключить Безопасное состояние для выходов. Для отключения безопасного состояния следует задать значение параметра Тайм-аут перехода в безопасное состояние равным 0.
Контроль обрыва нагрузки
К модулю МК210-311 можно подключать дополнительную цепь для контроля подключения нагрузки. Прибор контролирует состояние выходов с помощью дополнительного резистора.
Для контроля нагрузки следует включить диагностику выхода в ПО OWEN Configurator. После включения диагностики выхода в параметре «Состояние диагностики реле и обрыва нагрузки» можно отследить состояние выхода. Прибор определяет состояние выхода по напряжению на резисторе:
- Если при разомкнутых контактах реле (реле выключено), присутствует ток, проходящий через резистор — выход работает нормально. Если падения напряжения нет и произошел обрыв нагрузки или спекание контактов реле, фиксируется авария.
- Если при замкнутых контактах реле (реле включено), ток через резистор отсутствует — выход работает нормально. Если при замкнутых контактах реле ток присутствует и произошло повреждение реле или контактов, фиксируется авария.
Контроль аварии включается при настройке модуля.
Во время фиксирования аварии загорается красный светодиод состояния выхода.
Состояние выходов записывается в регистр состояния выходов.
Схема контроля обрыва нагрузки приведена на рисунке.
Схема работает при следующих параметрах нагрузки:
напряжение питания не менее 18 В постоянного тока при сопротивлении не более 10 кОм;
напряжение питания не менее 90 В переменного тока при сопротивлении не более 20 кОм.