Повышение производительности с помощью OPC-тегов

StackOverflow https://stackoverflow.com/questions/39996

  •  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 или сам ПЛК.

Вот что вы должны проверить:

<Ол>
  • Конфигурация клиента OPC. Группа OPC, в которую вы добавили теги OPC, должна иметь высокую скорость сканирования (т. е. от 100 мс до 1 секунды в зависимости от того, для чего вы ее используете). С актом записи значений, вы заметили, если значения приходят быстрее? Если нет, то это может быть проблема с DCOM или конфигурацией сети.
  • OPC Client - загрузите бесплатное программное обеспечение OPC Client (возможно, с веб-сайта OPC Foundation или основных поставщиков программного обеспечения OPC Server), чтобы узнать, сможете ли вы вернуть значения быстрее. Если это так, возможно, проблема в вашем клиенте.
  • OPC-сервер. Некоторые OPC-серверы имеют диагностические инструменты. Включите их и посмотрите, во сколько фактически происходит запись и в какое время происходит чтение. Если вы можете ответить на эти вопросы, вы, вероятно, сможете определить, является ли виновник задержки со стороны ПЛК или сервера OPC. Также обратите внимание на использование ЦП сервера OPC. Если вы заметили, что он использует больше ЦП, чем обычно, это, вероятно, означает, что сервер OPC загружен, что может привести к снижению производительности.
  • Другие. Наконец, проверьте ПЛК, сеть работает нормально.
  • Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top