Working with WB devices without a controller: различия между версиями
Brainroot (обсуждение | вклад) |
Brainroot (обсуждение | вклад) |
||
Строка 57: | Строка 57: | ||
[[Файл:Modbys poll 03-test3.png|thumb|right|Успешное соединение]] | [[Файл:Modbys poll 03-test3.png|thumb|right|Успешное соединение]] | ||
Теперь | Получим "Прямая активная энергия для фазы L1" | ||
Настроим чтение 4 регистров (значение имеет формат u64) с адреса 0x1204 (для [[WB-MAP3E_Data_Registers|map3]]) | |||
[[Файл:Modbys poll 04-energy setup.png|thumb|right|Настрйка для получения u64]] | |||
Теперь видим: | |||
[[Файл:Modbys poll 05-energy_asis.png|thumb|right|Исходные значения энергии]] | |||
Для отображения в десятичном виде - переключим формат в меню: | |||
[[Файл::Modbys poll 06-energy_format.png|thumb|right|Переключение]] | |||
И получаем | |||
[[Файл:Modbys_poll_06-energy_decimal.png|thumb|right|Десятичный вид]] | |||
В новом счетчике в младшем регистре есть ненулевое значение - оно туда записано из-за проверки на стенде. | |||
== Работа на Linux == | == Работа на Linux == |
Версия 12:52, 26 ноября 2020
Многие устройства Wiren Board могут работать независимо, без участия контроллера. Для этого требуется подать питание на соответствующие клеммы V+ и GND. Однако для настройки и опроса устройств по Modbus без контроллера потребуются дополнительные меры.
Аппаратная часть
Если Вы не планируете использовать в Вашем проекте контроллер (на пример Wiren Board 6), но настройка или опрос устройств всё же потребовались можно подключить устройства к ПК через специальный адаптер USB-RS485. Клеммы A и B устройства подключаете к соответствующим входам на адаптере, при этом питание на устройства подается с отдельного блока питания.
Работа на Windows
Для работы с Modbus на windows рекомендуем использовать утилиту Modbus Poll из комплекта Modbus Tools, либо другую программу для работы c Modbus под Windows.
Настройка порта
Подключите адаптер USB-RS485 к компьютеру. За тем нажмите ПКМ на меню "Пуск", выберите "Диспетчер устройств". Найдите тип устройств "Порты(COM и LPT)", разверните и найдите среди имеющихся устройств свой адаптер. Если драйвер не был установлен автоматически установите его вручную по инструкции от производителя. Далее нажмите ПКМ на адаптер 🠖 Свойства 🠖 Port Settings. Укажите параметры порта в соответствии с настройками Вашего оборудования. Для устройств WB по умолчанию 9600 8 n 2. Так же поставьте галку возле параметра "RS485", если такой имеется.
Modbus Poll
Modbus Poll - Платная программа с бесплатным пробным периодом 30 дней. Программа работает в многооконном режиме, то есть одновременно можно опрашивать несколько разных устройств на шине.
- Скачайте и установите программу
- Запустите
- Нажмите F3 - откроется окно настройки соединения. Выберите настройки в соответствии с Вашим оборудованием и нажмите OK (пример на скриншоте)
- Нажмите Ctrl+N для создания нового окна опроса, за тем нажмите F8 - откроется окно настройки опроса. Здесь необходимо указать modbus адрес устройства, тип опрашиваемого регистра(ов), начальный регистр и количество. За что отвечают те или иные регистры смотрите в картах регистров в документации к Вашему оборудованию. На пример Карта регистров модулей реле. После сохранения Вы увидите данные выбранных регистров в активном окне опроса.
- Если необходимо опрашивать несколько разных устройств на шине или несколько разных регистров или типов регистров одного устройства, еще раз нажмите Ctrl+N для создания нового окна. И снова нажмите F8 для настройки опроса.
- Для записи информации в регистры нажмите в меню кнопку "Functions" и выберите необходимый пункт.
На пример Если необходимо изменить modbus адрес устройства выберите "Write Single Register" (см скриншот). Введите текущий адрес устройства (параметр slave id), регистр 128 - в нем хранится modbus адрес (параметр Address), и новый modbus адрес (параметр Value). Параметр "Use Function" выберите "Write Single Register" и нажмите Send.
Modbus Poll - подключение к счетчику
Сначала - настроим соединение, как было описано выше:
Для теста считаем один holding регистр из прибора. Для этого щелкаем правой кнопкой на строчке и выбираем Read/Write Definition
Заполняем следующие поля:
- Slave Id "ХХ"
- берется с наклейки на устройстве, напечатан как "Addr: XX"
- Function "03"
- Мы хотим считать holding регистр
- Тип регистра - из таблицы в документации
- Address "110"
- Из таблицы регистров устройства. Этот - из "Common_Modbus_Registers", общих для всех устройств разработки wirenboard регистров
- Обратите внимание: Если в таблице адрес указани в шестнадцатеричном виде - нужно переключить Address mode в Hex или пересчитать адрес в десятичный.
- Quantity "1"
- Количество считываемых последовательно регистров, начиная с Address
- Address in cell
- Отображение адреса регистра в ячейке (необязательно)
Нажимаем OK Видим:
Получим "Прямая активная энергия для фазы L1" Настроим чтение 4 регистров (значение имеет формат u64) с адреса 0x1204 (для map3)
Теперь видим:
Для отображения в десятичном виде - переключим формат в меню: [[Файл::Modbys poll 06-energy_format.png|thumb|right|Переключение]] И получаем
В новом счетчике в младшем регистре есть ненулевое значение - оно туда записано из-за проверки на стенде.
Работа на Linux
Для работы под Linux достаточно установить утилиту Modbus-client и дальше работать так же как на контроллере Wiren Board.
Для этого скачайте пакет для настольных компьютеров с Linux и установите командой
apt install ./modbus-utils_1.2_amd64.deb
Так же по зависимости должен установиться пакет libmodbus. Если это не случилось установите libmodbus в ручную.
Подробнее о работе с Modbus-client тут