Добрый день...
В процессе анализа работы OPC сервера с Modbus устройствами возникли некоторые вопросы. Подключали ОВЕНовский модуль МУ-110-16к, а также собственную разработку, некий контроллер протокола Modbus RTU с доступными адресами чтения/записи.
Выяснилась следующая вещь - не зависимо от того, сколь малое значение можно ставить в поле периода опроса устройства OPC сервера, временно интервал между парами Tx Rx не может быть меньше интервала в примерно 252 мс.
То есть выглядит ситуация так в окне запросов (если смотреть снизу вверх, так как сообщения появляются в окне):
...
Rx .....
Tx .....
|
примерно 252 мс
|
Rx .....
Tx .....
|
примерно 252 мс
|
Rx .....
Tx .....
...
Интервал между Modbus запросом и ответом от подчиненного устройства колебался в пределах 8-16 мс в зависимости от устройства (наш контроллер был быстрее, модуль МВ медленнее, но в данном случае не суть важно).
Также этот период имели возможность наблюдать и на осциллографе, подключенным ко входам или соответсвующим контактам подчиненых устройств. (в этом случае был написан небольшой скрипт, циклически меняющий состояния значений регистров и с записью через функцию modbus.WriteHoldingRegistersAs...).
Собственно сам вопрос: это реально ограничение временных интервалов функционирования самой программы (OPC сервер) или еще что то? Для наших целей хотелось бы иметь эти времена как минимум в 2 раза меньшие, как максимум - в 4.
Версия OPC сервера 2.0.0.10.