Повышение производительности с помощью OPC-тегов
-
09-06-2019 - |
Вопрос
Я работаю с программным пакетом автоматизации на базе ПК под названием Think'n'Do, созданным Контакт с Фениксом Он выполняет обработку в реальном времени, считывает входные данные / управляет логикой / записывает выходные данные максимум за 50 мс.У нас есть OPC-сервер, который считывает / записывает теги с ПЛК каждые 10 мс.Запись тега в ПЛК и считывание записанного значения происходит с большой задержкой (Think'n'Do (50 мс) > OPC-сервер (10 мс) > PLC (10 мс) > OPC-сервер (10 мс) > Think'n'Do (50 мс)). Этот процесс занимает до 6 секунд, когда по моим расчетам он должен занимать всего 130 мс.
Были бы полезны любые идеи о том, где искать и почему это может занять так много времени.
Решение
Это зависит от того, как вы настроили свой OPC-клиент для извлечения данных.Когда вы подписываетесь на группу в OPC, вы можете указать частоту обновления.По умолчанию это может быть 1 сек. или даже 5 сек., в зависимости от OPC-клиента.Существует также ограничение, которое OPC-сервер может установить на частоту обновления данных.Это применимо только в том случае, если ваш OPC-клиент подписался на события изменения данных.
Другой способ, которым вы можете пойти, - это выполнять асинхронное или синхронизирующее чтение / запись с OPC-сервером.Существует также несколько режимов чтения.Поскольку вы используете OPC, вы можете использовать любой OPC-совместимый клиент для тестирования вашего сервера, это подскажет вам, связана ли проблема с настройками в Think'n'Do или это что-то с ПЛК / сервером.
Лучший OPC-клиент общего назначения, который я использовал, - это OPC Quick Client.Вы можете получить его с помощью TOP Server здесь: http://www.toolboxopc.com/Features/Demo/demo.shtml.Просто возьмите демо-версию TOP Server и установите OPC Quick Client.Вы можете использовать его для подключения к вашему OPC-серверу, просмотра тегов и просмотра того, как выглядят данные.Второй лучший OPC-клиент, который я использовал, - от ICONICS (называется OPC Data Spy), доступный здесь: http://www.iconics.com/support/free_tools.asp.
Используйте OPC-клиент, чтобы узнать, насколько быстро вы можете считывать данные.Убедитесь, что вы правильно установили частоту обновления группы.Я думаю, что инструменты также могут предоставить вам некоторую информацию о времени (но вы сможете довольно легко вычислить 6-секундную задержку).
Другие советы
Звучит так, как будто вы не используете кеш на OPC-сервере. Обычно серверы OPC имеют кеш, если ваш клиент подключается и не указывает, что он хочет использовать кеш, вы не получаете производительность, которая может вам понадобиться. Сервер OPC отвечает за обновление кэша с устройства, хотя критерии обновления могут отличаться от сервера OPC к серверу OPC. Р>
Если система выполняет синхронное чтение (блокирует вызов ввода-вывода), затем реализует логику вашего приложения, а затем выполняет синхронную запись (снова блокирование), то вам необходимо учитывать, что существует несколько циклических обращений к ПЛК.
Синхронное чтение включает приложение (запрос) -> OPCServer-> PLC-> OPCServer-> приложение (результат). Это только чтение для одного элемента (хотя вы можете запросить группу элементов за один раз). Р>
Затем аналогичная синхронная запись также включает App (Write) -> OPCServer-> PLC-> OPCServer-> App (Done).
Асинхронное чтение & amp; пишет и читает группу & amp; Операции записи могут помочь уменьшить блокировку приложения, но будьте осторожны, чтобы ваше приложение могло справиться с этим асинхронным поведением
Другая вещь, на которую следует обратить внимание, - это конфигурация ПЛК. В ПЛК Allen-Bradley есть настройка задержки между сканированиями, которая используется для обслуживания запросов ввода-вывода по внешним сетям. Если это короткое время и у вас высокая пропускная способность данных, это замедлит процесс.
Вот несколько мест, где можно посмотреть: конфигурация клиента OPC, сам клиент OPC, сервер OPC или сам ПЛК. Р>
Вот что вы должны проверить:
<Ол>