Минимальный код функции шины 0x46 и подфункция 06 - PullRequest
0 голосов
/ 11 февраля 2019

Я общаюсь с датчиком излучения, используя minimalmodbus в Python 3.x.Я могу зафиксировать сообщение и прочитать регистры датчика.Скорость передачи данных датчика составляет 9600, но я хочу изменить его на 38400.

В таблице данных датчика указано, что это можно сделать с помощью кода функции 0x46 и подфункции 06.

таблица данных

Я обнаружил, что minimalmodbus использует только функциональные коды 1,2,3,4,5,6,15 и 16, и я не нашел никакой возможности использовать subfunction.

Можно ли мне изменить скорость передачи или мне нужно изменить minimalmodbus для другой библиотеки как pyModbus?

1 Ответ

0 голосов
/ 12 февраля 2019

Глядя на документацию Minimalmodbus, вы можете «расширить» ее для обработки большего количества кодов функций с помощью функции _performCommand ().В документации сказано, что она позаботится о генерации CRC.

Ссылка: https://minimalmodbus.readthedocs.io/en/master/develop.html#extending-minimalmodbus

Я провел быстрый поиск, и похоже, что вы используете датчик Tamb485.На основании этой документации, чтобы установить скорость BAUD на 38400 и биты четности / стоп (оба установлены одновременно) на 8E1 на устройстве, вы должны сделать:

_performCommand(0x46, '0x05,0x04,0x02')

0x46 - function code

0x05 - sub function code
0x04 - baud rate 38400
0x02 - parity/stop bits 8E1
...