Сетевой электронный научный журнал "СИСТЕМОТЕХНИКА", № 2, 2004 г.

КОНЦЕПЦИЯ ЧИСЛОВОГО ПРОГРАММНОГО УПРАВЛЕНИЯ МЕХАТРОННЫМИ СИСТЕМАМИ: ПРИНЦИПЫ ПОСТРОЕНИЯ УДАЛЕННЫХ ТЕРМИНАЛОВ ЧПУ

 

Мартинов Г.М., Сосонкин В.Л.

(МГТУ «Станкин», mail@ncsystems.ru)

 

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

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

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

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

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

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

Схема функционирования апплета выглядит так. Апплеты сохраняются на Internet/Intranet сервере; они загружаются на разные клиентские платформы и выполняются браузером клиентской машины. Загрузка и исполнение осуществляются под надзором системы безопасности, которая защищает от выполнения недопустимых операций. Если браузер обнаруживает HTML-страницу с апплетом, он запускает Java-машину и передает ей информацию <APPLET> тэга. Загрузчик, находящийся внутри Java, отыскивает необходимые классы для выполнения апплета. Как часть процесса загрузки, запускается верификатор, проверяющий корректность класса и надежность его кода. Апплеты позволяют выполнять сложную обработку данных, полученных от сервера. Из соображений безопасности апплеты не имеют доступа к файловой системе локального компьютера. Данные поступают только от сервера. Для повышения производительности Java-приложений в современных браузерах используют компиляцию "на лету" (Just-In-Time compilation). При первой загрузке код апплета транслируется в исполняемую программу, которая сохраняется на диске. Таким образом, JIT-компилятор преобразует байт-коды в команды процессора целевой машины непосредственно перед выполнением. В результате, скорость апплета увеличивается в несколько раз [1].

Высказанные соображения были положены в основу разработки удаленного терминала. На Рис. 1 представлена принципиальная схема его подключения. Для связи удаленного терминала с системой ЧПУ использовано стандартное Internet соединение. В сравнении с традиционным интерфейсом оператора, удаленный терминал предоставляет несколько облегченную информацию об объекте управления; на чем остановимся позже.

 

 

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

 

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

Библиотеки классов Java, используемых при создании апплетов. В языке Java все классы производны от класса Object и организованы в библиотеки. Библиотеки классов делятся на встроенные, подключаемые автоматически, например, java.lang; и внешние, подключаемые с помощью оператора import.

На Рис. 2 показана схема подключения библиотек, используемых при создании удаленного терминала. Библиотека JavaNcsCL поддерживает базовые функции работы с данными системы ЧПУ. В ее состав входят функции, работающие с программируемым контроллером; функции, управляющие формообразованием; и функции, отслеживающие статус технологического процесса и системы управления в целом.

 

 

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

 

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

Библиотека классов java.applet инкапсулирует базовое поведение апплетов Java. При создании апплета необходимо унаследовать его от класса Applet из библиотеки java.applet. Эта библиотека устанавливает также интерфейсы для подключения апплетов к их документам и классы для работы с мультимедиа.

Мы определились в выборе языка Java при реализации удаленного терминала; но теперь возникает проблема взаимодействия с ядром системы ЧПУ, написанном на C или C++, через TCP/IP канал. Данные, передаваемые в канале, ориентированы на С/С++ приложения оператора. Библиотека Java_NC_CL содержит классы, обеспечивающие конвертирование структур данных в пространстве между Java удаленным терминалом и C\C++ ядром системы ЧПУ. Структура трехуровневой библиотеки приведена на Рис. 3. Уровень, отвечающий за связь с ядром системы ЧПУ, реализует классы сокетов и класс таймера в «time-out» механизме. Классы SynchronSocket и AsynchronSocket, унаследованные от стандартного класса Socket, обеспечивают синхронный и асинхронный способы обращения к серверу на базе протокола TCP; а класс EmergencySocket, унаследованный от стандартного класса DatagramSocket, осуществляет контроль соединения на базе протокола UDP. Следующий уровень реализует базовые типы запросов: синхронный, асинхронный, запрос по событию и механизм уведомления зарегистрированных клиентов после обновления данных. Классы последнего уровня запаковывают отправляемые данные и распаковывают получаемые.

 

 

Рис. 3. Многоуровневая структура библиотеки классов

 

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

 

 

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

 

Инструментарий разработки удаленного терминала. Разработка программного обеспечения удаленного терминала наиболее эффективна при поддержке CASE-средств. При их выборе ориентировались на наиболее популярные: Rational Rose (фирмы Rational) и JBuilder (фирмы Borland).

С помощью Rational Rose осуществляли проектирование удаленного терминала, строили диаграммы классов, диаграммы состояния, диаграммы взаимодействия (см. Рис. 5); выполняли реинжениринг модели из исходного кода [3], и т.д.

 

 

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

 

Среда JBuilder предлагает профессиональные средства разработки, такие как: набор «Wizards» для создания каркасов приложений; интегрированный браузер Application Browser для управления проектом; визуальные дизайнеры, поддерживающие drag-and-drop механизмы; графический отладчик, высокоскоростной компилятор; системы визуализации UML-кода и управления конфигурациями; средства тестирования приложений и т.д.. (см. рис 6).

 

 

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

 

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

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

 

 

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

 

Стрелки связывают управляющие элементы с классами, поставляющими информацию из ядра системы ЧПУ.

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

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

 

Список литературы

 

  1. Вебер Д. Технология Java в подлиннике: Пер. с англ. – Сб.: БВХ-Петербург, 2000. – 1104 с.: ил.
  2. Tехнология "тонкий клиент/сервер" компании Citrix http://www.deltacomm.ru/vendors/products/citrix/client.htm
  3. Кватрани Т. Rational Rose 2000 и UML. Визуальное моделирование: Пер. с англ. – М.: ДМК Пресс, 2001. – 176 с.: ил. (Серия «Объектно-ориентированные технологии в програмировании»)
  4. Сосонкин В.Л., Мартинов Г.М. Концепция числового программного управления мехатронными системами: построение межмодульной коммуникационной среды. Мехатроника. 2000. №6. С. 2-7.
  5. Мартинов Г.М., Сосонкин В.Л. Концепция числового программного управления мехатронными системами: реализация терминальной задачи. Мехатроника. 2001. №4. C. 2-8.

Сетевой электронный научный журнал "СИСТЕМОТЕХНИКА", № 2, 2004 г.