Как стать автором
Обновить

ModBus Slave RTU/ASCII без смс и регистрации. Версия 3

Время на прочтение 2 мин
Количество просмотров 3.6K
image

Ранее на Хабре была опубликована статья «ModBus Slave RTU/ASCII без смс и регистрации», посвященная реализации ModBus Slave RTU/ASCII устройств. В комментариях к статье было высказано множество замечаний, в том числе и несколько весьма дельных. В данной публикации приведена новая версия ModBus Slave RTU/ASCII с учетом этих замечаний.

Новые версии файлов:

modbus.c
modbus.h
ModBus2Prg.c

Настоечные константы полностью аналогичны предыдущей версии. Основные отличии от предыдущей версии:

  • Добавлен расчет CRC по таблице. Включается опцией ModBusUseTableCRC. Расчет CRC таблице не только более эффективен по скорости, но и гораздо компактнее по размеру, при условии использовании высокой оптимизации компилятора по скорости. При оптимизации компилятора по размеру, целесообразней не использовать табличный метод.
  • Введена обработка логических ошибок протокола Modbus. Включается опцией ModBusUseErrMes. Поддерживаются сообщения об ошибках ILLEGAL_FUNCTION, ILLEGAL_DATA_ADDRESS, ILLEGAL_DATA_VALUE, согласно спецификации протокола V1.1b3.
  • Добавлена функция протокола 22-запись регистра по маске. Включается опцией ModBusUseFunc22. Многие Modbus Master устройства опционально поддерживают эту функцию, ее использование позволяет оптимизировать трафик при использовании регистров чтения/записи (4Х) как битовых переменных.
  • Проведена оптимизация кода, исключены дублирующие действия, уменьшено использование статических переменных и т.п.
  • Исправлены ошибки в комментариях.

Мои коллеги, зная что я занимаюсь разработкой промышленных датчиков, просят меня поделится исходными кодами Modbus интерфейса. Я решил «делится кодом» в автоматическом режиме. Надеюсь данная библиотека будет полезна инженерам разрабатывающим ModBus устройства.
Теги:
Хабы:
+8
Комментарии 10
Комментарии Комментарии 10

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн
PG Bootcamp 2024
Дата 16 апреля
Время 09:30 – 21:00
Место
Минск Онлайн
EvaConf 2024
Дата 16 апреля
Время 11:00 – 16:00
Место
Москва Онлайн