Очень, на мой взгляд замудренный подход к простой, казалось бы — процедуре. Производители и прочие АСУшники так и не договорились о строгости порядка байтов и регистров при использовании Modbus, и получилось как всегда — кто во что горазд. Но разработчику данные читать надо, причем читать корректно. Попробую помочь ему.
Та самая шпаргалка с форума:
"Файл Modbus.set в релизе 6.10.2 не работает, начиная с релиза 6.09.2.
Команды форматирования в файле *.cnf работают.
MDB_FRMT_FLOAT=(номер COM-порта),(dec). Dec может принимать значения 0,…3
При этом поддерживаемый порядок байтов в зависимости от числа DEC
0 – 3-2-1-0 (ModSim32-Float(Swapped))
1 – 1-0-3-2 (данный порядок следования байтов соответствует стандарту и ModSim32-FloatingPoint и устанавливается по умолчанию)
2 – 0 – 1 – 2 – 3 (данный порядок следования байтов соответствует INTEL)
3 – 2 – 3 – 0 – 1
Например, чтобы выбрать формат "3-2-1-0" для COM1, надо задать
MDB_FRMT_FLOAT=0,0"
Канал автора:
Наш Telegram канал: https://t.me/SlavaSlavinASU
Сказ о том как я эти регистры вертел на … ))
Очень, на мой взгляд замудренный подход к простой, казалось бы — процедуре. Производители и прочие АСУшники так и не договорились о строгости порядка байтов и регистров при использовании Modbus, и получилось как всегда — кто во что горазд. Но разработчику данные читать надо, причем читать корректно. Попробую помочь ему.
Та самая шпаргалка с форума:
"Файл Modbus.set в релизе 6.10.2 не работает, начиная с релиза 6.09.2.
Команды форматирования в файле *.cnf работают.
MDB_FRMT_FLOAT=(номер COM-порта),(dec). Dec может принимать значения 0,…3
При этом поддерживаемый порядок байтов в зависимости от числа DEC
0 – 3-2-1-0 (ModSim32-Float(Swapped))
1 – 1-0-3-2 (данный порядок следования байтов соответствует стандарту и ModSim32-FloatingPoint и устанавливается по умолчанию)
2 – 0 – 1 – 2 – 3 (данный порядок следования байтов соответствует INTEL)
3 – 2 – 3 – 0 – 1
Например, ч