вторник, 7 июня 2011 г.

Transaprent Ready - Сервис I/O scanning

Коммуникационный сервис I/O scanning (сканер входов/выходов) предоставляет возможность устройству, нак котором запущен сервис, вести обмен внутренними переменными с множеством удаленных устройств. Основным преимуществом использования сервиса I/O scanning является простота настройки сервиса - нет необходимости что-либо программировать, необходимо лишь единожды настроить таблицу удаленных устройств и требуемых переменных. Удаленное устройство должно функционировать как Modbus TCP сервер.

Это может быть к примеру:
  • устройства удаленного ввода/вывода (Advantys STB/OTB, Momentum);
  • интелектуальные устройства, поддерживающие Ethernet коммуникации (Altivar, TeSys T);
  • ПЛК, с интерфейсом Ethernet (Quantum, Premium, M340, Twido);
  • устройства, поддерживающие протокол Modbus по последовательной шине (TeSys U, счетчики энергии PMx);
  • любое устройство стороннего производителя, поддерживающее протокол Modbus TCP.

Т.к. I/O scanning использует стандартные протоколы (Modbus, Modbus-TCP), то к удаленным устройствам не предъявляется специальных требований для поддержки сервиса I/O scanning. В то же время удаленное устройство должно удовлетворять двум требованиям:
  • собственно поддержка Modbus TCP протокола как такового (либо поддерка Modbus по последовательной линии в связке со шлюзом);
  • поддержка кодов Modbus-функций - 3 (чтение внутренних регистров), 16 (запись внутренних регистров) и 23 (чтение/запись внутренних регистров).
Строго говоря, некоторые I/O scanning устройства могут заменить функцию 23 связкой функций 3 и 16, однако в таком случае увеличивается число запросов к удаленному устройству.
Перечислим основные возможности, доступные при использовании сервиса I/O scanning:
  • максимальный блок данных, доступный для одного открытого соединения (одна строка в таблице настройки сервиса) - 125 слов на чтение и 100 слов на запись в удаленное устройство;
  • общее макимальное количество слов, участвующих в работе сервиса - 4000 (2000 для M340 NOE);
  • множество блоков данных, участвующих в обмене с одним устройством;
  • настраиваемая пользователем частота опроса удаленных устройств (отдельный параметр для каждого устройства) - от 0 до 50000 мс;
  • диагностика корректности обмена с каждым устройством;
  • включение/выключение сервиса I/O scanning по каждому устройству.
Примечание: для каждой строки в таблице настройки сервиса создается новый сокет, в том числе и для одних и тех же устройств, но с несколькими строками в таблице настройки. Т.е. для каждой строки в таблице устанавливается соединение с исходящим портом с номерами от 3000 до 4000 и портом назначения номер 502 удаленного устройства.
Несмотря на большое количество выгод, использование сервиса его все же не стоит использовать для непериодического обмена данными, извещения о событих сетевых устройств и т.д., т.к. I/O scanning создает значительную нагрузку на сеть, а эффективность такого использования очень низка. В этом случае лучше использовать классический сервис обмена Modbus-запросами или сервисом публикации/подписки данных Global Data.

В то же время I/O scanning как нельзя лучше подойдет для:
  • приложений требующих быстрый повторяющийся обмен данными;
  • приложений требующих обмена данными одного устройства с множеством других;
  • обмена данными с устройствами удаленного ввода/вывода.
Рассмотрим подробнее процесс работы сервиса на примере одного сконфигурированного соединения:
(1) Как видите, удаленному устройству совершенной не обязательно (хотя желательно) поддерживать Modbus-запросы с кодом 23 (чтение и запись за один запрос). В таком случае сервис I/O scanning заменит этот запрос двумя раздельными запросами - на чтение и запись. Таким образом время опроса одного устройства увеличится вдвое.
(2) Задержка на этом участке алгоритма определяется параметром повторения запросов по устройству (определяется пользователем при настройке сервиса).
(3) Все данные, участвующие в обмене с удаленными устройствами, реплицируются с основной памятью ПЛК в конце каждого цикла ПЛК (не путать с циклом сервиса I/O scanning).
Устройство, на котором запущен сервис I/O scanning читает данные из удаленного устройства и записывает их в определенные при конфигурации внутренние слова (%MW) контроллера. Параллельно с этим данные из определенной области внутренних слов (%MW) записываются в определенную область памяти удаленного устройства. При обрыве связи с удаленным устройством (разрыв TCP-соединения или превышение времени таймаута на ответ), устройство с запущенным сервисом I/O scanning устанавливает в 0 соответсвующий Health-бит и переводит локальную копию читаемых данных в fallback состояние (нулевое значение, либо последнее корректное значение). При этом, как правило удаленное устройство на обрыв связи ни коим образом не реагирует, что в некоторых случаях становится значительным препятствием для применения сервиса I/O scanning и сети Ethernet как таковой. Однако есть и исключения. К примеру, преобразователи частоты Altivar 61/71 с установленной Ethernet картой VW3A3310, могут контролировать время, прошедшее c последнего запроса. Если это время превышает установленный тайм-аут, то преобразователь считает что связь управляющего устройства с ним потеряна и переходит в fallback состояние (обычно это остановка на выбеге).
Рассмотрим вопрос времени реакции системы контроллер-удаленное устройство, работающей с помощью сервиса I/O scanning.
Общее время реакции включает в себя время передачи сигнала со входа в логику контроллера, время работы внутренней логики контроллера и время передачи сигнала к удаленному выходу. В общем виде время реакции можно представить в следующем виде:

  • Tmod I и Tmod Q - время реакции удаленного устройства, не включая время электрических переходных процессов (параметр зависит сугубо от самого устройства, обычно лежит в пределах 1 - 8 мс);
  • TIOS I и TIOS Q - время между двумя следующими друг за другом запросами на чтение/запись, в большинстве случаев это сконфигурированное пользователем время сканирования одного устройства;
Если цикл сканирования (TIOS) удаленного устройства комуникационным модулем совпадает с основным циклом контроллера (NOE-модули контроллеров Quantum), значением TIOS в расчете времени реакции можно пренебречь.

  • cycle T - время основного цикла контроллера;
  • Tnet - время распространения сигнала в сети (обычно для сети 10 Мб/с Tnet=0,05 мс и Tnet=0,005 мс для сети 100 Мб/с).
Так как время реакции точно рассчитать довольно сложно, приведем формулы рассчета для 3-х случаев:

Минимальное время реакции - TIOS и cycle T происходят синхронно

RTmin=(Tmod I + 0) x TIOS I + (Tnet + n) x cycle T + (0 x TIOS Q) + Tnet + Tmod Q

Типичное время реакции - TIOS частично "перекрывает" cycle T

RTtyp.=(Tmod I + 0,5) x TIOS I + (Tnet + n) x cycle T + ( 0,5 x TIOS Q) + Tnet + Tmod Q

Максимальное время реакции - TIOS и cycle T полностью рассинхронизированы

RTmax=TMod I + TIOS I + (Tnet + n) x cycle T + TIOS Q + Tnet + Tmod Q

Дабы не приводить лишь сухие формулы, приведем реальное время реакции нескольких систем:
  • 140CPU65150 со встроенным Ethernet-портом, 8 удаленных устройств, время сканирования 10 мс - время реакции 26 мс;
  • 140CPU65150 со встроенным Ethernet-портом, 16 удаленных устройств, время сканирования 20 мс - время реакции 49 мс;
  • TSX P57 5634 со встроенным Ethernet-портом, 32 удаленных устройств, время сканирования 50 мс - время реакции 120 мс;
  • TSX P57 5634 + TSX ETY5103, 16 удаленных устройств, время сканирования 100 мс - время реакции 206 мс;
Переходя к практике использования I/O scanning, рассмотрим пример настройки сервиса в среде Unity для контроллера M340. Итак, смотрим соответсвующий видео-урок.

Комментариев нет:

Отправить комментарий