Повышение производительности с помощью тегов OPC - PullRequest
4 голосов
/ 02 сентября 2008

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

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

Ответы [ 4 ]

5 голосов
/ 03 сентября 2008

Это зависит от того, как ваш клиент OPC настроен на получение данных. Когда вы подписываетесь на группу в OPC, вы можете указать частоту обновления. По умолчанию это может быть 1 или даже 5 секунд, в зависимости от клиента OPC. Существует также ограничение, которое сервер OPC может устанавливать для частоты обновления данных. Это применимо только в том случае, если ваш клиент OPC подписывается на события изменения данных.

Другой способ - асинхронное чтение или запись на сервер OPC. Также есть несколько режимов чтения. Поскольку вы используете OPC, вы можете использовать любой OPC-совместимый клиент для тестирования вашего сервера, и он сообщит вам, связана ли проблема с настройкой в ​​Think'n'Do или с PLC / сервером.

Лучший 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), доступный здесь:

Используйте OPC-клиент, чтобы увидеть, как быстро вы можете читать данные. Убедитесь, что вы правильно установили частоту обновления группы. Я думаю, что инструменты могут также предоставить некоторую информацию о времени (но вы сможете легко определить 6-секундную задержку).

3 голосов
/ 23 апреля 2009

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

1 голос
/ 03 октября 2008

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

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

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

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

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

0 голосов
/ 03 октября 2008

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

Вот вещи, которые вы должны проверить:

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