Показано с 1 по 10 из 47

Тема: Modbus RTU CRC16 полином A001h

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    В любом случае, благодарю.
    Зачем тебе считать КС если modbus.lib это сама делает. Тебе надо убедиться, что твое устройство работает по протоколу Modbus RTU.
    Согласен про modbus.lib. А вот чтобы убедится что устройство работает надо запрос сделать с КС (верно?)(у меня их два на столе).
    Capzap, товарищ! (Обратился бы по имени, так всё-таки правильней). Я понял ваш посыл - добиваться своим умом и трудом. Каждый должен быть на своём месте и оттачивать мастерство. Честно, того же мнения. В этом и есть смысл развития...
    Эх, сейчас бы машину декомпрессии времени, разобрался бы детальней с задачей.
    Ну да ладно. Ухожу на повторный круг образования. По результату сообщу.

  2. #2

    По умолчанию

    Цитата Сообщение от Павел_Хабаровск Посмотреть сообщение
    В любом случае, благодарю.

    Согласен про modbus.lib. А вот чтобы убедится что устройство работает надо запрос сделать с КС (верно?)(у меня их два на столе).
    Capzap, товарищ! (Обратился бы по имени, так всё-таки правильней). Я понял ваш посыл - добиваться своим умом и трудом. Каждый должен быть на своём месте и оттачивать мастерство. Честно, того же мнения. В этом и есть смысл развития...
    Эх, сейчас бы машину декомпрессии времени, разобрался бы детальней с задачей.
    Ну да ладно. Ухожу на повторный круг образования. По результату сообщу.
    modbus.lib тебе не нужна. Надо пользоваться SysLibCom и самому считать и отправлять КС. При приеме пакета-отклика то же надо будет считать КС.
    Последний раз редактировалось Newcomer; 20.05.2021 в 14:16.

  3. #3

    По умолчанию

    Продолжаем разбор.
    Как правильно получить контрольную сумму, для модбас? Тренируюсь на МВА.
    Скриншот 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.

  4. #4
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,254

    По умолчанию

    Цитата Сообщение от Павел_Хабаровск Посмотреть сообщение
    Продолжаем разбор.
    Как правильно получить контрольную сумму, для модбас? Тренируюсь на МВА.
    Вложение 55219

    Думал прогнать через проверку CRC и добавить недостающие байты, но ноля не получается.
    Вложение 55220

    Добавил байты
    Вложение 55221

    Нет ноля.
    Вложение 55222
    ссылку можно на документ, где написано что контрольная сумма должна быть равна нулю
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  5. #5

    По умолчанию

    Разобрался с получением КС в десятичном формате. Как перевести в 16#?
    218 перевожу в HEX получается DA а в запросе должно 16#8B
    Скриншот 21-05-2021 190844_3.jpg

  6. #6
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,254

    По умолчанию

    Цитата Сообщение от Павел_Хабаровск Посмотреть сообщение
    Разобрался с получением КС в десятичном формате. Как перевести в 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

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  7. #7

    По умолчанию

    Да, такие же цифры. Но в КС младший байт из примера обозначен 8B.
    Вот и думаю как получили.
    Ладно там в примере запрос в шестнадцатеричном формате нужен для смещения точки. Т.к. предстоит считывать дискреты, то это можно опустить.
    А здравый смысл преобладает в спокойном состоянии.
    Затяжные сюрпризы с протоколом производителя, без опыта организации связки, да в командировке заставляют размозжить мозги. Состояние полёта в на орбиту.

  8. #8
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,254

    По умолчанию

    Цитата Сообщение от Павел_Хабаровск Посмотреть сообщение
    Да, такие же цифры. Но в КС младший байт из примера обозначен 8B.
    Вот и думаю как получили.
    Ладно там в примере запрос в шестнадцатеричном формате нужен для смещения точки. Т.к. предстоит считывать дискреты, то это можно опустить.
    А здравый смысл преобладает в спокойном состоянии.
    Затяжные сюрпризы с протоколом производителя, без опыта организации связки, да в командировке заставляют размозжить мозги. Состояние полёта в на орбиту.
    какой пример?
    Начните с чего нибудь внятного, например https://ru.wikipedia.org/wiki/Modbus раздел примеры, даны три различных посылки с ними и разбирайтесь
    ЗЫ У меня вот всё сходится во вложении
    Вложения Вложения
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •