Насколько повреждена контрольная сумма по TCP / IP - PullRequest
1 голос
/ 23 мая 2019

Я подключаю свое ведомое устройство через TCP / IP, все выглядит нормально с помощью программного обеспечения Wireshark. Я могу подтвердить, что контрольная сумма CRC всегда верна «хорошо», но мне интересно, как я могу повредить контрольную сумму CRC, чтобы я мог видеть какконтрольная сумма «Неверно».Любое предложение, как я могу это сделать, может быть, код Python или любым другим способом, если это возможно.

Спасибо всем, Tariq

Ответы [ 2 ]

1 голос
/ 23 мая 2019

Я думаю, что вы используете библиотеку, которая вычисляет CRC.Вы можете сформировать пакет Modbus без него, если хотите смоделировать плохое условие CRC

0 голосов
/ 23 мая 2019

Прежде всего, имейте в виду, что Modbus TCP не содержит CRC, контроль ошибок обрабатывается через соответствующий уровень самого протокола TCP.Например, смотрите этот пост: Можете ли вы сохранить CRC в сообщении Modbus TCP?

Если вы хотите поиграть с ошибками Modbus RTU CRC, вы можете взглянуть на MinimalModbus (Python) иего модульные тесты MiniMalModbus Unit Tests

Если вы предпочитаете что-то более простое, вы можете взглянуть на ModbusPoll, где вы можете определить подчиненное устройство и симулировать ошибки CRC (только для Modbus RTU, ясчитать).Существует 30-дневная пробная версия.

Насколько я знаю, то, что вы хотите сделать, невозможно из коробки с другими библиотеками, которые я использую: pymodbus и libmodbus, но это не должно быть слишком трудным для написаниячто-то похожее на тестовый модуль MinimalModbus самостоятельно.

...