16 233
правки
м (→Подготовка к работе: Заменил текст на включение) |
м (→Чтение сигнатуры устройства: Заменил команду чтения сигнатуры устройства) |
||
Строка 196: | Строка 196: | ||
Здесь не указано значение, которое нужно записать в регистр адреса, поэтому устройство получит неизвестное значение. | Здесь не указано значение, которое нужно записать в регистр адреса, поэтому устройство получит неизвестное значение. | ||
===Чтение | ===Чтение сигнатуру устройства=== | ||
Прочтем регистры релейного модуля WB-MR14 с адресом <code>0x01</code>, содержащие сигнатуру (модель) устройства: WBMR14. Известно, что сигнатура хранится по адресу 200 и занимает 6 регистров. | Прочтем регистры релейного модуля WB-MR14 с адресом <code>0x01</code>, содержащие сигнатуру (модель) устройства: WBMR14. Известно, что сигнатура хранится по адресу 200 и занимает 6 регистров. | ||
Строка 215: | Строка 215: | ||
В ответе мы получили шесть 16-битных значений, в каждом из которых содержится код одного ASCII-символа. Преобразуем их, заменив начальные <code>0x00</code> на <code>/x</code> и удалив пробелы, к виду <code>\x57</code> и т.д., который понятен команде <code>echo</code>, и выведем на экран получившееся: | В ответе мы получили шесть 16-битных значений, в каждом из которых содержится код одного ASCII-символа. Преобразуем их, заменив начальные <code>0x00</code> на <code>/x</code> и удалив пробелы, к виду <code>\x57</code> и т.д., который понятен команде <code>echo</code>, и выведем на экран получившееся: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
echo | echo -e $(modbus_client -mrtu -pnone -s2 /dev/ttyRS485-1 -a1 -t0x03 -r200 -c 6 | grep Data | sed -e 's/.*Data://' -e 's/ 0x00/\\x/g') | ||
-a1 -t0x03 -r200 -c 6 | | |||
grep Data | sed -e 's/ | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Ответ: | Ответ: |