УДК 681.5
Проблемы совместного использования различных устройств сбора и передачи данных в составе контрольно-измерительной системы
Павел Андреевич Иосифов, к. т. н., доцент, каф. «Испытания летательных аппаратов», e-mail: [email protected]
Алексей Степанович Перванюк, ст. преп., каф. «Испытания летательных аппаратов», e-mail: [email protected]
Владимир Алексеевич Шишкин, ассистент, каф. «Испытания летательных аппаратов», e-mail: [email protected]
ФГБОУ ВПО «МАТИ» - Российский государственный технологический университет имени К.Э. Циолковского
Рассмотрены проблемы, возникающие при работе контрольно-измерительной системы, в состав которой входят устройства сбора и передачи данных, выполненные разными производителями; показано, что для конфигурирования и синхронизации работы этих устройств служит специальное программное обеспечение; обосновано применение универсального программного интерфейса для взаимодействия специального программного обеспечения со штатными программными средствами устройств сбора и передачи данных; представлен механизм обеспечения совместимости версий отдельных программных компонентов контрольно-измерительной системы.
The article considers some problems that occur during the operation of instrumentation and control system comprising data collection and conveyance devices made by different producers. The article shows that special software serves for configuration and synchronization of such devices. The use of universal software interface for the interaction between special software with standard software tools of data collection and conveyance devices is proved. The mechanism for ensuring the interoperation of some instrumentation and control system software components revisions is given.
Ключевые слова: контрольно-измерительная система, устройство сбора и передачи данных, интерфейс, программный компонент.
Keywords: instrumentation and control system, data collection and conveyance device, interface, software component.
Построение современной контрольно-измери-
тельной системы (КИС) является сложной задачей, для решения которой требуется целый комплекс программных и технических средств, в том числе устройства сбора и передачи данных (УСПД). В настоящее время распространена ситуация, когда КИС содержат большое количество разнородных УСПД, выполненных различными производителями. Значительное расширение модельного ряда УСПД в составе КИС связано, в первую очередь, с увеличением объема требований к параметрам сбора измеряемых данных (таким, как частота сбора, тип и диапазон измеряемого сигнала), а во вторую - со стремлением снизить себестоимость создаваемой КИС за счет использования уже имеющегося в наличии оборудования.
При совместной работе в рамках единой КИС большого числа различных УСПД возникает множество проблем. Физическое подключение таких устройств может быть осуществлено без особых сложностей благодаря использованию ограниченного круга стандартизированных аппаратных интерфейсов в составе УСПД (к таким интерфейсам,
в частности, относятся PCI, RS-232, RS-485, USB, GPIB (IEEE-488),1-wire, CAN, HART, VXI и др.). Однако конфигурирование и управление УСПД программным путем в настоящий момент не регламентируется никакими правилами или стандартами.
Каждый производитель предоставляет совместно с устройством свой собственный программный интерфейс для конкретных моделей или даже отдельных модификаций УСПД. Этот интерфейс реализован в составе штатного программного обеспечения (ШПО).
Архитектура ШПО содержит следующие основные компоненты (рис. 1):
1) «прошивку» (firmware) устройства, представляющую собой системное программное обеспечение (ПО), встроенное («зашитое») в аппаратное устройство и хранящееся в его энергонезависимой памяти;
2) драйвер - специальную программу, позволяющую операционной системе компьютера обмениваться данными с этим устройством;
Слііжебньїе
файлы
«иге» ____I__
а 3 а
Прикладное ПО Интерфейсная Прошивка
1 и 3 'ІІ ю библиотека «с а II» «иге»
Рис. 1. Компоненты ШПО
3) динамически загружаемые интерфейсные библиотеки - программные модули, выполняющие программные функции и содержащие объекты для обеспечения работы с драйвером;
4) прикладное ПО, включающее в себя графический пользовательский интерфейс и предоставляющее оператору возможность выполнять конфигурирование или выдачу команд управления устройством.
В КИС, содержащую УСПД различных моделей и производителей, входит ШПО каждого из них. Причиной этого является отсутствие поддержки штатными программными средствами, предназначенными для работы с конкретной моделью устройства, аналогичных устройств других производителей, а иногда и устройств другой модели от того же производителя. Пользователю приходится использовать различные программные средства для каждого устройства и работать одновременно с множеством программных интерфейсов и инструментов, специфичных для каждого из устройств. Если при этом конфигурирование различных устройств выполнять «всего лишь» неудобно, то организация, например, синхронного запуска или останова сбора данных является при таком подходе попросту невозможной.
Другой трудностью, возникающей в случае объединения в рамках одной КИС различных УСПД со своими штатными программными средствами, является организация эффективной обработки полученных данных - как апостериорной (послесеансной), так и в реальном времени (РВ) непосредственно при проведении измерений. Для ряда устройств их производители предоставляют только элементарные средства обработки данных, а в некоторых случаях ШПО не содержит таких средств совсем. При этом пользователь вынужден прибегать к поиску стороннего ПО или заказывать разработку такого ПО «под ключ». В любом случае это ведет к незапланированным на этапе спе-
цификации системы [1] тратам денежных средств, а также к потере времени на дополнительную подготовку и обучение операторов. Помимо того, даже с учетом возможности предоставления производителем УСПД базовых средств обработки данных, полученных с конкретного устройства, возникает проблема комплексной обработки всех данных (с различных устройств КИС), полученных во время проведения измерений. Комплексная обработка подразумевает совместное применение заданных пользователем математических функций ко всему массиву данных, единообразное отображение результатов обработки и формирование необходимой отчетной документации. Однако для каждого УСПД данные хранятся в своем собственном формате, определяемом конкретным разработчиком «под себя». Для совместной послесе-ансной обработки в этом случае необходимо подбирать или заказывать у разработчика дополнительное ПО для перевода данных в некоторый общий формат.
Таким образом, в отсутствие единой программной среды для работы с УСПД решение задач комплексной послесеансной обработки данных является трудно достижимым, а в случае необходимости такой обработки в РВ может отсутствовать совсем.
Соответственно, при построении КИС ставится задача создания такого программного инструмента, который позволил бы не только обеспечить совместное использование разнородных УСПД, но и предоставил бы единый пользовательский интерфейс для выполнения их конфигурирования, управления, а также и обработки полученных данных. То есть в состав КИС нужно включить специальное программное обеспечение (СПО) для сбора и обработки данных.
Разработка такого СПО направлена на поддержание как можно большей номенклатуры представленных на рынке устройств с широким
Рис. 2. Организация взаимодействия между СПО и ШПО посредством модуля сопряжения
диапазоном технических характеристик как зарубежных, так и отечественных производителей. Это необходимо для эффективного построения КИС, имеющих различный профиль и удовлетворяющих значительно варьирующимся требованиям, определяемым набором измеряемых величин и параметров производимых измерений.
Требованиями при выборе СПО КИС являются поддержка работы со всеми используемыми в системе УСПД и обеспечение необходимой функциональности по обработке данных. Однако в процессе работы с КИС может возникнуть потребность в расширении измерительной системы новыми УСПД или увеличении ее функциональности по обработке данных. В таких случаях разработчики модифицируют СПО, добавляя в него поддержку УСПД новых моделей, и интегрируют в систему новые математические модули обработки данных. Это ведет к увеличению общего функционала системы и определяет необходимость обновления как отдельных программных компонентов СПО, так и всего комплекса в целом. Со стороны конечного пользователя (оператора) решающим фактором при модернизации системы является возможность быстро и без значительных затрат интегрировать новые УСПД и новый функционал в существующий измерительный комплекс, что не всегда достижимо.
Теперь рассмотрим непосредственно процесс поддержки УСПД в СПО, основанный на частичном использовании программных компонентов, предоставленных производителями устройств в составе ШПО. Внесение изменений в эти компоненты («прошивка», драйвер, библиотеки), а тем более переписывание их «с нуля» для каждого
устройства, которое должно поддерживаться СПО, является крайне неэффективным. Это обусловлено высокой сложностью ведения разработки на низком уровне, где должна выполняться работа напрямую с регистрами устройств, или на уровне ядра операционной системы. Наиболее подходящим компонентом в архитектуре ШПО, на котором может быть выполнена интеграция с СПО, является прикладное ПО. Этот компонент не обязателен для использования совместно с СПО и может быть заменен на собственный модуль производителя СПО с реализацией механизма сопряжения (рис. 2), что обеспечивается опубликованной в открытом доступе документацией по работе с УСПД на программном уровне при помощи библиотек из состава ШПО.
Однако у такого подхода к интеграции есть недостаток, заключающийся в том, что у СПО и у программных компонентов ШПО, играющих роль посредников между СПО и УСПД, разные разработчики. Поэтому штатные программные компоненты обновляются независимо от СПО, причем вносимые в них изменения могут нарушить их совместимость с данным СПО. В том же случае, если используемые в КИС программные компоненты несовместимы, КИС будет работать некорректно или не работать вовсе, несмотря на то, что используемые в ней модели УСПД поддерживаются выбранным СПО.
Причиной обновления программных компонентов ШПО является исправление обнаруженных ошибок и добавление новой функциональности. Если при этом изменятся программные интерфейсы, работоспособность связки «СПО - библиотеки -драйвер - прошивка» нарушится. Совместимость
интерфейсов библиотек, библиотек с драйвером и драйвера с прошивкой обеспечивает их общий производитель, поэтому далее имеет смысл говорить только об изменениях интерфейсов библиотек, с которыми взаимодействует СПО.
Типовой является ситуация, когда для устранения ошибок в библиотеках достаточно изменить только механизм внутренней реализации их функций, а интерфейсы библиотек остаются прежними. В этом случае проблем с использованием измененных библиотек не возникает. Однако работоспособность может нарушиться, если при внесении изменений, необходимых для исправления одних ошибок, в код ПО будут внесены новые ошибки.
Реализация в библиотеках новой функциональности в большинстве случаев требует изменения их программного интерфейса. Если набор и сигнатура существующих методов интерфейса не изменялись, а их перечень был расширен, то можно обеспечить обратную совместимость на уровне библиотек СПО. Однако в противоположном случае работа СПО с библиотеками новой версии невозможна. Для обеспечения корректного функционирования необходимо изменить соответствующим образом и интерфейс СПО по работе с библиотеками (штатными программными компонентами УСПД). После изменения интерфейса работать с библиотеками старых версий СПО уже не сможет.
С другой стороны, в программный код компонентов СПО также на регулярной основе вносятся изменения с целью увеличения их функциональности. При этом интерфейс взаимодействия с компонентами ШПО остается прежним, но порядок работы с ними может существенным образом измениться, поэтому также нельзя гарантировать корректную совместную работу библиотек СПО и ШПО.
Таким образом, при эксплуатации КИС рассогласования версий библиотек СПО и ШПО могут происходить по разным причинам:
1) версия библиотек СПО может оказаться старше в следующих случаях:
• приобретение СПО для работы с имеющимися УСПД;
• обновление СПО для получения нового функционала;
• дегрейд ШПО (если в текущей версии обнаружена и описана ошибка, а в последующих версиях она не исправлена и приводит к возникновению отказов программы).
2) версия библиотек ШПО может оказаться старше:
• при приобретении УСПД после приобретения СПО;
• выходе из строя УСПД и его последующей замены на новое;
• обновлении программных компонентов ШПО для расширения функционала системы;
• дегрейде СПО в случае, если в текущей версии обнаружена ошибка, а в предыдущих версиях она не наблюдается.
Для организации корректного функционирования УСПД под управлением СПО необходимо обеспечить совместимость версий их библиотек.
Проблема с эксплуатацией УСПД в составе КИС, возникающая из-за несовместимости версий драйвера устройства и СПО, находится в зоне ответственности конечного пользователя. Но эффективное решение задачи по минимизации числа требуемых от него действий по устранению этой проблемы входит в обязанности разработчика СПО, для чего разработчик должен отслеживать выход новых драйверов и оперативно добавлять в СПО их поддержку, а также определять версии имеющихся у пользователя драйверов УСПД и соответствующим образом динамически конфигурировать состав СПО.
Рассмотрим способы решения проблем, возникающих при использовании единого программного интерфейса по конфигурированию и управлению множества разнообразных устройств сбора и передачи данных, с учетом вопросов обеспечения совместимости СПО и программной части УСПД, поставляемой его производителем.
Программная поддержка взаимодействия СПО с множеством УСПД, используемых в рамках одной КИС, требует применения специальных архитектурных и алгоритмических подходов при его разработке. Ключевым вопросом при построении архитектуры СПО с учетом его инвариантности относительно использования УСПД является обеспечение максимальной степени гибкости и эффективного способа разбиения на отдельные программные модули. Для взаимодействия (процессы сбора, конфигурирования и управления устройством) с различными УСПД в отдельные модули - модули сопряжения - следует выделить программный код, специфичный для конкретных моделей устройств.
В общем случае при обеспечении работы СПО с разными версиями программных компонентов ШПО поддерживаемых устройств для каж-
дой из версий требуется создать отдельный модуль сопряжения. На практике количество различных модулей сопряжения будет значительно меньше, поскольку через один и тот же модуль сопряжения можно работать с несколькими версиями библиотек ШПО, если их интерфейсы идентичны. Кроме того, в тех случаях, когда разные модели УСПД могут работать под управлением общего ШПО (например, используя библиотеку ЬСошр от компании «Л Кард», можно работать со многими устройствами этого производителя), для поддержки этих устройств удобно разработать один общий модуль сопряжения.
Фактически каждый модуль сопряжения представляет собой динамически подключаемую библиотеку, которая загружается в адресное пространство СПО, но может быть статически или динамически связана с программными средствами ШПО, поставляемыми разработчиком УСПД. Разработка такой библиотеки может производиться независимо от СПО. Реализация библиотечных функций каждого модуля сопряжения включает в себя вызовы отдельных функций библиотек, входящих в ШПО соответствующего аппаратного устройства.
В целях повышения надежности программного кода СПО (путем минимизации вносимых в ядро СПО изменений), а также для обеспечения универсального способа взаимодействия с различными устройствами, программный интерфейс модулей сопряжения должен быть строго определен и оставаться неизменным при создании новых модулей. Методы такого интерфейса должны соответствовать типовым операциям или группам операций, которые нужно выполнить при работе с произвольным УСПД.
Интерфейс, соответствующий данным требованиям, универсален, поскольку позволяет обеспечить взаимодействие с разнородными УСПД и является инвариантным по отношению к множеству программных методов, предоставляемых для работы с УСПД в ШПО.
Анализ функционального состава программных операций, требуемых для управления и конфигурирования УСПД различных типов при помощи соответствующего ШПО, показал целесообразность определения универсального программного интерфейса в следующем виде:
• Служебная функция;
• Инициализация;
• Возвращение настроек;
• Запуск передачи данных;
• Передача данных;
• Останов передачи данных.
Метод «Служебная функция» предназначен для получения информации о модуле сопряжения и выполнения различных служебных операций. С вызова этого метода начинается и завершается работа с модулем сопряжения.
В случае использования метода «Инициализация» выполняется подключение динамических библиотек из состава ШПО, обнаружение и запуск устройства, проведение самотестирования (если оно предусмотрено) и задание устройству параметров сбора данных, а также выполняются вспомогательные операции для организации сбора данных (например, создание в модуле сопряжения промежуточного буфера для временного хранения данных).
Метод «Возвращение настроек» необходим для согласования установленных значений настроек УСПД и тех, которые были заданы пользователем при инициализации. Установленное значение нужно передать в СПО, чтобы сообщить об этом пользователю. Например, заданное пользователем значение частоты дискретизации УСПД может не поддерживать, но поддерживать близкое к нему. Заранее определить точные значения частоты дискретизации, которые поддерживает УСПД, довольно сложно, особенно в тех случаях, когда оно содержит несколько зависящих друг от друга АЦП.
Метод «Запуск передачи данных» обеспечивает запуск сбора данных и/или выдачу управляющего сигнала. Здесь же запускается цикл сбора данных - неинтерфейсная функция, которая сообщает СПО, когда получена или передана очередная порция данных.
Когда эти сообщения приходят СПО, вызывается метод «Передача данных». Он служит для передачи в СПО данных, собранных УСПД и хранящихся в промежуточном буфере модуля сопряжения, или для записи в этот буфер данных, на основе которых устройство должно сформировать управляющий сигнал.
Методом «Останов передачи данных» прекращается сбор данных и выдача управляющего сигнала.
Все операции, необходимые для обеспечения полнофункциональной работы с любым УСПД, можно выполнить вышеперечисленными методами, т.е. предложенный программный интерфейс можно считать универсальным.
Данный интерфейс апробирован в подсистеме сбора данных программного комплекса «ACTest» (ООО «Лаборатория автоматизированных систем
(АС)») - гибкой перенастраиваемой многофункциональной контрольно-измерительной системы для автоматизации работ на исследовательских и испытательных установках, оснащенных контрольно-проверочной аппаратурой [2]. Комплекс ориентирован на пользователя, который может настроить его для своих задач, не прибегая к услугам программистов.
В компонентной архитектуре комплекса «АСТе81» выделены следующие модули:
• модуль сбора и регистрации в РВ, включающий в себя программы первичной обработки;
• набор модулей сопряжения с УСПД конкретного типа.
Совместное использование данных модулей позволяет организовать инвариантное по отношению к устройствам различных производителей функционирование измерительных систем.
Эффективность предложенного подхода к построению КИС, в которой используется универсальный интерфейс, подтверждена на кафедре «Испытания летательных аппаратов» Российского государственного технологического университета имени К.Э. Циолковского - МАТИ при создании следующих лабораторных стендов: стенда контроля качества электроэнергии, стенда-имитатора ГТД и стенда исследований винтомоторной группы. В качестве программной части КИС стендов использовался комплекс «АСТе81» и штатные программные средства, в качестве аппаратной части, в соответствии с конструктивно-технологическими требованиями, применялись УСПД различных моделей некоторых производителей.
Работа с данными лабораторными стендами входит в состав учебного процесса дисциплин кафедры «Испытания летательных аппаратов» и включает в себя весь спектр операций по получению данных и выдачи управляющих сигналов. При этом использование универсального программного интерфейса в составе СПО стендов позволяет обеспечить единый подход к организации взаимодействия с разнородными УСПД и выпол-
нению обработки результатов измерений, полученных из различных источников.
Таким образом, можно сделать следующие выводы:
1. В системах, содержащих УСПД различных моделей одного или нескольких производителей и проводящих сложную обработку собранных данных, целесообразно использовать специальное программное обеспечение на основе модулей сопряжения программных библиотек, реализующих универсальный интерфейс взаимодействия с устройствами.
2. Методы универсального интерфейса соответствуют типовым операциям или группам операций, которые требуется выполнять при работе с УСПД произвольного типа. Использование универсального интерфейса позволяет решить проблемы, обусловленные разнородностью поддерживаемых способов настройки и управления УСПД, невозможностью совместной обработки данных, полученных с различных УСПД и ШПО, рассогласованием версий СПО и ШПО, а также высокой трудоемкостью интеграции нового, не применяемого ранее оборудования в «живую» систему, обеспечивая при этом синхронную работу с разнотипными устройствами, единообразную обработку всего массива собранных данных, гибкий подход к расширению модельного ряда используемого в КИС оборудования, высокое качество и надежность функционирования системы независимо от изменения версий штатного ПО отдельных устройств.
3. Описание универсального интерфейса сопряжения СПО и устройств сбора данных не привязано к специфическим особенностям какого-либо конкретного языка программирования и основано на применении базовых механизмов операционной системы (динамически подключаемых библиотеках), что позволяет создавать модули сопряжения с помощью различных средств и сред разработки.
ЛИТЕРАТУРА
1. Рудинский И.Д. Технология проектирования автоматизированных систем обработки информации и управления. Учебное пособие. М.: «Горячая линия-Телеком». 2011.
2. Перцовский М.И. Стратегия технического перевооружения предприятий ракетно-космической отрасли // Аэрокосмический курьер. 2010. №1. С. 40-44.
Поступила 05.06 2012 г.