Пробуем возможности демонстрационного ОРС сервера.
Возник такой вопрос: установка интервала времени получения данных никак не влияет на частоту получение данных. Отслеживаю по журналу событий. Показывает частоту обновлений примерно раз в 5 сек.
В чем тут дело?
Изменения в администраторе сохраняю, сервер перезапускаю. Версия 8.0.0.7452u.
Разобрался немного. В журнал и связанное поле пишет с интервалом, указанным в параметрах службы. Только непонятно, что настраивает интервал времени получения данных в самом теге?
Интервал времени, с которым служба ZuluOPC записывает полученные данные в базы данных слоев задается в администраторе на вкладке "Параметры службы"\"Интервал обработки полученных данных, не менее (мс)". По умолчанию как раз 5 сек. Данные с устройств могут приходить с любым интервалом, иногда очень коротким. Если данных много и они постоянно меняются за короткий промежуток времени, то физически невозможно записать их всех в базу. Поэтому служба ZuluOPC накапливает полученные данные и записывает в базы с указанным интервалом последние актуальные значения.
SerPa написал: Разобрался немного. В журнал и связанное поле пишет с интервалом, указанным в параметрах службы. Только непонятно, что настраивает интервал времени получения данных в самом теге?
OPC сервер поддерживает синхронное и асинхронное получение данных. При синхронном обмене данными происходит принудительный запрос клиента серверу и ожидание ответа, при этом блокируются все остальные вызовы, пока сервер не пришлет ответ. Режим "Чтение с заданным интервалом времени" использует синхронный запрос к OPC-серверу. Т.е. сервер опрашивается с заданным интервалом в синхронном режиме. Если есть возможность, то предпочтительней использовать режим подписки на изменение данных. В таком случае данные с устройств будут приходить только в том случае, если они изменились.
SerPa написал: А как быть, если к примеру, одни значения требуется записывать с интервалом 5 сек, а другие - 30 сек.?
Мы можем добавить такую опцию. Например, для каждого сервера OPC задавать свой интервал записи в базу, или даже для каждого тега. Но на практике, у реальных пользователей, такие требования не возникали. Такой функционал может быть в SCADA, которые работают на специальных платформах, но у нас не система реального времени, некоторые вещи в Windows не реализовать с достаточной надежностью и качеством.
Умеет ли демо-версия ZuluOPC работать с серверными слоями? У меня получилось настроить работу демо-сервера только с локальным слоем. С серверным слоем работать никак не хочет, хотя применил теже самые настройки, что и для локального слоя.
SerPa написал: А как быть, если к примеру, одни значения требуется записывать с интервалом 5 сек, а другие - 30 сек.?
Мы можем добавить такую опцию. Например, для каждого сервера OPC задавать свой интервал записи в базу, или даже для каждого тега. Но на практике, у реальных пользователей, такие требования не возникали. Такой функционал может быть в SCADA, которые работают на специальных платформах, но у нас не система реального времени, некоторые вещи в Windows не реализовать с достаточной надежностью и качеством.
Я думаю, пока достаточно того что есть. Лишний функционал привносит дополнительные проблемы.
SerPa написал: Умеет ли демо-версия ZuluOPC работать с серверными слоями? У меня получилось настроить работу демо-сервера только с локальным слоем. С серверным слоем работать никак не хочет, хотя применил теже самые настройки, что и для локального слоя.
Работает и с локальными и с серверными слоями. Проблема, скорее всего, в авторизации на ZuluServer. Служба ZuluOPC по умолчанию запускается под системной учетной записью. У системной учетки может не быть необходимых прав. Надо настраивать. По поводу использования нашего демо-сервера OPC - для отладки лучше поставить у себя какой-нибудь OPC-сервер. Наш сервер работает исключительно в демонстрационных целях и периодически может выключаться(нет электричества, перезагрузка и т.д.)
похоже нет доступа к слою, хотя под пользователм все видит. Что еще можно сделать?
Поставьте в свойствах службы ZuluOPCService вход в систему с учетной записью того пользователя, под которым открывается серверный слой и перезапустите службу. Это "костыль", но должно заработать.