Я начал реализацию Modbus RTU Slave на микроконтроллере STM32G071. Я начал с кода функции Read Holding Register
. Я хочу понять, как происходит операция записи. Пожалуйста, поправьте мое понимание.
Чтение регистра временного хранения Modbus. Сообщение от ведущего (в шестнадцатеричном формате):
SlaveID Function_Code Address Highbyte AddressLowbyte QuantityHighbyte QuantityLowbyte CRCHighbyte CRCLowbyte: 01 03 00 04 00 03 07 58
Регистр временного хранения Modbus Чтение ответа Modbus RTU Slave (в шестнадцатеричном формате):
SlaveID Function_Code QuantityBytes Value1HighByte Value1LowByte Value2HighByte Value2LowByte Value3HighByte Value3LowByte CRCHighbyte CRCLowbyte: 01 03 06 12e3 45ef 63de 58 BA
Код функции регистра временного хранения - это функция чтения / записи. Как раб будет различать read and write commands
? Насколько я понимаю:
- Использование кода функции 03 Мы можем только читать аналоговые регистры.
- Для записи регистра временного хранения Мастер фактически использует
Function code 06
и Function code 16
- Но пункт №2 противоречит моему опыту. Обычно мы настраиваем регистры аналогового вывода с
Function code 3
в PLC / DCS.
Пожалуйста, помогите мне.
Наконец, запрос на CR C проверка ведомым устройством при получении команды записи :
- Должна ли ведомая проверка
CRC
получена первой перед обработкой?