Принципы управления через Интернет
Существует 2 различных способа управления через Интернет:
1) удаленного терминала;
2) деления SCADA-пакета на серверную и клиентскую части.
Удаленный терминал - эквивалентен удлинению проводов мыши, клавиатуры и монитора с помощью Интернета, при этом визуализация выполняется в окне веб-браузера, а на компьютер через Интернет передаются только сигналы от мыши и клавиатуры. Управляемая программа исполняется на удаленном от пользователя компьютере, на котором устанавливается специализированный веб-сервер. Прямо из веб-браузера можно работать с запущенными на веб-сервере программами, с файловой системой и реестром сервера, запускать программы, контролировать выполняющиеся приложения и службы, устанавливать права доступа к системе, получать информацию о загрузке процессора и оперативной памяти. Примеры таких программ: пакеты RemotelyAnywhere[3am Labs], GoToMyPC и SpyAnywhere.
Удаленный терминал можно использовать для управления любой программой, в т.ч. SCADA. Его недостатком является требование большой пропускной способности Интернет-канала, поскольку через него передается вся информация, отображаемая на экране удаленного компьютера.
Деление SCADA-пакета на серверную и клиентскую части. Клиентская часть является веб- браузером, просматривающим специализированную веб - страницу, находящуюся на веб - сервере. На этой странице создается специализированный интерфейс с графикой и анимацией, выполняемой с помощью JScript, VBScript, Java-элплетов, Flash и анимированных GIF-файлов. Поскольку основная часть визуальной динамики пользовательского интерфейса исполняется на клиентском компьютере, а с сервера передаются только данные об объекте автоматизации, существенно снижаются требования к пропускной способности Интернет-канала.
JavaScript или VBScript применяются в таких системах для создания динамических веб - страниц (с вращающимися лопастями вентиляторов, с движением жидкости в трубах и т.п.), для оперативной проверки правильности действий пользователя при заполнении форм до передачи страницы на сервер, для взаимодействия с пользователем при решении таких задач, которые не требуют обращения к серверу.
Веб-страница может воспринимать действия пользователяь (например, нажатие кнопок, заполнение форм) и передавать их серверу. Сервер в ответ формирует новую веб- страницу с элементами, измененными в соответствии с действиями пользователя. Выполняется это с помощью CGI-сценария (Common Gateway Interface), который пишется обычно на языке Perl и располагается на сервере. Название сценарий или скрипт связано с тем, что программа не транслируется в исполняемый код, а выполняется непосредственно, с помощью интерпретатора языка. Язык Perl используется только на серверах, работающих под ОС Unix, поэтому программистам, работающим с Windows, он обычно незнаком.
Для среды Windows разработана технология ASP.NET (Active Server Pages), которая позволяет создавать веб-страницы, находящиеся на сервере и содержащие код сценариев VBScript. Результаты выполнения сценариев VBScript передаются от сервера клиенту.
JScript и VBScript, ActiveX, Flash и анимированные GIF исполняются только на стороне клиента без взаимодействия с сервером, в то время как CGI и ASP.NET исполняются на стороне веб-сервера и именно они извлекают данные из ОРС-сервера или базы данных SCADA-системы, чтобы отослать их клиенту.
Данные между клиентом и сервером могут пересылаться в виде сообщений SOAP (Simple Object Access Protocol), которые используют транспортный протокол HTTP. Сообщения SOAP используют гибкую грамматику языка XML. SOAP активизирует 2 процесса, которые могут находиться на разных компьютерах, но взаимодействуют друг с другом независимо от программных и аппаратных платформ, на которых они реализованы.
Взаимодействие между клиентской и серверной частью SCADA (рис.11.3).
При необходимости получить данные от контроллера через Интернет, следует нажать некоторую командную кнопку в окне веб-браузера. Полученные таким образом данные выкладываются на веб-страницу, которую видит пользователь с помощью веб-браузера. При входе на веб-сервер ОС (Windows или Linux) производит идентификацию пользователя и предоставляет доступ к информации в соответствии с его правами.
В случае удаленного управления на основе WAP пользователь получает доступ к управляемой системе через мобильный телефон (GSM-модем). WAP поддерживается стандартами GSM, TDMA, CDMA, GPRS.
Рис.13.3.Архитектура автоматизированной системы, использующей Интернет
В настоящее время большинство коммерческих SCADA-пакетов имеют средства построения web-интерфейса.
Микро-веб-серверы
Веб-серверы для Интернета обычно располагаются на мощных компьютерах и содержат жесткие диски большой емкости. Однако для удаленного управления в АСУ ТП часто достаточно иметь на сервере всего одну несложную веб-страницу. Для этой цели используют микро-веб-серверы (встраиваемые веб-серверы, Embedded Web Server), выполненные в виде микросхемы, которая располагается на печатной плате ПЛК или интеллектуального датчика. Каждый микро-веб сервер доступен по своему Интернет-адресу.
В предыдущие годы проблемой технической реализации микро веб-серверов была необходимость большой вычислительной мощности для реализации протокола TCP/IP. В настоящее время появились дешевые 1-кристальные микроконтроллеры фирм Crystal Semiconductor, Winbond, Realtek, Seiko Instruments, младшие модели микроконтроллеров фирм Microchip (PIC12C509), Atmel (микроконтроллеры линейки Tiny AVR), Fairchild (ACE1101) со встроенной реализацией протокола TCP/IP. Это позволило применять веб-серверы даже внутри датчика. Технологию применения микро-веб-серверов называют встроенным Интернетом (Embedded Internet).
13.3. Открытость АСУ
Одна из важнейших проблем, возникающих в АСУ ТП, особенно при автоматизации измерений заключается в резком увеличении стоимости системы с ростом ее сложности. Объективная причина - сложные системы часто изготавливаются в единичных экземплярах, а это не позволяет сделать их дешевыми.
Распространенный метод решения коммерческой части указанной проблемы – использование достаточно универсальных модулей изготавливаемых несколькими конкурирующими производителями в больших количествах. Однако при этом возникает проблема аппаратной и программной совместимости таких модулей. Для достижения совместимости интерфейс, конструктив и выполняемые функции таких модулей должны быть стандартизованы.
Открытая (модульная) система - допускает замену любого модуля на аналогичный модуль другого производителя, имеющийся в свободной продаже по конкурентоспособным ценам.
Открытость можно рассматривать на разных уровнях иерархии АО и ПО системы или ее частей. Открытыми, например, могут быть:
· физические интерфейсы, протоколы обмена, методы контроля ошибок, системы адресации, форматы данных, типы организации сети, интерфейсы между программами, диапазоны изменения аналоговых сигналов;
· пользовательские интерфейсы, языки программирования контроллеров, управляющие команды модулей в-в, языки управления базами данных, ОС, средства связи аппаратуры с ОП;
· конструкционные элементы (шкафы, стойки, корпуса, разъемы, крепежные элементы);
· системы, включающие в себя перечисленные элементы.
Под открытостью системы иногда понимают ее соответствие современным промышленным стандартам, которое обеспечивает возможность интеграции с другими открытыми системами. Однако понятие открытости нужно трактовать шире: система не только удовлетворяет стандартам, но стандарт является общепризнанным, а в свободной продаже имеются аналогичные системы других производителей по конкурентоспособным ценам.
Как следует из определения, необходимыми условиями открытости являются:
1) модульность;
2) соответствие стандартам (необязательно официальным, но обязательно общепринятым и легко доступным по цене, компенсирующей только затраты на его разработку, поддержку и распространение);
3) наличие в свободной продаже аналогичных систем других производителей (подсистем, модулей) по конкурентоспособным ценам.
Понятие открытости достаточно многогранно и не стандартизовано. Поэтому практически можно говорить только о степени открытости системы, указывая, что именно понимается под открытостью в каждом конкретном случае. Степень открытости можно оценить количеством реализованных признаков открытости.
Для SCADA-системы признаками открытости являются:
1) совместимость со стандартом ОРС,
2) совместимость с широкодоступными компьютерами с различными ОС (желательно),
3) совместимость с ActiveX, СОМ и DLL компонентами других производителей,
4) поддержка языков стандарта МЭК 61131-3,
5) наличие встроенного стандартного алгоритмического языка (например, Visual Basic) для реализации функций, которые невозможно реализовать другими средствами SCADA-пакета,
6) возможность работы как с малым, так и большим количеством тегов без необходимости переобучения обслуживающего персонала,
7) возможность применения веб-браузера в качестве пользовательского интерфейса для увеличения количества подключаемых рабочих станций,
8) наличие пользовательского интерфейса, аналогичного интерфейсам других производителей,
9) совместимость со стандартными базами данных и другими приложениями (например, Microsoft Office), расположенными на любых компьютерах сети.
Для промсетей открытость означает наличие в свободной продаже сетевой аппаратуры от разных производителей по конкурентоспособным ценам, совместимой с открытыми стандартами.
Пример открытых систем - построенные на модулях и контроллерах RealLab! [НИЛ АП], имеющие:
1) стандартный протокол Modbus RTU или стандартный де-факто протокол DECON,
2) стандартный интерфейс RS-485,
3) стандартный конструктив (крепление на DIN-рейку, разъемные клеммники),
4) стандартные диапазоны аналоговых сигналов и стандартные уровни дискретных сигналов,
5) стандартный ОРС сервер, позволяющий использовать модули с любой стандартной SCADA.
Любой модуль в такой системе может быть заменен на модули других производителей, которых в настоящее время насчитывается около десятка.
Идеальным примером открытой системы является современный офисный компьютер. Огромное число производителей в разных странах изготавливают множество аппаратных и программных компонентов, которые можно собрать в единую систему, заменить один компонент на другой, нарастить функциональные возможности. Любой компонент можно найти по достаточно низкой цене; отсутствуют производители, которые могли бы диктовать монопольные цены.
Понятие открытости не подразумевает открытость программного кода, как, например, в ОС Linux, хотя открытость кода позволяет добавлять в систему модули других производителей, что является признаком открытости. Однако открытость исходного кода существенно снижает надежность системы вследствие потенциальной возможности появления в ней дополнительных ошибок, внесенных во время модификации и компиляции. Поэтому открытость программного кода является спорным признаком открытости системы.
В отличие от открытых, закрытые системы разрабатываются по внутренним стандартам отдельных предприятий. Части (модули) закрытых систем не могут быть заменены аналогичными изделиями других производителей, а заказчик, однажды применив закрытую систему, навсегда оказывается привязанным к ее разработчику и изготовителю.
Наиболее подробное и ясное изложение требований к контроллерам с открытой архитектурой изложено в документе ISA «Требования к контроллерам с открытой модульной архитектурой для приложений в автомобильной индустрии».
Разновидностью и предельным случаем открытых систем являются системы, удовлетворяющие идеологии Plug&Play (вставил - и заиграло), когда вообще не требуется усилий для конфигурирования или настройки модулей после их подключения или замены на модули других производителей. Такая идеология существенно снижает требования к квалификации системных интеграторов, сокращает срок ввода системы в эксплуатацию, а также издержки потребителей на техническую поддержку и эксплуатацию.
Свойства открытых систем
Открытые системы обладают следующими положительными свойствами:
1) модульность;
2) платформенная независимость;
3) взаимозаменяемость с компонентами других производителей;
4) интероперабельность (возможность совместной работы) с компонентами других производителей;
5) масштабируемость.
Закрытые системы тоже могут быть модульными, интероперабельными и масштабируемыми. Но в открытых системах эти свойства должны выполняться для компонентов, изготовленных разными производителями и имеющимися в свободной продаже.
К системам с открытой архитектурой предъявляют также общепринятые требования:
1) экономичности,
2) безопасности,
3) надежности,
4) грубости (робастности),
5) простоты обслуживания и соответствия условиям эксплуатации,
6) способности к самодиагностике,
7) наличию рекомендаций по ремонту.
Система должна обеспечивать максимальное время работы без сбоя и отказа, а также минимальное время, необходимое для выполнения технического обслуживания или ремонта.
Модульность -способность аппаратного или программного обеспечения к модификации путем добавления, удаления или замены отдельных модулей (компонентов системы) без воздействия на оставшуюся ее часть. Обеспечивается при проектировании системы на архитектурном уровне. База построения модульного ПО - объектно-ориентированное программирование. Главным достижением модульности ПО АСУ ТП является выделение в нем независимых подсистем: программы в ПЛК, ОРС сервера, баз данных, операторского интерфейса и алгоритмической части, реализуемой на языках стандарта МЭК 61131-3, а также деление SCADA на серверную и клиентскую части.
Платформенная независимость - возможность выполнения программ на разных аппаратно-программных платформах обеспечивает независимость от поставщика этих платформ и дает следующие преимущества:
1) расширение выбора оборудования путем увеличения числа поставщиков;
2) независимость от поставщика АО и ПО.
Отсутствие этих свойств приводит к тому, что система, зависящая от одного производителя, прекращает свое развитие в случаях, когда фирма производитель внезапно уходит с рынка, увеличивает стоимость продукта или снимает его с производства.
Применение ОС Windows является одним из путей повышения открытости систем, поскольку эта ОС может быть установлена на максимальное число типов производимых компьютеров. В данном случае монополия фирмы Microsoft компенсируется ее размерами и стабильностью.
Платформенную независимость программных средств и, как следствие, повышение открытости обеспечивает также язык Java, хотя он и уступает С++ по быстродействию приложений.
Для улучшения открытости при компиляции исполняемых модулей программ важно избегать улучшений компилятора, применения плагинов, надстроек, скачанных откуда-то из Интернета, поскольку они могут сделать невозможным выполнение программы на других платформах.
Важный шаг к платформенной независимости - применение интранет-технологий в автоматизации, когда передача информации к рабочей станции осуществляется с помощью языка XML, а ее представление пользователю выполняется с помощью любого веб - браузера. Он позволяет в качестве рабочей станции АСУ ТП использовать компьютер и ОС любого производителя из имеющихся в свободной продаже.
Платформенной независимостью обладает также БД с языком запросов SQL (Structured Query Language), если исключить из него по возможности все нестандартные расширения. Доступ к БД с помощью SQL осуществим независимо от программно-аппаратной платформы, на которой она находятся.
Взаимозаменяемость - возможность взимной замены любого модуля (компонента) системы на аналогичный компонент другого производителя.
Интероперабельность (аппаратно-программная совместимость) - способность открытых систем использовать программы, выполняющиеся одновременно на различных платформах в общей сети, с возможностью обмена информацией между ними - программные компоненты системы, расположенные на разных аппаратных платформах в общей сети, должны быть способны работать как часть единой системы. Обеспечивает способностью коммуникации и с другими уровнями АСУ предприятия, обеспечивая одновременно безопасность поступающей извне информации.
Одним из методов обеспечения интероперабельности Windows и Unix платформ может быть применение стандарта CORBA (Common Object Request Broker Architecture).
Масштабируемость - возможность применения одного и того же аппаратного и программного обеспечения (БД, пользовательских интерфейсов, средств коммуникации) для систем разного размера (больших и малых). Для обеспечения достаточно, чтобы ПО больших и малых систем было совместимо по операторскому интерфейсу, языкам программирования, а также интерфейсу с аппаратными средствами и не требовало бы дополнительного обучения персонала.
Масштабируемая система должна обеспечивать возможность простого наращивания функциональных возможностей и размеров путем включения новых компонентов как в аппаратную, так и программную часть системы без модификации старых, опробованных программных и аппаратных модулей. Позволяет применять одни и те же аппаратные и программные средства как для больших, так и для малых систем в пределах одной организации. Примером масштабируемых программных систем являются современные SCADA-пакеты TraceMode и MasterSCADA, которые продаются как единый пакет, но имеющий градации в зависимости от количества тегов.
До появления открытых систем обеспечение масштабируемости достигалось путем проектирования системы с большим запасом по габаритам, количеству слотов, интерфейсов. Наращиваемость открытой системы подразумевает иной путь, не требующий запаса ресурсов (и связанных с ним избыточных финансовых вложений). В частности, система, обладающая свойством платформенной независимости и интероперабельности, уже является расширяемой, поскольку позволяет добавлять новое оборудование или заменять старое новыми модификациями, в том числе оборудованием других производителей.
Стандартность пользовательского интерфейса - открытые системы должны иметь стандартный пользовательский интерфейс, чтобы выполнить требование о возможности интеграции с другими системами (в данном случае - человеком). Стандартизация пользовательского интерфейса снимает необходимость обучения операторов при переходе от одной открытой системы к другой.