5813
правок
Kilpio (обсуждение | вклад) |
Kilpio (обсуждение | вклад) |
||
Строка 39: | Строка 39: | ||
Записью в соответствующие регистры изменяется четность и количество стоп-битов. | Записью в соответствующие регистры изменяется четность и количество стоп-битов. | ||
При этом возникает парадоксальная ситуация: мы не можем узнать значение скорости, если мы заранее не укажем её значение при обращении к устройству! Поэтому стоит внимательно относиться к тому, какие коммуникационные настройки вы выбираете. | При этом возникает парадоксальная ситуация: мы не можем узнать значение скорости, если мы заранее не укажем её значение при обращении к устройству! Поэтому стоит внимательно относиться к тому, какие коммуникационные настройки вы выбираете. В случае, если все параметры неизвестны, найти их можно только перебором: | ||
<code> | |||
#/bin/bash | |||
for l in {1,2}; | |||
do | |||
for k in {none,odd,even}; | |||
do | |||
for j in {1200,2400,4800,9600,19200,38400,57600,115200}; | |||
do | |||
for i in {1..247}; do | |||
modbus_client -mrtu /dev/ttyAPP1 --debug -o 300 -a$i -t3 -r0x80 -b$j -s$l -p$k | |||
done 2>/dev/null | grep Data: | sed -e 's/ //g' -e 's/\n//' | xargs -I {} printf "Speed:$j\tStop bits:$l\tParity:$k\tModbus address:{}" | grep Data: | sed -e 's/Data://' | |||
done | |||
done | |||
done | |||
</code> | |||
Для стоп-битов, скорее всего, вы получите два значения: 1 и 2. Уточнить настройку можно считав значение из регистра 112 с уже известным адресом, скоростью, четностью. |
правок