|
Доку ищи в интернете по ключевым словам modbus rtu CRC16 и т.д.
в качестве верхнего уровня на PC применял Modbus OPC Server
, но у него вроде попутаны старнший и младшие байты CRC при передаче
Написал модуль для ModBus на Сях
ModBus (режим RTU, 19.2К, data 8, NoParity, порядок передачи CRC16: Lo, Hi)
как верхний уровень интерфейса RS-232
система расчитана на работу под 3мя процессорами:
адрес устройства 0x23 (35)
at90s2313 11.059MHz
at90s8515 8MHz
atMega162 8MHz
Доступны следующие команды
READ COIL STATUS - чтение логических ячеек (Output Coil)
Location 2
READ HOLDING REGISTERS - чтение регистов хранения (Output Register)
Location 1-18
*при чтении вместо реальных значений выдаются номера затребованых регистров
FORCE SINGLE COIL - изменение состояния логических ячеек
FORCE SINGLE REGISTER - запись нового значения в регистр хранения (запись одного регистра)
FORCE MULTIPLE REGISTERS - запись новых значений в регистры хранения (запись нескольких
последовательных регистров регистра) - команда будет убрана
*в программе для отладочных целей в случаее не правильного кода CRC16 возвращается
правильный код (2 байта). При приеме сообщения с перерывом может возникнуть ситуация
что вернулось 4, 6 и тд байт , что говорит о слишком большом перерыве между байтами.
в окончательном варианте протокола особеность будет убрана.
E-mail: info@telesys.ru