Научно-исследовательская лаборатория систем ЧПУ
Научно-исследовательская лаборатория систем ЧПУ

Поиск по сайту:
 

Расписание курсов "Программирование SINUMERIK 810D/840D/840Di"



Генерация отчетов подсистемы диагностики системы числового программного управления

Автор: Чугунов Ю. В.
Кафедра КСУ, МГТУ "СТАНКИН"
Опубликовано: 05.06.2005
Версия текста: 1.1

Демонстрационный пример  размер файла: 36,7 Kб

Введение

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

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

На рисунке показана упрощенная схема преобразования информации, хранящейся в виде XML-документа. Процесс обработки делится на 3 стадии:

  1. XSLT-процессор разбирает входящий документ и документ преобразования, создавая для них древовидные структуры данных, этот этап называется этапом парсинга документа (англ.: parse - разбирать). Поэтому XSLT-процессор обычно называют парсером. Выходящий документ может быть представлен не только в различных форматах, таких как HTML, PDF, RTF и проч.
  2. К дереву входящего документа применяются правила, описанные в XSLT-преобразовании. В итоге процессор создает дерево выходящего документа. Этот этап называется этапом преобразования.
  3. Для созданного дерева генерируется физическая сущность. Этот этап носит название - сериализация.
Преобразование XML данных
Преобразование XML данных

В XML-документе хранятся данные о сигналах измерений, конфигурационные данные. На выходе преобразования мы хотим получить HTML документ с нужной нам информацией и сигналами измерений. По ходу статьи будут рассмотрены способы получения текстовых и графических данных из XML-документа.

Выбор инструментария

Выбор XSLT-процессора

При выборе XSLT-процессора будем учитывать следующие характеристики:

  • производительность
  • популярность
  • поддерживаемые платформы

Несмотря на то, что XSLT-процессоры являются довольно сложными программами, в подавляющем большинстве они распространяются по бесплатным лицензиям. Как следствие, ценовой показатель не является определяющим.

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

Оценка производительности XSLT-процессоров в соответствии с XSLTMark
Оценка производительности XSLT-процессоров в соответствии с XSLTMark *

Немаловажным фактором при выборе XSLT-процессора является его популярность - ведь чем более распространён процессор, тем больше возможность учитывать опыт предыдущих разработок и, соответственно, надежность системы. На следующей диаграмме представлены результаты опросов русскоязычных XML-разработчиков.

Популярность основных XSLT - процессоров
Популярность основных XSLT - процессоров *

MSXML Parser устраивает нас, как один из наиболее производительных, популярных, и проработанных процессоров. Поддерживаемая платформа - MS Windows. Разработчик - Microsoft Corporation.

Среда разработки

Поскольку XML представляет собой текстовый документ, то создавать XML-документы возможно в обычных текстовых редакторах. Однако, написание XML-кода значительно упрощается в случае использования специализированного XML-редактора. Ниже приводится перечень наиболее распространенных программ:

XML Spy, Разработчик: Altova www.xmlspy.com

Самый мощный продукт из рассматриваемых редакторов. XMLSpy, изначально разрабатывавшийся как обычный XML-редактор, превратился в полноценную IDE (интегрированную среду разработки). В зависимости от потребностей, пользователь может выбрать нужную ему версию (Enterprise, Professional или Home) редактора. Сложно говорить о возможностях или о недостатках этого редактора. XMLSpy умеет все, а недостатков как таковых просто нет! Среди ключевых достоинств программы от компании Altova можно выделить следующие: работа со многими базами данных, поддержка XSLT 2.0, работа с системами контроля версий (CVS), встроенный дебаггер, возможность поключения XSL-FO-процессора и многие другое. Практически все дополнения, а также различную документацию можно скачать с сайта разработчика.

Xselerato Разработчик: MarrowSoft www.marrowsoft.com

Xselerator отличается простым и не столь "перегруженным" интерфейсом как многие похожие программы. По умолчанию редактор использует MSXML-парсер. Кроме стандартных (валидация, подсветка синтаксиса, работа с таблицами и др.) функций работы с XML редактор имеет встроенный дебаггер, который поможет программисту проверить правильность работы логики написанной программы или найти ошибку, закравшуюся в код.

XML Editor Разработчик: SyncRO Soft Ltd www.oxygenxml.com

Вполне приличный XML- и XSL-редактор. Он отличается продуманностью рабочего интерфейса - всё на своих местах, удобно и ничего лишнего. Из возможностей: встроенный дебаггер, поддерка XSLT 2.0 (средствами парсера Saxon 8.1B), возможность подключения других XML-парсеров и плагинов, значительно расширяющих функциональность редактора.

XSL Maker Разработчик: Promind Systems Inc. www.xslmaker.com

XSL Maker позволяет полностью абстрагироваться от процесса ручного создания XSL-файлов. Используя интерфейс Drag&Drop можно создавать на странице различные текстовые поля, checkbox'ы, таблицы и многое другое. Также при работе над проектом, программа показывает в древовидном виде иерархическую структуру рабочих файлов.

Exchanger XML Editor Разработчик: Cladonia www.exchangerxml.com

Возможно выбрать один из двух установленных процессоров для трансформации XML-документов - Xalan или Saxon. Благодаря последнему, редактор поддерживает XSLT 2.0. Присутствует также XSL-дебаггер, который прилагается в виде отдельного приложения. В остальном Exchanger XML Editor представляет собой посредственный редактор без каких-либо отличительных возможностей.

Наиболее мощным и удобным является редактор XML Spy, ставший стандартом де-факто для разработчиков, использующих XML в своих проектах.

Векторная графика

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

VML (Vector Markup Language) - это XML-приложение, разработанное корпорацией Microsoft для кодирования двумерной векторной графики. Поддержка VML в настоящее время осуществляется только браузером Internet Explorer 5.x (и выше) и пакетом Microsoft Office 2000.

Microsoft передал в мае 1998 г. спецификацию этого языка W3C в качестве предложения для стандартизации, однако W3C предложил в качестве стандарта собственную спецификацию - SVG (Scalable Vector Graphics). Этот язык будет в ближайшее время поддержан многими системами. SVG схема определяет, как в XML записывается структура данных, описывающих векторную картинку. В спецификации языка SVG также описано, как создавать SVG-анимации, SVG-программы и документы. Все это делает SVG сильным конкурентом технологии Flash.

SVG-файлы представляют собой обычный текст, и они чаще всего занимают меньший объем, чем аналогичные графические образы в форматах JPEG или GIF. Другие преимущества векторной графики включают способность изменения размеров без потери качества.

В настоящее время существует множество SVG-браузеров и редакторов, позволяющих создавать и просматривать SVG-документы. Компания Adobe создала plug-in, который позволяет просматривать SVG-файлы в браузере, а также включила поддержку работы с SVG-Файлами в редактор векторной графики Illustrator. Другие компании, такие как Corel, Sun и IBM также включили в свои продукты определенную поддержку SVG. Так как схема SVG достаточно проста, вы можете без труда создать SVG-файл даже в простом текстовом редакторе.

SVG является наиболее подходящим и развитым средством для выполнения преобразования текстовых данных из XML-документа в векторный формат.

Преобразование XML данных

Преобразование XML данных в формат SVG

Схема преобразования ничем не отличается от обычной, кроме содержания XSL-преобразования и расширения выходящего документа (*.svg). Как уже говорилось ранее для просмотра SVG-документов в браузере необходимо установка SVG plug-in'а.

Создание преобразования XML-документа в HTML формат

XML (eXtensible Markup Language) - есть, ни что иное, как формат описания данных.

Основными классами задач XML являются:

  • хранение данных
  • обмен данными и проекты интеграции
  • создание новых языков

Документ XML представляет собой данные и структуру этих данных. Чтобы эффективно использовать XML, во многих случаях необходимо уметь преобразовывать структуру XML-документов. Традиционные процедурные языки программирования плохо подходят для решения этой задачи: программы преобразования структуры получаются слишком громоздкими. Решением этой проблемы стал язык XSLT (eXtensible Stylesheet Language for Transformations), т.е. расширяемый язык стилей для преобразований. Для получения информации XML-документа, в том числе информации о структуре служит язык путей - XPath (XML Path Language). XPath является лаконичным, но при этом мощным средством обращения к XML-документам.

XSLT - это XML-язык в полном смысле этого слова: программа на XSLT (преобразование) является хорошо оформленным (well-formed) XML документом. В отличие от традиционных языков программирования, преобразование в XSLT не является последовательностью действий, которую необходимо выполнить для достижения результата. Преобразование - это набор шаблонных правил, каждое из которых определяет процедуру обработки определенной части документа. XSLT декларирует правила преобразования, которые применяются к входящему XML-документу, а XSLT-процессор генерирует выходящий документ, являющийся целью преобразования.

Рассмотрим простой пример генерации текстовых данных в формате HTML из XML-документа. В качестве среды разработки воспользуемся редактором XML Spy (Altova).

Исходный документ (XML)
Преобразование (XSL)


Результат в виде HTML файла

Язык XSLT позволяет производить преобразования в разные форматы данных. Далее рассмотрим форматы векторной графики, основанные на языке XML.

Создание XSL-преобразования для вывода сигнала в формате SVG

В XML-документе хранятся данные о результатах измерений. Представим сигнал, заданный набором точек в виде графического изображения в формате SVG. Для примера работы с текстом в SVG выведем название и SignalID.

Исходный документ (XML)
Преобразование (XSL):


Результат в виде SVG файла

Интеграция SVG в HTML формат

К сожалению, стандарт HTML пока не поддерживает прямую интеграцию svg элементов в HTML файле. Чтобы вставить на страницу готовый svg документ необходимо воспользоваться тэгом <embed>:
<embed src="file.svg" pluginspage="http://www.adobe.com/svg/viewer/install/" height="640" width="480" >

Если плагин для просмотра svg документов на html странице не установлен, атрибут pluginspage направляет браузер пользователя на страницу установки плагина.

Данный вариант не позволяет обойтись только XSL технологией для генерации html документа, содержащего текстовую и графическую информацию из XML файла.

С помощью пространств имен элемента object, а также XML-инструкции IMPORT можно интегрировать svg тэги прямо в html файл:

Пример интеграции SVG в HTML (через пространство имен)

Однако данный метод имеет несколько недостатков:

  • В режиме предварительного просмотра svg картинки не отображаются
  • Не работает масштабирование и перемещение svg картинки

Перечисленные недостатки не позволяют использовать данный метод.

С помощью JavaScript можно решить эти проблемы. Алгоритм решения следующий:

  1. Svg элементы вставляются в html файл также, как в предыдущем примере, т.е. с префиксом.
  2. При загрузке страницы вызывается скрипт, который подменяет все элементы svg с префиксом на элемент <embed src="file.svg" :> (file.svg должен существовать).
  3. На месте файла file.svg с помощью JavaScript загружаем необходимые нам графические данные.

Схема преобразования выглядит следующим образом:

Преобразование XML данных

Преобразование XML данных в формат SVG

С помощью данного метода был получен следующий результат.


HTML файл с интегрированной SVG графикой

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

  1. Валиков А.Н. Технология XSLT. - СПб.: БХВ-Петербург, 2002. - 544 с
  2. Сосонкин В.Л., Мартинов Г.М. Концепция числового программного управления мехатронными системами: реализация диагностической задачи управления - Мехатроника №3 2001 с. 2-6
  3. http://www.computerra.ru/softerra/36537/ - Визуальные XML-редакторы
  4. http://xmlhack.ru - Место общения xml-сообщества
  5. http://xmlhack.ru/books/xslt/xpathref.html - Краткий справочник функций XSLT и XPath
  6. http://wdh.suncloud.ru/vml01.htm - Векторная графика: языки VML и SVG
  7. http://web.envos.com.ua - Введение в VML
  8. http://www.w3.org/TR/SVG/ - Спецификация SVG
  9. http://www.webmascon.com/topics/technologies/7a.asp - Eric Vitiello Jr. SVG: Замена Flash-у
  10. http://design.gossoudarev.com/info/svg/ - Введение в SVG
  11. http://www.javaportal.ru/articles/svg/svg.html - Стандарт масштабируемой векторной графики SVG


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