Продолжая разговор о построении АСУ ТП на базе концепции открытых систем (см. "Мир ПК", № 1/98, с. 40), остановимся подробнее на устройствах, задача которых - обеспечить первичную обработку информации, поступающей непосредственно с объектов управления. А именно рассмотрим PC-контроллеры, о преимуществах которых перед их программируемыми логическими собратьями говорилось в упомянутой выше статье. Из множества последних остановимся на так называемых QNX-контроллерах - промышленных компьютерах со встроенными средствами технологического программирования, работающих под управлением ОС реального времени QNX.

Концепция открытой модульной архитектуры, реализованная в таких контроллерах, обеспечивает их взаимодействие как между собой - на основе поддерживаемых международными и региональными организациями по стандартизации промышленных протоколов, таких, например, как Profibus (http://www.profibus.com), CAN (http://www.can-cia.de), Modbus (http://www.modicon.com), Bitbus (http://vigna.cimsi.cim.ch.beug), InterBus-S (http://ibsclub.com/index.html), LonWorks (www.echelon.com), II/O Lightbus, так и с системами верхнего уровня управления - на основе стандартных сетевых средств типа Ethernet, Arcnet (http://www.arcnet.com), Token Ring и протоколов TCP/IP, IPX/SPX, NetBios и т. д.

Варианты QNX-контроллеров

Для передачи информации в QNX-контроллерах используются разнообразные шины данных: PC/104 (http://www.ampro.com/forum/wpapers/wi104.htm), VME (http://www.vita.com/vso/stds.html), CompactPCI (http://www.picmg.acompactpci.htm), STD32 (http://www.std32.com), ISA и PCI и т. д.

PC/104

В 1987 г. фирмой Ampro в качестве аппаратной платформы для создания компактных встраиваемых систем была разработана спецификация PC/104. В 1992 г. IEEE подготовила проект стандарта P996.1 под названием Compact Embedded PC Modules (http://standards.ieee.org/catalog/drafts.html). Для поддержки PC/104 организован консорциум PC/104 (http://www.controlled.com/pc104, e-mail - pc104@ix.netcom.com), в который входит более 180 фирм, в том числе 125 производителей оборудования.

Характерными чертами контроллеров, выполненных по этой спецификации, являются:

  • компактные модули (90Ё96 мм);
  • удобная стековая конструкция шины, позволяющая уменьшить стоимость и размер изделий за счет отказа от использования громоздких объединительных панелей и корзин;
  • использование надежных 64- и 40-контактных штыревых разъемов для соединения модулей;
  • низкое энергопотребление каждого модуля (1-2 Вт), обусловленное использованием шинных формирователей с выходным током 4 мА, что позволяет применять эти модули в закрытых объемах без принудительного охлаждения.

Одна из реализаций QNX-контроллера на шине PC/104 описана в качестве примера в статье "Построение АСУ ТП на базе концепции открытых систем" (см. "Мир ПК", № 1/98, с. 44).

RTP 6800

Контроллер RTP 6800, как и другие изделия фирмы Real Time Products, США (http://www.rtpcorp.com), удовлетворяет высоким требованиям радиационной безопасности по классу 1E, установленным Комиссией по ядерному регулированию.

RTP 6800 включает в себя:

  • встроенный контроллер для приложений пользователя;
  • операционную систему QNX 4 и QNX TCP/IP в ПЗУ;
  • процессор 486 DX;
  • ОЗУ, расширяемое от 4 до 16 Mбайт;
  • статическое 512-Kбайт ОЗУ для приложений;
  • встроенный контроллер Ethernet (10BaseT/тонкий кабель);
  • средства поддержки TCP/IP;
  • два последовательных порта;
  • универсальное шасси RTP;
  • совместимые с RTP платы ввода-вывода аналоговых и цифровых сигналов и другие платы специального назначения.

Устройство RTP 6800 монтируется на универсальном шасси RTP 7431/60 вместе с RTP-платами ввода-вывода специального назначения. В итоге получается прочная высокопроизводительная платформа, хорошо приспособленная для производственной среды.

Приложения могут разрабатываться на компьютерах, работающих под управлением QNX, а затем переноситься на нужный контроллер RTP 6800 по сети.

Приложение записывается в статическое ОЗУ контроллера, работающее от батарейки, и затем выполняется локально. Универсальное шасси RTP 7431/60 имеет 20 разъемов расширения, и при использовании RTP 6800 остаются свободными еще 16 разъемов для устройств ввода-вывода. Для увеличения возможностей ввода-вывода можно состыковать до 8 шасси, получив таким образом возможность установки 156 плат ввода-вывода. В результате при высокой надежности будет обеспечена низкая стоимость одного канала обмена.

Стандарт VME

Шина VME является одним из первых и наиболее распространенных как в США, так и в Европе стандартов магистрально-модульных систем, получивших признание де-юре (стандарты IEC/821, ANSI/1014, IEEE/1014) и де-факто. Основными областями применения шины VME являются промышленные приложения, встраиваемые рабочие станции, научные и военные системы, встраиваемые суперкомпьютеры (по данным Роя Алдермана, исполнительного директора VITA - VMEbus International Trade Assotiation (http://www.vita.com)). С появлением микросхем, аппаратно реализующих преобразование данных VME-PCI (http://www.tundra.com), быстро растет предложение процессорных VME-модулей на базе процессоров Intel, что и позволяет создавать QNX-контроллеры.

В качестве примера рассмотрим QNX-контроллер VС5 фирмы OR Industrial Computers. Этот контроллер формата 3U включает в себя:

  • процессор от Pentium-100 до Pentium-200;
  • память типа EDO от 2 до 64 Мбайт;
  • флэш-память до 16 Мбайт;
  • LCD/VGA-адаптер;
  • интерфейсы флоппи, IDE, SCSI-2;
  • контроллер Fast Ethernet;
  • два последовательных и один параллельный канал;
  • сторожевой таймер;
  • шины PCI (до 132 Мбайт/с) и PC-104.

Стандартный температурный диапазон - от 0 до +70О, расширенный - от -40 до +85О. Для поддержки программирования флэш-памяти поставляется пакет Embedded Kit for VС5 с драйвером Efsys.vс5, который может определять тип флэш-памяти, используемой в конкретном контроллере.

Другим примером может служить QNX-контроллер на базе оборудования фирмы XYCOM. Наиболее производительной процессорной платой этой фирмы в настоящее время является плата XVME-655 с процессором Intel Pentium-233 MMX. Для поддержки работы в QNX фирма XYCOM поставляет библиотеку QNX 4.x Software Support Library, на основе которой реализованы драйверы для пакета ISaGRAF и обмен данными со SCADA-системами RealFlex, Sitex.

QNX-контроллеры в стандарте VME поставляются многими фирмами, такими как OR Industrial Computers (http://www.or-computers.com), XYCOM (http://www.xycom.com), VMIC (http://www.vmic.com), Logical Design Group и др.

Шина CompactPCI

Основана на стандартной электрической спецификации PCI и реализована на стандартных микросхемах PCI, но использует стандартные крейты формата 3U и 6U (аналогичные VME) и специальный штыревой 235-штырьковый пятирядный разъем. Разработка стандарта CompactPCI была начата в конце 1994 г. фирмой Ziatech Corporation под эгидой PICMG - PCI Industrial Computers Manufacure"s group (http://www.picmg.com). В результате работы нескольких фирм, таких как Digital Equipment, GESPAC (http://www.gespac.com), Teknor (http://www.teknor.com), Pro-Log, I-Bus, VMIC и Ziatech, появилась спецификация CompactPCI. Основными областями применения шины CompactPCI являются программно-аппаратные комплексы, используемые в телекоммуникациях, промышленности и для военных целей. Одним из важнейших, с точки зрения потенциального пользователя, свойств CompactPCI является возможность "горячей замены" модулей.

В качестве примера рассмотрим QNX-контроллер на базе крейта TEK-CPCI 1201 и процессорного модуля TEK-CPCI-1000 фирмы Teknor Industrial Computers, Inc. Этот контроллер имеет пять разъемов расширения 6U, три разъема 3U, до двух источников питания, конвекционное охлаждение и обдув, ударо- и виброустойчив и может использоваться в жестких климатических условиях. Процессорный модуль TEK-CPCI-1000 поставляется в формате 6U с процессором до Pentium MMX-233, памятью до 512 Мбайт обычного типа (или EDO), флэш-памятью до 4 Мбайт, флоппи- и EIDE-интерфейсами, 10/100Base-T Ethernet-контроллером, двумя последовательными каналами, параллельным портом, двумя USB-портами (http://www.teleport.com/~usb), клавиатурой, мышью.

STD32

Наиболее интересной реализацией этого стандарта является контроллер STD32 Star System фирмы Ziatech (http://www.ziatech.com), базирующийся на мультипроцессорной архитектуре, определенной для шины STD 32. Такая архитектура позволяет объединить до семи процессоров x86. Эти процессоры могут разделять память, видеоадаптеры, платы ввода-вывода. Процессоры взаимодействуют друг с другом и разделяют информацию посредством шины STD32, используя либо механизм общей памяти, либо NetBios, либо DDE-протокол. На каждом процессоре выполняется самостоятельная копия QNX, которая загружается со встроенной флэш-памяти, жесткого диска или дискеты. Фирма Ziatech поставляет пакет программ QNX Device Driver Package для поддержки большинства плат ввода-вывода с интерфейсом STD32.

Все драйверы включают исходные тексты, позволяющие разработчикам модифицировать драйверы для собственных приложений. Контроллеры фирмы Ziatech интересны не только большим числом поставляемых плат ввода-вывода, коммуникационного оборудования, разнообразными корпусами, cнабженными 3-24 разъемами расширения, но также и специальными встроенными средствами "горячей замены". Эта возможность позволяет в процессе работы контроллера без потери работоспособности удалять или вставлять источники питания, модемы, платы X.25/Frame Relay, модули с интерфейсом T1/E1.

ISA и PCI

Контроллеры с шиной ISA или PCI широко используются в России из-за своей относительно невысокой стоимости.

В качестве примера рассмотрим недорогой контроллер на базе оборудования фирм Advantech (шасси и процессорный модуль, http://www.advantech-usa.com) и ComputerBoards (платы ввода-вывода, http://www.computerboards.com).

Шасси с шестью разъемами расширения IPC-6806 фирмы Advantech включает шесть полноразмерных (половинных для 6806S) разъемов ISA (или PCI), источник питания 150 Вт, прижимную планку-амортизатор для устанавливаемых плат, вентилятор охлаждения со сменным противопылевым фильтром и обладает возможностью установки двух 3,5-дюймовых накопителей.

Среди множества плат ввода-вывода фирмы ComputerBoards выделим семейства DAS08, DAS16, а также платы цифрового ввода-вывода. DAS08 включает в себя большой набор недорогих 8-канальных плат сбора данных, куда входят изделия с программируемым диапазоном, таймером и цифровым вводом-выводом.

В семейство DAS16 входят недорогие платы расширения для 16-канального аналогового ввода. Платы этой серии поддерживают скорость обмена в диапазоне от 100 кГц до 1 МГц. Эти платы многофункциональны и имеют аналоговые входы, цифровой ввод-вывод, аналоговый выход и три 16-разрядных счетчика на одной плате.

Цифровой ввод-вывод обеспечивают недорогие платы расширения цифрового ввода-вывода с шиной ISA, причем специальные конфигурации поддерживают до 192 линий.

Для защиты от резких колебаний электропитания ComputerBoards предлагает модули цифрового ввода-вывода с изоляцией на твердотельных реле. Монтажный каркас связывает эти отдельные модули с цифровыми платами. Для подключения средней нагрузки, которая не требует изоляции, оригинальные платы ComputerBoards с прямым управлением являются идеальным недорогим решением. Существуют конфигурации плат счетчика/таймера с 5, 10 и 20 каналами, обеспечивающие экономичный подсчет событий, измерение частоты, один счетный или частотный выход. Для программирования плат ввода-вывода ComputerBoards можно использовать программу ISaGRAF.

Ряд фирм поставляют QNX-контроллеры на базе шин ISA или PCI. Это устройства VNS0686 фирмы Adastra Systems (http://www.adastra.com), VIPer807 фирмы Teknor Industrial Computers, 1747-OC Open Controller Allen-Bradley.

Программирование QNX-контроллеров

Существуют разнообразные инструментальные средства программирования для разработки ПО: ISaGRAF, CoDeSys и др. в стандарте IEC 1131-3 (http://www.iec.ch). Для унификации различных "фирменных" средств программирования контроллеров международный электротехнический комитет (IEC) разработал стандарт IEC 1131-3, описывающий технологические языки программирования: графические (SFC, LD, FBD) и текстовые (IL, ST).

Язык последовательных функциональных схем (SFC) описывает логику программы на уровне чередующихся функциональных блоков и условных переходов. Функциональные блоки представляют собой действия, которые должны быть исполнены, в том числе и параллельно, а условные переходы задают условия, которые должны выполняться для перехода к следующему функциональному блоку. Инструкции для функциональных блоков и условных переходов могут быть написаны на одном из четырех других языков.

Язык релейных диаграмм (LD) используется для описания различных логических выражений. Он реализует такие элементы, как открытый и закрытый контакт, виток. Кроме того, реализованы функции и функциональные блоки.

Язык функциональных блоковых диаграмм (FBD) дает возможность пользователю построить комплексную процедуру, состоящую из различных функциональных блоков.

Язык структурированного текста (ST) относится к классу языков высокого уровня и по мнемонике похож на Паскаль; используется для создания процедур со сложной логикой.

Язык инструкций (IL) относится к классу языков низкого уровня; позволяет создавать высокоэффективные и оптимизированные функции. Этот язык имеет смысл использовать для написания наиболее критичных мест программы.

Одной из самых распространенных программных реализаций IEC 1131-3 является инструментальная система ISaGRAF (фирмы CJ International, Франция), получившая признание свыше 80 компаний, среди которых ABB, BMW, General Motors, Green Spring, Motorola, PEP Modular Computers, Phoenix, Themis Computer и др.

Пакет ISaGRAF содержит систему разработки Workbench и систему исполнения Target.

Система Workbench предназначена для разработки прикладных задач, исполняемых под управлением ядра ISaGRAF, и устанавливается на компьютере под управлением Windows 3.1, 95, NT. Система разработки использует основные методы структурного программирования, которое дает возможность пользователю описать автоматизируемый процесс в наиболее легкой и понятной графической форме.

Система разработки компилирует проект в системно-независимый код (Target Independent Code, TIC) - это псевдокод, специально оптимизированный для языка структурированного текста (ST). TIC-код загружается в целевую машину для исполнения с помощью RS-232, RS-485, Ethernet TCP/IP.

Система исполнения либо загружается, либо записывается в ПЗУ целевой машины. Она включает в себя ядро и набор модулей связи.

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

ISaGRAF предоставляет возможность разрабатывать процедуры с использованием языка Cи. Эти процедуры можно вызвать из любого описанного выше языка.

Система исполнения Target для QNX осуществляет несколько независимых процессов:

  • qisaker - ядро системы исполнения;
  • qisatst - связь с системой разработки через последовательный порт;
  • qisanet - связь с системой разработки через Ethernet TCP/IP;
  • qisarfl - доступ к базе данных пакета ISaGRAF из SCADA-систем (RealFlex, Sitex).

Такая архитектура позволяет запускать несколько задач связи с одним и тем же ядром системы исполнения или до четырех ядер системы исполнения с одной и той же задачей связи. Таким образом, работа осуществляется через один и тот же порт с четырьмя ядрами системы исполнения.

Прикладная задача ISaGRAF работает строго по временным циклам, продолжительность которых задается при компиляции задачи. Программы и процедуры прикладной задачи могут располагаться в трех секциях: Begin, Sequential, End. В начале временного цикла всегда целиком выполняется Begin, в конце вся секция End. Оставшееся в промежутке время выделяется для выполнения секции Sequential. Секции Begin и End отвечают за обновление переменных ввода-вывода. Такая схема гарантирует работу в рамках одного временного цикла только с одной копией переменных ввода-вывода.

Пакет ISaGRAF допускает интеграцию созданных пользователем драйверов устройств ввода-вывода в систему исполнения ISaGRAF. Для этого предусмотрена библиотека разработки драйверов ввода-вывода. Различные драйверы идентифицируются по уникальному номеру, который определяется разработчиком драйвера. Кроме того, отдельные параметры драйвера могут быть открыты для доступа из системы разработки (например, номер гнезда контроллера, в который установлена плата, или диапазон измеряемых значений). Для того чтобы перенести уже написанную программу с одного контроллера на другой, ничего не надо программировать, достаточно переопределить модули ввода-вывода с помощью специальной опции в системе разработки. Пакет ISaGRAF имеет дело с абстрактными переменными ввода-вывода, никак не привязанными к конкретным устройствам ввода-вывода.

* * *

Описав QNX-контроллеры на базе наиболее широко распространенных шин, а также средства их поддержки, заметим, что выбор того или иного устройства зависит от конкретной системы, технических требований и не в последнюю очередь - отфинансовых возможностей. n

ОБ АВТОРАХ: Сергей Викторович Золотарев - канд. техн. наук, технический директор НЦ "Науцилус",

Павел Николаевич Кабанов - канд.физ.-мат.наук, главный специалист НЦ "Науцилус"

Контактный телефон: (095) 939-58-72, e-mail: root@nautsilus.ru, http://www.nautsilus.ru