Добрый вечер, уважаемые форумчане.
Разобрал библиотеку Modbus.lib.
Хочу поделиться важными замечаниями.
1. Для проведения опроса требуется минимум 3 цикла обращения к соответствующему блоку.
На 1-м цикле: блок формирует посылку, отсылает ее в порт;
На 2-м цикле: блок занимается чтением из порта (циклов чтения может быть много);
На 3-м цикле: завершается опрос.
Данные выводы следуют из анализа ФБ MB_UNI_IO (см. рисунок MB_UNI_IO).
Почему я обращаю на это внимание?
Потому что, если ваша PLC_PRG выполняется, например, 15 мс (у меня есть реальный проект, где такое время выполнения на ПЛК110 старой модификации), то на опрос даже 1 регистра на любой скорости сети!!! вы будете тратить 30 мс.
Для решения данной проблемы необходимо вынести вызов ФБ Modbusа в отдельную задачу, которую вызывать чаще чем основную PLC_PRG (см. этот пост).
2. При использовании блока MB_WR_REGS (запись регистров хранения), в том случае, если блок вернул ошибку, то перед повторным вызовом данного блока необходимо заново формировать буфер посылки. В противном случае вы пошлете не то, что ожидаете, так как MB_WR_REG использует переданный ему буфер для формирования полной посылки Modbus.




Ответить с цитированием