Здравствуйте!
Пытаемся внедрить библиотеку OwenCommunication для организации обмена через интерфейс RS485 по протоколу MODBUS-RTU на ПЛК210.
Заметили, что при выполнении запроса чтения параметра скорость опроса зависит от количества вызовов соответствующего функционального блока запроса (MB_SerialRequest).
То есть: если вызывать MB_SerialRequest один раз за цикл ПЛК - то при цикле 5мс - частота опроса получалась 40 мс, при цикле ПЛК 10 мс - частота опроса - 80 мс.
Потом провели эксперимент (костыль): стали вызывать MB_SerialRequest несколько раз подряд в одном цикле ПЛК - и (О, чудо!) время опроса уменьшилось.
Сделали вывод: библиотека работает не оптимально, то есть появление флага завершения транзакции xDone - требует обязательно определённого количества вызовов ФБ MB_SerialRequest, независимо от того что физически ответ от SLAVE устройства был уже был получен.
Подскажите, пожалуйста, либо мы где-то ошибаемся (подскажите где?), либо можно как-нибудь оптимизировать работу библиотеки?