СТА 3/2010

равления обеспечивает детальную диагностику системы и выдачу опе ратору информации о неисправнос тях и неточностях регулировок. 6. Все функции наладки, калибровки, юстировки, тестирования работо способности и детального контроля работы установки возлагаются на ин женерный пульт, который присоеди няется к системе по линии Ethernet при проведении технического обслу живания. Структура программного обеспече ния центрального контроллера показа на на рис. 8. Для управления прибор ной шиной используется стандартный драйвер последовательного порта, ра ботающий в асинхронном режиме. Над ним реализована надстройка, учитыва ющая особенности связи по RS 485 (в частности, особенности тайминга, полудуплексного режима "master–slave" и т.д.). «Поверх» драйвера последова тельного порта работает драйвер Modbus. С шиной работают несколько программных модулей. Один из них – генератор цикла опроса – реализует циклическое чтение статусных данных всех работающих на шине пассивных устройств. Результат чтения с помощью механизма Broadcast Data Engine (BDE) становится доступным всем программным составляю щим системы. Специализи рованные программы (ме неджеры) тоже через BDE получают доступ к шине, причём передаваемые ими запросы имеют приоритет по сравнению с запросами генератора цикла опроса. Менеджер измерений в сис теме реализует циклограмму обмена управляющими па кетами с контроллерами RTU188BS, менеджер ин терфейса обеспечивает связь с операторским пультом, менеджер за даний управляет приводом и синхро низирует работу модулей системы. Блок тайминга обеспечивает контроль времени выполнения операций и при необходимости генерирует аварийные события в тайм ауте. Особую роль в системе играет модуль BDE. Этот модуль исключает прямой обмен информацией между функцио нальными модулями по принципу «все со всеми». Фактически BDE представ ляет собой почтовое отделение, кото рое распространяет между своими кли ентами информацию. Программист определяет в системе набор именован ных информационных блоков, имею щих фиксированную структуру (так называемые топики). При старте каж дый модуль регистрируется в BDE, подписываясь с помощью имён на то пики, которые он должен получать. Те перь, если один из модулей сгенериру ет топик с именем А1, все клиенты, ко торые подписались на А1, его получат. Таким образом, применение BDE поз воляет реализовывать модули системы независимо друг от друга. Модуль в та кой архитектуре не обязан знать, отку да берётся обрабатываемая информа ция и куда поступают посылаемые им данные. Проиллюстрируем сказанное примером. Данные УСО, которые включают информацию с датчиков по ложения и энкодеров, нужны менедже ру заданий и менеджеру интерфейса. Поместим эти данные в структуру USO. А, скажем, результаты измерений коэрцитивной силы необходимы ме неджеру измерений и менеджеру ин терфейса. Поскольку в системе 2 конт роллера измерений, назовём топики DATA1 и DATA2. Командные пакеты, инициирующие начало измерений, на зовём STM1 и STM2. Таким образом, мы определили 5 (на самом деле их намного больше) именованных инфор мационных пакетов. Очевидно, что, реализуя их адресную рассылку, мы очень существенно экономим ресурсы на уровне модулей, упрощаем структу ру информационных потоков и старто вую настройку модулей. Применение в качестве операцион ной системы QNX 4.25 позволило реа лизовать программное обеспечение системы в виде набора относительно простых утилит, связанных между со бой только информационно. Меха низм BDE также реализован в виде от дельной утилиты и набора клиентских функций, которые собраны в специ альной библиотеке. Программное обеспечение контрол лера измерений (рис. 9) состоит из двух асинхронно работающих основных частей – модуля связи и менеджера из мерений. Эти алгоритмы взаимодей ствуют между собой с помощью прог раммной эмуляции двухпортового ОЗУ (ДОЗУ). Асинхронность работы в усло виях однозадачной операционной сис темы обеспечивается дву мя вспомогательными программными модуля ми – очередью событий и таймерным модулем. Главный цикл програм мы содержит только один оператор – вызов обра ботчика событий. Эта функция определяет на личие событий в очереди и для каждого из них вы зывает ранее зарегистри рованный обработчик, после чего событие удаля ется из очереди. Таймер ный модуль позволяет создавать произвольное количество однократных 72 СТА 3/2010 РАЗ РА БОТ КИ / КОН Т РОЛ Ь НО ИЗМЕ Р И Т Е Л Ь НЫЕ СИС Т ЕМЫ www.cta.ru Рис. 10. Скриншот одного из рабочих экранов пультового компьютера Модуль связи Менеджер измерений Таймерный модуль ДОЗУ Входной буфер Входной буфер Очередь событий Драйвер Modbus Драйвер Modbus Драйвер RS!485 Рис. 9. Структура программного обеспечения контроллера измерений © СТА-ПРЕСС

RkJQdWJsaXNoZXIy MTQ4NjUy