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

Я работаю с пакетом программного обеспечения для автоматизации на базе ПК под названием Think'n'Do, созданным Phoenix Contact. обработка, чтение входных данных/управляющая логика/запись выходных данных выполняются максимум за 50 мс. У нас есть сервер OPC, который считывает/записывает теги с ПЛК каждые 10 мс. Существует большая задержка при записи тега в ПЛК и обратном считывании записанного значения (Think'n'Do (50 мс) > OPC-сервер (10 мс) > ПЛК (10 мс) > OPC-сервер (10 мс) > Think'n'Do (50 мс) ), этот процесс занимает до 6 секунд, хотя по моей математике он должен занимать всего 130 мс.

Будут полезны любые идеи о том, где искать или почему это может занять так много времени.


person Tanj    schedule 02.09.2008    source источник


Ответы (4)


Это зависит от того, как ваш 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-секундную задержку).

person Garo Yeriazarian    schedule 03.09.2008

Звучит так, как будто вы не используете кеш на OPC-сервере. Обычно серверы OPC имеют кеш, если ваш клиент подключается и не указывает, что он хочет использовать кеш, вы не получаете производительность, которая вам может понадобиться. Сервер OPC отвечает за обновление кэша с устройства, хотя критерии обновления могут отличаться от сервера OPC к серверу OPC.

person AndersK    schedule 23.04.2009

Если система выполняет синхронное чтение (блокировка вызова ввода/вывода), затем реализует логику вашего приложения, а затем выполняет синхронную запись (снова блокировка), то вам необходимо учитывать, что к ПЛК осуществляется несколько обращений туда и обратно.

Синхронное чтение включает приложение (запрос) -> OPCServer-> PLC-> OPCServer-> приложение (результат). Это просто чтение для одного элемента (хотя вы можете запросить группу элементов за один раз).

Затем аналогичная запись синхронизации также включает приложение (запись)->OPCServer->PLC->OPCServer->App(Done).

Асинхронное чтение и запись и групповое чтение и запись могут помочь уменьшить блокировку приложения, но будьте осторожны, чтобы ваше приложение могло справиться с этим асинхронным поведением.

Еще одна вещь, на которую следует обратить внимание, — это конфигурация ПЛК. В ПЛК Allen-Bradley есть настройка задержки между сканированиями, которая используется для обслуживания запросов ввода-вывода по внешним сетям. Если это время короткое и у вас высокая пропускная способность данных, это замедлит работу.

person Rhys    schedule 03.10.2008

Вот несколько мест, где можно посмотреть: конфигурация клиента OPC, сам клиент OPC, сервер OPC или сам ПЛК.

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

  1. Конфигурация клиента OPC. Группа OPC, в которую вы добавили теги OPC, должна иметь высокую скорость сканирования (т. е. от 100 мс до 1 с в зависимости от того, для чего вы ее используете). Замечаете ли вы, что при записи значений значения поступают быстрее? Если нет, то может быть проблема с DCOM или конфигурацией сети.
  2. OPC-клиент. Загрузите бесплатное программное обеспечение OPC-клиента (возможно, с веб-сайта OPC Foundation или основных поставщиков программного обеспечения OPC-сервера), чтобы увидеть, быстрее ли вы возвращаете значения. Если это так, возможно, проблема связана с вашим клиентом.
  3. OPC-сервер. Некоторые OPC-серверы имеют инструменты диагностики. Включите их и посмотрите, в какое время на самом деле происходит запись и в какое время действительно происходит чтение. Если вы сможете ответить на эти вопросы, вы, вероятно, сможете определить, кто является виновником задержки в ПЛК или в OPC-сервере. Также наблюдайте за использованием ЦП OPC-сервера. Если вы заметите, что он использует больше ЦП, чем обычно, это, вероятно, означает, что OPC-сервер перегружен, что может привести к снижению производительности.
  4. Прочее. Наконец, проверьте ПЛК, правильно ли работает сеть.
person Community    schedule 03.10.2008