Объектная модель коммуникационной среды. Программное обеспечение терминальной части системы управления. Идеи компонентного подхода.

Существуют ситуации, когда построение распределенных СУ создает дополнительные удобства, а также ситуации, когда без этого обойтись невозможно. В обоих случаях применяют удаленный (от ядра СУ ) терминал, который дублирует основной терминал системы СУ или заменяет его. Особенность удаленного терминала состоит в том, что он может использовать иную платформу, его средства визуализации и управления более лаконичны. При этом должен осуществляться доступ к основным функциям ядра СУ через локальную или корпоративную сети, а быть может, через Интернет. Рассмотрены принципы разработки удаленных терминалов, которые являются новыми компонентами распределенных систем управления.Новые требования к системам управления состоят в том, что они все более приобретают распределенный характер. Существенно меняется роль оператора в зоне управления. Особое значение придается возможности подключения удаленных терминалов для получения необходимой информации «снизу» и использования Интернета. Соответственно так называемой технологии «тонкого клиента» (thin client) в качестве web-сервера может выступать сама СУ. Все эти проблемы были затронуты в рамках исследования, связанного с созданием типового активного удаленного терминала с применением языка Java.

 

Удаленный терминал в системе управления

Удаленный терминал предполагает отделение терминальной задачи СУ от всех остальных или ее дублирование. При этом ядро системы управления располагают, исходя из конструктивных соображений, а терминальную часть - на другом компьютере сети, т.е. там, где это удобно с позиций организации управления. Сеть при этом может быть локальной сетью участка или цеха, Интернет-сетью предприятия или глобальной Интернет-сетью. Удаленный компьютер может иметь платформу, отличную от платформы компьютерной системы СУ.

Необходимость удаленного терминала обусловлена следующими соображениями. В процессе работы оператор СУ должен следить за информацией о ходе технологического процесса, текущими координатами приводов подачи, сообщениями об ошибках в системе управления и т.д. Между тем современные станки и технологические линии нередко имеют протяженность, превышающую сотню метров. Традиционное решение состоит в том, что оператор непрерывно перемещается в зоне оборудования, обращаясь к специальным пультам, распределенным по длине рабочего участка. Подобный подход требует значительных затрат и увеличивает площадь рабочего пространства оператора. Альтернативой служит применение в качестве удаленных терминалов портативных компьютеров «notebook» или карманных компьютеров типа Palm, которые могут быть переносными. Для подключения удаленного терминала в различных точках рабочей зоны (через 30 - 50 м) имеются разъемы. При этом оператор может выбрать для себя наиболее комфортную позицию. Организация математического обеспечения удаленного терминала требует разработки новой концепции.

 

Информационные технологии, используемые при создании удаленного терминала

Рассмотрим некоторые информационные технологии, которые наиболее удобно применять для решения поставленной задачи.

Во-первых, нас интересует технология «тонкий клиент/сервер», которая предполагает, что запуск и работа приложения, а также управление приложением происходят на сервере (в нашем случае это устройство СУ). Эта модель использует многопользовательскую операционную систему и технологию передачи полного пользовательского интерфейса на удаленное устройство пользователя. Высокоэффективный протокол «представления Windows» отделяет работу приложений от удаленного терминала и посылает по сети только события клавиатуры и мыши, а также обновления изображений на экране.

Во-вторых, нас интересует объектно-ориентированный язык Java компании «Sun Microsystems», который уже изначально располагал высокой степенью переносимости при разработке распределенных сетевых приложений. Переносимость достигается использованием виртуальных машин, интерпретирующих байт-коды на разных аппаратных платформах и в разных операционных системах. Апплеты Java служат разновидностью приложений, интерпретируемых виртуальной Java-машиной, встроенной в среду Java-совместимых браузеров. Поскольку web-браузеры разрабатывались для отображения HTML-документов, работа апплетов Java в среде браузера предполагает использование HTML-тэга <APPLET>, вызывающего апплеты.

Схема функционирования апплета выглядит так. Апплеты сохраняются на Интернет-сервере; они загружаются на разные клиентские платформы и выполняются браузером клиентской машины. Загрузка и исполнение осуществляются под надзором системы безопасности, которая защищает от выполнения недопустимых операций. Если браузер обнаруживает HTML-страницу с апплетом, он запускает Java-машину и передает ей информацию <APPLET> тэга. Загрузчик, находящийся внутри Java, отыскивает необходимые классы для выполнения апплета. Как часть процесса загрузки запускается верификатор, проверяющий корректность класса и надежность его кода.

Апплеты позволяют выполнять сложную обработку данных, полученных от сервера. Из соображений безопасности апплеты не имеют доступа к файловой системе локального компьютера. Данные поступают только от сервера. Для повышения производительности Java-приложений в современных браузерах используют компиляцию «на лету» (Just-In-Time compilation, JIT).

При первой загрузке код апплета транслируется в исполняемую программу, которая сохраняется на диске. Таким образом, ЛТ-компилятор преобразует байт-коды в команды процессора целевой машины непосредственно перед выполнением. В результате скорость апплета увеличивается в несколько раз.

Высказанные соображения были положены в основу разработки удаленного терминала. На рис. 7 представлена принципиальная схема его подключения. Для связи удаленного терминала с СУ использовано стандартное Интернет-соединение. В сравнении с традиционным интерфейсом оператора, удаленный терминал предоставляет несколько облегченную информацию об объекте управления (см. ниже).

 

Рис. 7. Схема подключения (функционирования) удаленного терминала

 

Удаленный терминал выполнен по типу «тонкого клиента». На его экране видна работа апплета Java. Web-сервер, поставляющий данные удаленному терминалу для отображения, интегрирован в систему СУ . Программное обеспечение терминала имеет модульную структуру, причем сами модули реализованы в виде библиотеки.

На рис. 8 показана схема подключения библиотек, используемых при создании удаленного терминала. Библиотека JavaNcsCL поддерживает базовые функции работы с данными системы СУ , такие как функции работающие с программируемым контроллером, управляющие формообразованием, отслеживающие статус технологического процесса и системы управления в целом. BHGnnoTeKyjava.awt (Abstract Window Toolkit, инструментарий абстрактных окон) использовали для создания интерфейса оператора; с классами этой библиотеки работают апплеты Java. С ее помощью можно создавать обычные окна и диалоговые панели, кнопки, переключатели, списки, меню, полосы просмотра, одно- и многострочные поля для ввода текстовой информации. Управляющие элементы библиотеки позволяют создавать интерфейс оператора, не задумываясь о платформе, на которой выполняется апплет Java. Библиотека классов java.applet инкапсулирует базовое поведение апплетов Java. При создании апплета необходимо унаследовать его от класса Applet из библиотеки java.applet. Эта библиотека устанавливает также интерфейсы для подключения апплетов к их документам и классы для работы с мультимедиа.

 

Рис. 8. Схема взаимодействия библиотек с апплетом Java

 

Мы определились в выборе языка Java при реализации удаленного терминала, но теперь возникает проблема взаимодействия с ядром системы СУ , написанном на С или C++, через TCP/IP канал. Данные, передаваемые в канале, ориентированы на C/C++ приложения оператора. Библиотека Java_NC_CL содержит классы, обеспечивающие конвертирование структур данных в пространстве между удаленным терминалом Java и C/C+ + ядром системы СУ . Структура трехуровневой библиотеки приведена на рис. 9.

Рис. 9. Структура трехуровневой библиотеки классов

 

Уровень, отвечающий за связь с ядром системы СУ , реализует классы сокетов и класс таймера в механизме «time-out». Классы SynchronSocket и AsynchronSocket, унаследованные от стандартного класса Socket, обеспечивают синхронный и асинхронный способы обращения к серверу на базепротокола TCP, а класс EmergencySocket, унаследованный от стандартного класса DatagramSocket, осуществляет контроль соединения на базе протокола UDP. Следующий уровень реализует базовые типы запросов (синхронный, асинхронный, по событию) и механизм уведомления зарегистрированных клиентов после обновления данных. Классы последнего уровня запаковывают отправляемые данные и распаковывают получаемые.

 

Рис. 10. Javadoc описание классов

 

Утилита Javadoc позволяет создавать интерактивный «help» с описаниями классов в формате HTML и методов (рис. 10), что помогает разрабатывать апплеты удаленного терминала.

 

Инструментарий разработки удаленного терминала

Разработка программного обеспечения удаленного терминала наиболее эффективна при комбинации CASE-системы (Computer-Aided Software Engineering) Rational Rose (фирмы Rational) со средой JBuilder (фирмы Borland). С помощью Rational Rose осуществляют проектирование удаленного терминала, построение диаграммы классов, состояния, взаимодействия (рис. 11), реинжениринг модели из исходного кода [37] и т.д.Среда JBuilder предлагает профессиональные средства разработки, такие как: набор «Wizards» для создания каркасов приложений, интегрированный браузер Application Browser для управления проектом, визуальные дизайнеры, поддерживающие drag-and-drop механизмы, графический отладчик, высокоскоростной компилятор, системы визуализации UML-кода и управления конфигурациями, средства тестирования приложений и т.д. (рис. 12).

Рис. 11. Диаграмма взаимодействия при асинхронном запросе

 

Рис. 12. Среда разработки удаленного терминала

 

Нормальный объем обменных данных терминала и ядра системы СУ измеряется многими сотнями типов. Транзакции такого объема для удаленного терминала недопустимы в силу ограничений по быстродействию. Поэтому необходимо тщательно отбирать данные, которые удаленный терминал будет отображать, и сам способ такого отображения. Выделение основной информации из полного объема данных позволяет оптимизировать трафик.

Очень важно удачно подобрать управляющие элементы, осуществляющие вывод информации. Вариант Java NC_Applet представлен на рис. 13. В окне Connection выведена информация о системе СУ WinPCNC (нашей разработки), с которой удаленный терминал поддерживает связь. В окно System Info поступают сообщения со стороны системы управления, включая сообщения об ошибках. В окна Current Position и End Position выводятся значения текущих и запрограммированных координат. Остальные окна использованы для работы с программируемым контроллером электроавтоматики. Стрелки связывают управляющие элементы с классами, поставляющими информацию из ядра СУ.

Создание удаленного терминала компьютерных систем управления стало возможным при использовании таких ресурсов Интернет-технологий, как «тонкий клиент/сервер» и апплеты Java. Ускорение процесса разработки достигается за счет инструментальных средств проектирования, разработки, документирования и отладки программного обеспечения удаленного терминала.

Рис. 13. Схема расположения функций, предоставляющих данные для управляющих элементов

 

Оптимизация трафика между ядром СУ и удаленным терминалом предполагает тщательный отбор отслеживаемых данных. Некоторые информативные ограничения удаленных терминалов компенсируются исключительным удобством их применения.