Бибилиотека MODBUS для STM32
Текущая версия: 0.1a
Режим работы
На данный момент библиотека умеет работать только в режиме ведущего устройства (мастера). Но предварительно закладывается функционал работы в режиме подчиненного устройства (слейв).
Основные функции
- ModbusInit - функция инициализации структуры для работы протокола;
- ModbusStart - функция запуска;
- ModbusSendQuery - функция отправки запроса в шину;
- ModbusPoll - функция ожидания ответа (вызывать в цикле);
- ModbusMasterTask - функция реализации задачи опроса устрйств, совмещает в себе функции отправки запроса и приема. При приеме вызывается пользовательская функция типа receiveCallback(uint8_t) в которую в качестве параметра передается результат работы функции ModbusPoll.
Т.к. протокол Modbus является протоколом постоянного обмена, то для его правильного использования надо успевать опрашивать устройства до окончания времени ожидания ими приема. Многие устройства не получив запроса от мастера переходят в режим ошибки и перестают реагировать на запросы от мастера. Исходя из вышенаписанного, таймаут ождания ответа мастером от подчиненного устройства должен быть таким, чтобы за время ожидания запросов слейвом мастер успевал опросить все устройства покдлюченных к шине Modbus.
T(ожидания мастера) = Tmin(ожидания запроса слейвом) / кол-во устройств на шине.
Иначе наступит момент, когда все устройства не успеют опроситься за время ожидания запроса подчиненным устрйством с минимальным временем ожидания.