PDA

Просмотр полной версии : Контрольные суммы: протоколы ОВЕН и Modbus



ks-app
16.11.2009, 08:01
Помогите разобраться с вычислением контрольных сумм. В техдокументации на протокол ОВЕН есть пример на Си, но у меня он почему-то не работает. Возможно, где-то опечатка или я не во всем разобрался.

Пример сообщения по протоколу ОВЕН:
#GOGJPHGNMKGGGGNHVS

Если я правильно понял - последние 4 символа - это контрольные суммы. Но у меня при вычислении по указанному в документации алгоритму получаются другие значения.

А вот строка Modbus ASCII:
:00100000000204003200199F

Функция № 16. Здесь почему то для контрольных сумм остался только один байт (число 9F).

Хотелось бы увидеть рабочий пример на любом языке высокого уровня.

Спасибо за внимание.

ks-app
15.12.2009, 06:36
Поскольку никто не отозвался, отвечу сам себе)))
С Modbus я немного погорячился - надо было документацию внимательно читать ))))
В Modbus RTU контрольные суммы (CRC) - два байта, а в Modbus ASCII контрольные суммы (LRC) - один байт.

Дмитрий Егоренков
15.12.2009, 11:42
осталось внимательно почитать описание протокола овен и пример на языке высокого уровня C -- http://www.owen.ru/forum/showpost.php?p=3899&postcount=2.

в протоколе ОВЕН контрольная сумма расчитывается до упаковки в ascii.

Ярослав123
16.12.2009, 16:32
Добрый день.
Помогите понять причину.
Пытаюсь работать с приборами фирмы ОВЕН ТРМ201
Адрес прибора 2, чтение первых 5 регистров.
Протокол ModBus ASCII
Посылка к прибору
BIN- : 02 03 0000 0005 F6 0D 0A
ASCII- 3A 3032 3033 30303030 30303035 4636 0D 0A
Приходит ответ
ASCII- BA B0 B2 B0 B3 B0 C1 B0 B0 B0 B0 B0 B1 B3 B6 B0 B1 B2 C3 B0 B0 B0 B0 B0 B0 B0 B0 B8 C4 8D 8A
Конечно прослеживается видимость ответа, но формат не ясен.