Tag Archives: Modbus

Вычисление CRC для Modbus RTU

Ха! Вот, удивил!

Та, не-е! Совсем не собирался никого удивлять. Просто возникла такая необходимость — написать быстренько прогу, которая посылает/принимает пакеты по Modbus. Ну, на одном предприятии случилась крупная авария, пострадало оборудование. Теперь это оборудование нужно как-то «поднимать». Что-то там работает, что — нет. В общем понадобилась тестилка, с функцией эмуляции. Ничего уже готового и проверенного, естественно, нет. Практика показывает, что в таких случаях получается быстрее состряпать что-то самому, чем лазить по Всемирной помойке в поисках годных для употребления шмоток.

Написать-то сниффер, который «вынюхивает» пролетающие в сети для RS485 пакеты — не столь трудно. Нужно только уметь работать с питоновским пакетом serial. Может быть (если я не забуду, и мне не будет лениво) я приведу ниже код сниффера. А здесь я опубликую код функции, которая подсчитывает CRC. Честно говоря, то разнообразие питоновских программ для расчёта CRC, которое имеется в этих ваших тырнетах, на меня наводит дикую тоску и печаль. Такое ощущение, что авторы тырили друг у друга код, не понимая как он работает. В общем, посмотрев эту порнографию я решил изобрести свой «велисапед».

Денег за не него требую и копирайт не ставлю — берите и пользуйтесь, кому надо! Единственное пожелание — в качестве оплаты помогите тому, кто ниже вас социально и хочет приподняться. Просто, будьте человечными по отношению к другим людям! Собственно, это всё!

Код-под-катом. Простите за каламбур!

Читать далее