Выходные дни:
29,30 апреля и 1 мая;
6,7,8,9 мая.
RS485 и Modbus
- Modbus: опрос устройства и разметка данных
Подключение и взаимодействие с устройством
- Общая настройка
- Wirenboard
- MasterSCADA
Самостоятельное создание конфигураций
- Параметры подключения
- Определение адресации
- Работа с несколькими устройствами
Standard RS485 поддерживает опрос и управление сторонними устройствами и приложениями через протокол Modbus.
RS485 (теперь EIA/TIA-485) является стандартом физического уровня и использует одну витую пару проводов для передачи логического сигнала. По стандарту RS485 в одной сети может находиться до 32 устройств, при этом только одно устройство может быть активным в любой момент времени. RS485 также описывает эффективную длину кабеля и соответствующую ей скорость передачи данных.
Modbus — это коммуникационный протокол, описывающий структуру данных, передаваемых, в данном случае, через RS485. Протокол Modbus широко распространен и применяется как в промышленной, так и в бытовой среде огромным перечнем устройств. В связи с этим, инструменты для мониторинга и контроля этих устройств тоже поддерживают работу с протоколом Modbus.
Обмен данными по протоколу Modbus происходит по принципу “Ведущий–ведомый” (Master–Slave). Ведущее устройство — например, компьютер — отправляет запрос на чтение или запись заранее известных адресов памяти ведомого устройства (Standard RS485), после чего ведомое устройство отправляет ответ. Ведомое устройство не может самостоятельно сообщать ведущему о своем состоянии.
Протокол Modbus поддерживает групповые чтение и запись, что позволяет сократить количество запросов и увеличить скорость получения ответа от ведомого устройства. На устройстве Standard RS485 групповое чтение регистров доступно для следующих категорий данных:
- Статус беспроводного датчика: зарегистрирован/нет, протечка, низкий заряд батареи, потеря сигнала;
- Уровень сигнала беспроводного датчика;
- Статус беспроводного датчика и уровень сигнала в одном регистре (требует дополнительного разделения на два значения со стороны ведущего);
- Аварийный флаг: отображает только сигнал протечки, в т.ч. для проводных датчиков;
Standard RS485 можно подключить к компьютеру через USB порт с помощью переходного устройства RS485–USB.
Некоторые устройства, например, контроллеры Wiren Board, имеют клеммы для подключения устройств через RS485 и могут взаимодействовать с компьютером через USB, локальную сеть или интернет.
При подключении к ПК, для того, чтобы эффективно опрашивать Standard и отображать данные в понятной форме, необходимо дополнительное программное обеспечение. В промышленной среде это обычно системы автоматизации SCADA, такие как MasterSCADA и RapidSCADA. В бытовой среде это могут быть системы умного дома, например MajorDoMo.
Для систем, запускаемых на ОС Windows для подключаемого через USB устройства, необходимо указать последовательный порт, к которому подключено устройство. Узнать номер порта на ОС Windows можно через Диспетчер устройств. Нажмите правой кнопкой мыши по кнопке “Пуск” в левом нижнем углу экрана и в появившемся списке выберите “Диспетчер устройств”. В появившемся окне разверните категорию “Порты (COM и LPT)”.
Порт “Последовательный порт (COM1)” всегда будет присутствовать в списке и никогда не будет являться нужным вам портом.
Внимание: не все USB-порты на вашем компьютере могут работать корректно. Если устройство не отображается в Диспетчере устройств или опрос устройства не работает корректно, попробуйте подключить устройство к другому порту.
Тестировалось на Wiren Board 7. Поместить в /etc/wb-mqtt-serial.conf.d/templates/
На данный момент доступны две версии конфигураций для MasterSCADA. Обе отображают состояние крана, статус протечки, режим уборки и позволяют отключать аварию и открывать/закрывать кран.
В зависимости от выбранной вами версии конфигурации, скорость обновления значений в панели SCADA может варьироваться. Обновление значений НЕ влияет на скорость реагирования устройства на сигналы протечки от собственных датчиков, но сигналы, отправляемые на устройство через SCADA/Modbus, могут приходить с задержкой.
Используйте конфигурацию с меньшим функционалом для быстрого реагирования устройства.
Данные конфигурации также рассчитаны на одновременное использование приложения Smart Life и опрос по Modbus, и поэтому имеют период опроса 255мс. Вы можете снизить период опроса устройства по Modbus в настройках соединения.
Снижение периода опроса ускорит работу устройства по Modbus, но может привести к тому, что устройство будет не реагировать на команды приложения.
Минимальная конфигурация для быстрого реагирования.
Отображение информации о проводных и беспроводных датчиках с отдельными флагами для статуса протечки.
Если вы не нашли конфигурацию для используемого вами устройства или приложения, вы можете использовать карту регистров для написания собственной конфигурации.
Параметры подключения Modbus могут варьироваться от устройства к устройству. Ниже приведены параметры для Standard RS485:
Адрес Modbus: 30 (0x1E)
Скорость: 9600 бит/с
Биты данных: 8 бит
Стоп-биты: 1 бит
Контроль четности: нет
Задержка перед ответом: 255 мс.
У регистров Modbus есть физический и логический адрес, и разные приложения могут опрашивать разную категорию адресов. В карте регистров указаны физические адреса регистров; логические адреса будут иметь значение на 1 больше, чем физические.
Используйте регистр “3” (режим уборки, Coil) в качестве тестового регистра. Если ваше приложение сообщает об ошибке опроса (неправильный адрес, неправильный тип данных и т.д.) несмотря на правильную настройку остальных параметров опроса, попробуйте указать значение адреса “4”.
Опрос регистра “3” (режим уборки) с помощью Chipkin Modbus Scanner. Обратите внимание, что указан логический адрес регистра, “4”.
Некоторые системы и приложения открыто показывают код запроса в журнале событий. Вы можете использовать утилиты для конвертации этих запросов в более понятную форму, например, Modbus Parser от разработчиков RapidSCADA.
Детальное описание команды опроса регистра “3”.
Каждое устройство Modbus имеет свой собственный Modbus–адрес для работы в одной сети с множеством других устройств. Этот адрес, однако, не является уникальным для каждого устройства, что может создавать проблемы при одинаковых адресах у двух и более устройств.
Каждый Standard RS485 будет иметь заводской адрес Modbus “30” (“0x1E”) по умолчанию.
Если вам необходимо подключить несколько устройств Standard RS485 к одному контроллеру или ПК, мы рекомендуем задать каждому устройству свой уникальный адрес. Одним из инструментов, позволяющих сделать это, является Chipkin Modbus Scanner:
1. Нажмите правую кнопку мыши в левом поле приложения. Нажмите “Add Connection”
2. В появившемся окне укажите параметры подключения к порту. Нажмите “Add Serial Connection”.
3. Нажмите правой кнопкой мыши по появившейся в левом поле строке и нажмите “Add Device”.
4. В появившемся окне укажите адрес Modbus для Standard RS485, по умолчанию “30”.
6. В поле “Task Type” укажите вариант “Preset Single Register”, в поле “Offset” — “129”, в поле “Value” — новый Modbus–адрес устройства. Нажмите “ОК”.
7. Дважды нажмите по появившейся строке задачи. Успешное выполнение задачи будет отображено в логе внизу: “Write task has completed successfully”.
Для проверки вы можете добавить адрес “4” (режим уборки). Нажмите правой кнопкой мыши по строке устройства, нажмите “Add Task”. Укажите следующие значения в полях и нажмите “Add Request”.
Теперь при двойном нажатии на появившуюся строку задачи в списке слева результаты опроса устройства должны отобразиться в списке справа.