Monitoring Systemy czasu rzeczywistego
w natarciu.
Przetwarzanie informacji w czasie rzeczywistym lub zbliżonym do rzeczywistego jest coraz bardziej rozpowszechnione i wykorzystywane w różnorodnych urządzeniach. W artykule opisano najpopularniejsze systemy czasu rzeczywistego, przy czym nie ograniczono się jedynie do tych, które stosowane są w układach automatyki monitoringu.
Pomimo popularności systemów monitoringu i czasu rzeczywistego (Real Time Operating Systems - RTOS), wiedza o nich wcale nie jest powszechna. Wynika to z faktu, że są one wykorzystywane w różnych aplikacjach jako jedna z najbardziej podstawowych, zwykle niedostępnych dla użytkownika warstw oprogramowania. Systemy monitoringu RTOS znajdują zastosowanie w urządzeniach trafiających praktycznie do całego przemysłu, przy czym najczęściej stosuje się je w sterowaniu maszyn oraz kontroli procesów.
ODROBINA HISTORII
RTOS monitoring - wykorzystywane są w przemyśle od prawie 40 lat. Dawniej maszyny wolno stojące wyposażane były w dedykowane oprogramowanie tego typu. Miały one zazwyczaj mały pulpit monitoring - operatorski, złącze RS-232, które umożliwiało wgranie oprogramowania oraz układy wejścia-wyjścia pozwalające na komunikację z innymi elementami systemu. Dalszy rozwój maszyn produkcyjnych wymusił jednak zmiany na tyle duże, że produkowane zgodnie z tą koncepcją systemy stały się przestarzałe i niekompatybilne z nowszymi rozwiązaniami monitoringu.
Za datę otwierającą erę właściwego rozwoju monitoring- RTOS można przyjąć rok 1992, kiedy powstało konsorcjum o nazwie PC/104. Początkowo jego działania skupiały się na tworzeniu aplikacji do zastosowań militarnych i medycznych. Opracowano m.in. standard układu mikroprocesorowego, który umieszczony na płycie głównej systemu monitoring, mógł stanowić podstawę budowy urządzenia o powierzchni mniejszej niż ldm2. W miarę upływu czasu konsorcjum zwróciło uwagę również monitoring na techniki multimedialne. W 1993 roku opracowano standard POSIX 1003. Ib, który dotyczył monitoring systemów czasu rzeczywistego.
Aktualnym trendem jest m.in. wykorzystanie systemów monitoring - RTOS w sterownikach PLC, które komunikują się głównie poprzez sieci Ethernet, w tym na poziomie przedsiębiorstwa. Ponieważ monitoring systemy te wspierają również takie techniki jak .Net, XML czy OPC, ułatwione jest ich programowanie, jak też możliwe stało się stworzenie połączonych systemów maszyn współpracujących ze sobą.
KLASYFIKACJA Monitoring RTOS
W bardzo ogólnej klasyfikacji systemów operacyjnych wyróżnia się ich dwie klasy - sterowane zdarzeniami albo czasem. W przypadku pierwszych istnieje ryzyko przeciążenia systemu, które spowodowane może być dużą liczbą napływających danych zewnętrznych i koniecznością ich przetwarzania. Systemy operacyjne sterowane czasem działają w rytm zegara czasu rzeczywistego i nie są podatne
na tego typu przeciążenia, co powoduje, że stosowane są one m.in. w tych gałęziach przemysłu, gdzie wymagane jest zachowanie wysokiej niezawodności przy dużych ilościach przetwarzanych informacji. Grupę tego typu oprogramowania dzieli się również na dwie klasy. Pierwszą stanowią RTOS określane jako soft real-time sys-tems, w przypadku których zadania krytyczne czasowo otrzymują pierwszeństwo przed pozostałymi.
Innymi słowy, monitoringi wykonywane są one tak szybko, jak to jest możliwe. Nie oznacza to jednak, że czas ukończenia zadania jest ustalony, gdyż zależy od liczby równolegle przetwarzanych danych. Zaletą tego typu RTOS jest możliwość łatwego łączenia ich z systemami komputerowymi. Ponieważ nie gwarantują one, że zadania zostaną wykonane w określonym terminie, ich zastosowanie w przemyśle jest ryzykowne, ale znajdują one szereg innych zastosowań - np. w urządzeniach multimedialnych. Drugą grupą RTOS są systemy hard real-time systems monitoring (określane jako rygorystyczne), w których zadania muszą być ukończone w określonym czasie. Osiąga się to poprzez zaimplementowanie w nich odpowiednich mechanizmów systemowych. Rygorystyczne RTOS wykorzystują zwykle małą ilość bardzo szybkiej pamięci operacyjnej, w której przechowywanych jest niewiele zadań naraz. Spotkać można również trzecią, nieformalną klasę monitoring RTOS, określaną jako firm real-time systems. Systemy sprzętowo-programowe do niej zaliczane zapewniają zarówno cechy systemu hard, jak i soft real-time.
Systemy operacyjne monitoring - czasu rzeczywistego sklasyfikować można również pod względem sposobu tworzenia aplikacji dedykowanych. Sterowniki z RTOS mogą pozwalać na uruchamianie i wykonywanie dedykowanych aplikacji bez możliwości interakcji z systemem operacyjnym albo też mogą być określane jako embedded RTOS (o tym w dalszej części artykułu). Innym istotnym wyróżnikiem systemu czasu rzeczy-
wistego jest jego przeznaczenie - do pracy jednoprocesorowej (jednoukła-dowej) lub rozproszonej. W szczególności ostatnie z wymienionych systemów stają się coraz popularniejsze. Głównymi tego powodami jest możliwość współdzielenia przez tego typu RTOS często bardzo kosztownych zasobów systemowych monitoring. Ponadto zapewniają one efektywne i wydajne wykorzystanie mocy obliczeniowej platform złożonych z wielu jednostek obliczeniowych - w tym połączonych ze sobą przez sieć, a także charakteryzują się dużą niezawodnością pracy. Obliczenia wykonywane są współbieżnie z zachodzącymi procesami zewnętrznymi, dzięki czemu możliwa jest kontrola, monitoring sterowany lub reakcja na zdarzenia zewnętrzne.
DETERMINISTYCZNY PRZEDE WSZYSTKIM
Tym, co odróżnia systemy przetwarzania informacji w czasie rzeczywistym od programowania ogólnego zastosowania, jest przede wszystkim wymóg dotyczący niezawodnej pracy oraz deterministycznych reakcji na występujące zdarzenia. Działanie RTOS opiera się o wielopoziomowy mechanizm przerwań priorytetowych, który odpowiada za reakcję na sygnały pochodzące z procesów według wartości ich priorytetów. Drugim podstawowym elementem jest tutaj zegar czasu rzeczywistego, bez którego nie byłoby możliwości realizacji i kontroli zadań warunkowanych czasowo. Ponieważ RTOS coraz częściej stosowane są do kontroli skomplikowanych procesów fizycznych, gdzie zachodzi konieczności kontroli zmiany w czasie wielu czynników, opóźnienie w wykonaniu żądanego zadania może wywołać katastrofalne w skutkach konsekwencje. Przykładem takich zastosowań jest sterowanie elektrownią lub systemem kontroli lotów.
Zarówno Windows, jak i Linux nie pracują w czasie rzeczywistym. Ze względu na ten fakt nie nadają się one do kontroli procesów krytycznych. Gdyby urządzenie pracujące pod kontrolą zwykłych Windowsów otrzymało sygnał awaryjnego wstrzymania pracy urządzenia, mógłby przyjąć te dane i zapisać je do pliku wymiany, realizując w tym czasie inne zadania. Spowodowałoby to brak reakcji na awarię lub zbyt wolne zadziałanie i mogłoby prowadzić do powstania zagrożenia.
Należy pamiętać, że definicja terminu real time w dużym stopniu zależy od rozpatrywanej aplikacji. Wzmiankowana „szybkość" reakcji systemu jest pojęciem względnym i ma różne znaczenie. Rozważmy np. układ odpowiedzialny za kontrolę przepływu i pomiaru poziomu cieczy w dużych zbiornikach (np. w rafinerii). Wydawać by się mogło, że przy stosunkowo niskim spodziewanym czasie reakcji zastosowanie do kontroli systemu RTOS jest bezpodstawne. Jednakże w tym wypadku określenie real time nie oznacza „szybki", lecz „przewidywalny", co zapewnia wykluczenie zjawisk niede-terministycznych, które są tutaj niedopuszczalne.
Istotną kwestią, która jest również problemem w przypadku systemów takich jak Windows, to liberalny sposób podziału zasobów. Priorytety różnych zadań są w tym systemie dynamicznie zmieniane w sposób nieznany użytkownikowi. Nie można przewidzieć, który z procesów zostanie wykonany w jakim czasie ani w jakiej kolejności będą one przetwarzane. W systemach czasu rzeczywistego priorytety są przypisane do określonych zadań i w oparciu o nie przydzielane są zasoby. Zarządzanie nimi jest o wiele bardziej restrykcyjne, co powoduje skuteczne eliminowane opóźnień. Oczywiście i tutaj zdarzają się niebezpieczne sytuacje - np. możliwość powstania zwłoki wskutek braku odpowiedniego rejestru pamięci dla danego procesu, w chwili gdy uruchomione programy będą potrzebowały więcej zasobów niż jest dostępnych w systemie.
PRZYKŁADOWE RTOS
Jednym z najbardziej popularnych komercyjnych systemów RTOS jest QNX firmy QNX Software Systems. Jest on obecnie dostępny dla wielu platform sprzętowych, w tym x86, PowerPC, ARM, StrongARM, XScale, MIPS oraz SH-4. Sukces oprogramowania QNX wynika z jego niezawodności oraz kompatybilności z architekturą PC, z myślą o której był on od początku tworzony. System rozwijany jest zgodnie ze standardem POSIX 1003. Ib, razem z nim dostarczany jest okienkowy interfejs graficzny Photon microGUI. QNX składa się z mi-krojądra, w którym zaimplementowane jest szeregowanie procesów, komunikacja międzyprocesowa, obsługa prze -rwań i niskopoziomowa komunikacja sieciowa. Reszta elementów instalowana jest w postaci opcjonalnych modułów. Powoduje to, że mikro jądro jest małe i szybkie, dzięki czemu system ten może być stosowany w środowisku wielokomputerowym i w zastosowaniach wbudowanych. Warto zaznaczyć, że oprogramowanie bazuje na nietypowym rozwiązaniu, jakim jest brak podziału na operacje systemu i operacje użytkownika.
Przemysłowe komputery mobilne w solidnej walizkowej obudowie ze zintegrowanym 1 5" ekranem LCD oraz pełno wymiarową klawiaturą. Taka konstrukcja pozwala na zamontowanie w obudowie standardowej płyty głównej (ATX) lub magistrali pasywnej i wzbogacenie komputera o standardowe karty rozszerzeń (ISA/PCI). Daje to nieograniczone możliwości budowania zaawansowanych przenośnych stacji pomiarowych i diagnostycznych. W zestawie poręczna walizka.
□Sterowniki PLC o architekturze PC
Inteligentne moduły pomiarowo-sterujące do pracy zdalnej w sieci izolowanego RS-485 (pojedyncza skrętka, 11 5 kbps). Montaż na szynie DIN lub naścienny. Wejścia-wyjścia cyfrowe i analogowe, liczniki, przekaźniki, przekaźniki mocy, zasilacze, radiomodemy, miniaturowe komputery PC.
□Komputery przemysłowe
Przemysłowe komputery panelowe, rackowe, naścienne,
wolnostojące, HMI, pyło i wodoodporne, wersje z monitorem LCD,
ekranem dotykowym, klawiaturą foliową,
gładzikiem. Kioski informacyjne wewnętrzne
i zewnętrzne. Podzespoły: obudowy
przemysłowe (pyłoszczelne,
antywstrząsowe), klawiatury (wodoszczelne,
podświetlane), zasilacze, monitory, ekrany
dotykowe, dyski Flash.
□Jednopłytkowe komputery PC do zastosowań wbudowanych
PC/104, NANO, WAFER, NOVA; procesory od 386SX do P IV, niski pobór prądu, niewielkie rozmiary, bogate zasoby,
□ Karty ISA i PCI
Karty akwizycji danych, we-wy analogowych i cyfrowych, akwizycji obrazów (frame grabbers), sterowania napędów, wieloportowe Rs232 /422/485, GPIB (IEEE488), komputerów PC
0Miniaturowe komputery PC
Temp. Pracy -25' ... +75', zasilanie 10...30V DC, RS485.232,
Ethernet, pamięć FLASH i SRAM, bogaty wybór
modułów we-wy pracujących w sieci; idealne
jako konwertery protokołów, sterowniki
kontrolno-pomiarowe, bezobsługowe
rejestratory danych, sieciowe serwery
urządzeń z interfejsem RS232/485
Profesjonalne kamery CCD i systemy wizyjne
Profesjonalne kamery przemysłowe w standardach: CameraLink,
FireWire, Gigabit Elhernet oraz
analogowym. Projektowanie,
konstruowanie i programowanie
systemów wizyjnych (automatyzacja
procesów, rozpoznawanie obrazów).
są między zadaniami jest realizowany równomiernie. Na bazie QNX opracowywane są obecnie systemy SCA-DA (Supervisory Control and Data Acquisition), OLTP (On-Line Trans-action Processing), jak też MCS (Mis-sion Critical Systems). W wielu dziedzinach system ten wykorzystywany jest jako alternatywny dla systemów UNIX i NetWare.
Inaczej zbudowano system Windows CE firmy Microsoft, który jest zoptymalizowany dla urządzeń o niewielkiej ilości pamięci - jego jądro wymaga do uruchomienia około 1MB
RAM. System ten obsługuje kilkadziesiąt rodzajów procesorów, począwszy od Hitachi SH3, NEC VR4102, aż po Intel 486 i Pentium. Microsoft opracował również specjalną wersję Windows CE for Automotive dedykowaną do układów elektronicznych urządzeń instalowanych w samochodach. Na razie rola tego systemu ogranicza się do zarządzania pokładowym sprzętem audio, takim jak radioodbiorniki i odtwarzacze CD, ale ambicje programistów są duże. Planują obsługę usług powiadamiania o uszkodzeniach sprzętowych (np. o poziomie oleju itp.), jak również umożliwienie kierowcy wydawania głosowych dyspozycji dotyczących trasy przejazdu oraz przekazywanie lub odbiór poczty elektronicznej. System znajduje już zastosowanie w samochodach firm takich jak BMW, Fiat, Honda, Toyota.
Windows XP Embedded, analogicznie jak Windows CE, charakteryzuje się architekturą modułową i pozwala na wybór komponentów, jakie mają być zainstalowane wraz z systemem danego urządzenia. Windows
Embedded znajduje zastosowanie u producentów takich urządzeń, jak bankomaty i sprzęt komputerowy. Na rynku dostępne są również terminale, które stanowią tanie w eksploatacji, graficzne stanowiska pracy. Ich zadaniem jest przede wszystkim udostępnianie centralnie przetwarzanych aplikacji, jak też lokalne uruchamianie prostych programów usługowych. Systemy te zyskują popularność w wielu zastosowaniach w przemyśle oraz są coraz częściej spotykane na lotniskach, dworcach i w urządzeniach przenośnych.
Systemy komercyjne nie są jedynymi, które umożliwiają pracę w czasie rzeczywistym. Na rynku dostępnych jest szereg systemów open source, takich jak eCos, RTLinux, FreeRTOS, Phoenix-RTOS czy też Nut/OS. Ten ostatni jest prostym systemem operacyjnym czasu rzeczywistego zbudowanym, podobnie jak jego komercyjne odpowiedniki, na bazie modułów. Zapewnia współbieżną wielowątko-wość, dynamiczne zarządzanie pamięcią i kolejkowanie zdarzeń.
Obsługuje strumieniowe funkcje I/O, protokoły sieciowe HTTP, TCP/IP, UDP, ARP, ICMP oraz system plików FAT dla pamięci DataFlash. Jego silnym atutem jest otwartość i dostępność źródeł. Coraz większą liczbę zwolenników zyskują również systemy, takie jak RTLinux czy Java 2ME. Są one dostępne w wersjach przeznaczonych dla wielu popularnych mikroprocesorów i mikrosterowników, jak też mogą pracować na komputerach PC. Przykładem RTOS, który ma zastosowanie wyłącznie na platformie PC, jest xPC pracujący jako rozszerzenie popularnego oprogramowania Matlab.
WBUDOWANE RTOS
Ważną grupę produktów stanowią systemy monitoringu wbudowane, czyli em-bedded RTOS (eRTOS). W ich przypadku należy mówić o wykorzystaniu platform sprzętowo-systemowych, gdyż użyte oprogramowanie jest często bezpośrednio związane ze sprzętem. Najprostszymi platformami tego typu mogą być stosowane w przemyśle aplikacje niskobudżetowe, jak też te o niskim poborze mocy. Mogą to być urządzenia przechowujące system w pamięci ROM, wykorzystujące 8- i 16-bitowe procesory i charakteryzujące się pamięcią operacyjną ograniczoną do kilku kilobajtów.
Wraz ze wzrostem wykorzystywania systemów monitoring eRTOS wzrosły wymagania co do ich bezpieczeństwa, jak też mocy obliczeniowej. W związku z tym obecnie wykorzystuje się coraz częściej nowoczesne, wydajne platformy sprzętowe. Urządzenia z monitoring eRTOS budowane są zazwyczaj modułowo i charakteryzują się konstrukcją pozbawioną elementów mechanicznych, takich jak dyski twarde i wentylatory. Wykorzystywane w nich systemy zapewniają wielozadaniowość i wielodostęp oraz podział czasu z wywłaszczaniem, co umożliwia komunikację układów wejścia-wyjścia niezależne od platformy sprzętowej. Pozwalają one na uruchamianie programów na różnych poziomach dostępu. Przykładem może być opracowywany w IMMOS w Warszawie projekt, który ma wykorzystywać architekturę IA32, PowerPC lub ARM.
Inną, komercyjnie dostępną platformą przeznaczona dla systemów eRTOS jest karta procesorowa PCA-6185 (Advantech), która obsługuje procesory Intel Pentium4, 64-bitową magistralę PCI-X gigabito-wą sieć Ethernet. Ponadto zintegrowano w niej 4GB pamięci RAM i układ sprzętowego monitorowania parametrów pracy systemu. Jako uzupełnienie systemu służyć może opcjonalna karta SNMP-1000, która umożliwia zdalny dostęp do parametrów pracy systemu i zdalne zarządzenie poprzez SNMP/HTTP.
KTÓRY WYBRAĆ?
Wybór odpowiedniego systemu monitoring eRTOS jest zależny od wymagań aplikacji, cech platformy systemowej i innych czynników. Wiele firm używa w swoich produktach kilku różnych systemów eRTOS. Przykładem może być Rockwell Collins - producent wyposażenia dla wojsk lotniczych, który swoją pracę opiera na LynxOS, Greenhills Integrity oraz Windows XP Embedded. Każdy z nich ma, zdaniem producenta, zalety i wady, ale wspólnie zapewniają one możliwość dostosowania produktu końcowego do oczekiwań klienta. Podobnie jak wiele innych firm, Rockwell Collins równolegle rozwija swój własny system RTOS zwany VMOS (Yirtual Machinę Operating System monitoring),
I który ma sprostać wymaganiom stawianym jko monitoring w oprogramowaniu przeznaczonemu dla lotnictwa.
Producenci popularnych systemów operacyjnych, aby nie stracić potencjalnego rynku, wprowadzili do sprzedaży specjalne wersje ich oprogramowania, przeznaczone do pracy jako monitoring RTOS. Przykładem są systemy Windows CE, Windows XP Embedded, eCOS i LynxOS. Aby zredukować koszty, wiele firm decyduje się na platformy RTOS, które bazują na tańszych wersjach procesorów lub też zawierają niewiele pamięci, co przekłada się na konieczność tworzenia wysoce zoptymalizowanego i wydajnego oprogramowania sterującego. Bardzo często zdarza się, że w ramach platformy sprzętowej nie zaimplementowano np. jednostki obliczeniowej zmiennoprzecinkowej, co podnosi wymaganie co do jakości utworzonego kodu oprogramowania.
A W PRZYSZŁOŚCI...
Obecnie dostępnych jest około 80 systemów monitoringu RTOS lub mających znamiona systemów operacyjnych czasu rzeczywistego. Część z nich to kompletne systemy operacyjne, w skład których wchodzi jądro, sterowniki 1/ O, system plików, usługi sieciowe itp., niektóre dostępne są jako open source, niektóre płatne. Ceny zakupu mogą być przy tym różne i wynosić od około 250 zł do ponad 120 tys. zł, przy czym zależy to często od szczegółów ich licencjonowania i dodatków. Chociaż wiele tego typu rozwiązań będzie nadal powstawało, część z nich z pewnością zostanie skutecznie wyparta przez systemy firmy Microsoft, szczególnie Windows CE, którego najnowsza wersja zyskuje bardzo na popularności.
Marcin Kostępski
|