Настройки параметров обмена данными по RS-485 для устройств Wirenboard
Регистры параметров обмена данными по RS-485
В заводской конфигурации все устройства Wiren Board поставляются со следующими настройками RS-485: 9600 бит/с, бит чётности отсутствует (none), количество стоп-битов — 2. Однако во прошивках всех современных устройств Wiren Board поддерживаются дополнительные регистры настройки параметров обмена данными по RS-485:
Регистр / адрес | Тип | Чтение/запись | Значение по умолчанию | Формат | Назначение |
---|---|---|---|---|---|
110 | holding | RW | 96 | baud rate / 100 | скорость порта RS-485, делённая на 100. Допустимые скорости: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 |
111 | holding | RW | 0 | настройка бита чётности порта RS-485. Допустимые значения: 0 - нет бита чётности (none), 1 - нечётный (odd), 2 - чётный (even) | |
112 | holding | RW | 2 | количество стоп-битов порта RS-485. Допустимые значения: 1, 2 |
Изменение параметров обмена данными
Чтобы иметь возможность обратиться к устройству, поддерживающем протокол modbus RTU по шине RS-485, необходимо знать его modbus-адрес, а так же установленные на устройстве скорость обмена данными, четность, количество стоп-битов.
Узнать текущие настройки параметров обмена данными, можно, прочитав значение указанных выше регистров, например:
(echo -n '100 \* '; echo -e `modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyAPP1 -a0x01 -t0x03 -r110 | grep Data | sed -e 's/Data://' -e 's/s//g'` | xargs printf "%d") | xargs expr
Подробнее смотрите описание команды modbus_client.
Записать новое значение можно с помощью следующей команды:
modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyAPP1 -a0x01 -t0x06 -r110 1152
Теперь устройство передает и принимает данные на скорости 115200 бит/с.
Записью в соответствующие регистры изменяется четность и количество стоп-битов.
При этом возникает парадоксальная ситуация: мы не можем узнать значение скорости, если мы заранее не укажем её значение при обращении к устройству! Поэтому стоит внимательно относиться к тому, какие коммуникационные настройки вы выбираете.