Продолжаем разбор.
Как правильно получить контрольную сумму, для модбас? Тренируюсь на МВА.
Скриншот 21-05-2021 174202.jpg
Думал прогнать через проверку CRC и добавить недостающие байты, но ноля не получается.
Скриншот 21-05-2021 174401.jpg
Добавил байты
Скриншот 21-05-2021 174908_2.jpg
Нет ноля.
Скриншот 21-05-2021 174939_2.jpg
Обыкновенно CRC_GEN вычисляет контрольную сумму, которая присоединеняется к оригинальному сообщению. Если теперь снова вычислить контрольную сумму сообщения вместе с присоединенной к нему контрольной суммой, то в результате получится 0.
Последний раз редактировалось Павел_Хабаровск; 21.05.2021 в 11:36.
Разобрался с получением КС в десятичном формате. Как перевести в 16#?
218 перевожу в HEX получается DA а в запросе должно 16#8B
Скриншот 21-05-2021 190844_3.jpg
а как же здравый смысл? owen.png
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Да, такие же цифры. Но в КС младший байт из примера обозначен 8B.
Вот и думаю как получили.
Ладно там в примере запрос в шестнадцатеричном формате нужен для смещения точки. Т.к. предстоит считывать дискреты, то это можно опустить.
А здравый смысл преобладает в спокойном состоянии.
Затяжные сюрпризы с протоколом производителя, без опыта организации связки, да в командировке заставляют размозжить мозги. Состояние полёта в на орбиту.
какой пример?
Начните с чего нибудь внятного, например https://ru.wikipedia.org/wiki/Modbus раздел примеры, даны три различных посылки с ними и разбирайтесь
ЗЫ У меня вот всё сходится во вложении
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран