mgr inż. Mariusz Postół SYSTEM KONTROLI URZĄDZEŃ

Transkrypt

mgr inż. Mariusz Postół SYSTEM KONTROLI URZĄDZEŃ
systemy czasu rzeczywistego, systemy pomiarowe,
nawigacja, lotnictwo, inżynieria programowania
mgr inż. Mariusz Postół•
SYSTEM KONTROLI URZĄDZEŃ RADIONAWIGACYJNYCH
Artykuł zawiera opis wybranych zagadnień związanych z realizacji projektu, konstrukcją oprogramowania
i sprzętu komputerowego systemu przeznaczonego do kontroli z powietrza naziemnych urządzeń
radionawigacyjnych, systemów łączności i radarów (nazwanego CFIS). Dyskusję poprzedzono opisem
zastosowania oraz podstawowych jego funkcji. Skoncentrowano się na omówieniu najistotniejszych czynników,
które ze względu na specyfikę zastosowania było przedmiotem szczególnie głębokiej analizy na etapie
opracowywania projektu. W artykule przedstawiono wybrane wyniki tej analizy od strony konstrukcji
oprogramowania oraz krótki opis przyjętych rozwiązań.
1. WSTĘP
1.1 PRZEZNACZENIE
Komputerowy system kontroli lotniczych urządzeń radionawigacyjnych przeznaczony jest
do:
•
•
•
•
•
pomiaru z powietrza i rejestracji wartości wszystkich istotnych sygnałów,
obrazowania na potrzeby inspektora w czasie rzeczywistym wybranych wielkości,
dokonywania automatycznej analizy aktualnych parametrów pracy,
wykonywania szczegółowych raportów z przeprowadzonych pomiarów,
archiwizowania danych zebranych w czasie pomiarów dla potrzeb kontroli powypadkowej
i oceny stabilności pracy urządzenia.
Zasadniczym celem jest natomiast umożliwienie inspektorowi dokonania oceny poprawności
pracy urządzenia i w konsekwencji wydanie certyfikatu upoważniającego do eksploatacji
w nawigacji lotniczej.
Przeznaczenie systemu zilustrowano na Rys. 1, który pokazuje przebieg przykładowego
pomiaru ustawienia wiązki nadajnika ścieżki schodzenia (GS). Nadajnik ten jest jednym z wielu
elementów tworzących system pozwalający na bezpieczne lądowanie na lotnisku przy ograniczonej
widzialności z wykorzystaniem przyrządów (ILS) i zapewnia nawigację w poziomie - utrzymanie
odpowiedniego kąta schodzenia samolotu. Jest to jedna z kilkunastu procedur potrzebnych do
•
CAS 94-104 Łódz ul. Obywatelska 137 tel.42'862 547,fax.42'844 840,Eml:[email protected]
pełnej inspekcji tego nadajnika i jedna z
kilkudziesięciu procedur realizowanych
przez system dla potrzeb inspekcji innych
urządzeń. Zestaw dostępnych procedur
umożliwia pomiar z powietrza wszystkich
typów eksploatowanych w kraju urządzeń
przeznaczonych dla lotnictwa cywilnego.
W trakcie realizacji przykładowego
pomiaru ustawienia ścieżki schodzenia
(Rys. 1) samolot inspekcyjny wyposażony
w aparaturę pomiarową porusza się po
prostej z prędkością 250km/h starając się
utrzymać na ścieżce. W tym czasie
rejestrowane są niezbędne do oceny pracy
sygnały z pokładowego odbiornika ścieżki,
stanowiącego
element
systemu
pomiarowego. Aby pomiary były możliwe
Rys. 1. Pomiar systemu lądowania na przyrządy (ILS)
system musi być wyposażony w precyzyjne
Fig.1. Instrument lending system inspection (ILS)
systemy odniesienia. W omawianym
RW-pas startowy
TEO- teodolit telemetryczny
rozwiązaniu wykorzystano:
GPS-globalna nawigacja satelitarna
• teodolit telemetryczny wyznaczający
LOC-kierunek systemu ILS
położenie
kątowe
samolotu
GS-ścieżka schodzenia systemu ILS
względem wybranego kierunku,
• globalny satelitarny system określania położenia (GPS),
• generatory pomiarowe.
Procedury pomiarowe, według których testowane są urządzenia nawigacyjne, wymagają
poruszania się samolotu inspekcyjnego po nietypowych trajektoriach, np. prostopadle do kierunku
lądowania. Dlatego system dodatkowo steruje specjalizowanymi wskaźnikami zainstalowanymi
w kokpicie pilota przeznaczonymi do wspomagania precyzyjnego prowadzenia samolotu po
zadanej trajektorii.
1.2 ZAŁOŻENIA KONSTRUKCYJNE
Oprogramowanie systemów czasu rzeczywistego jest takim elementem całości, który musi
współdziałać z otoczeniem z uwzględnieniem obowiązujących w nim ograniczeń. Punktem wyjścia
do konstrukcji muszą być ogólne założenia, mogące dalej służyć jako wspólna platforma do
budowy zarówno sprzętu, jak i oprogramowania. W celu sformułowania takich założeń, w
omawianym zastosowaniu, dokonano bardzo szczegółowej analizy wielu czynników, a do
najważniejszych należą:
• niezawodność - jest parametrem krytycznym decydującym o przydatności systemu
i wyznaczanych przez niego wyników do analizy poprawności pracy urządzenia,
• dokładność - z punktu widzenia inspektora system jest przyrządem pomiarowym i w
związku z tym musi dostarczać wyniki o odpowiednio niskiej stopie błędów,
• wytrzymałość - ponieważ system jest przeznaczony do zainstalowania na pokładzie
samolotu, jego konstrukcja mechaniczna i mocowanie musi wytrzymać duże przeciążenia,
• temperatura - w trakcie normalnej eksploatacji sprzęt musi być przystosowany do pracy
w temperaturach otoczenia w zakresie od -20° do 50°C,
• wibracje - praca silników i turbulencje powodują powstanie drgań o znacznym natężeniu
i szerokim spektrum,
• ergonomia - inspektor przebywa zwykle na pokładzie samolotu inspekcyjnego kilka godzin
dziennie i oprócz realizacji pomiarów jest odpowiedzialny za koordynację całego lotu,
• odpowiedzialność - zagadnienia tego nie trzeba w tym konkretnym zastosowaniu nikomu
uświadamiać. Zostało ono wymienione na końcu, ponieważ prowadzi do najbardziej
ogólnego założenia, a mianowicie lepiej żeby system nie mierzył nic, jak ma mierzyć źle.
Musi ono być rozumiane jako nadrzędne w stosunku do wszystkich innych.
1.3 BUDOWA
Z punktu widzenia realizacji pomiarów i sterowania otoczeniem konstrukcję zrealizowano na
bazie struktury rozproszonej (Rys. 2). W strukturze takiej występują zasadniczo dwa elementy:
• zestaw inteligentnych układów wej./wyj. służących do pomiarów sygnałów wejściowych i do
sterowania urządzeń zewnętrznych.
• główny komputer obliczeniowy, który komunikuje się z układami wej./wyj. za pośrednictwem interfejsu szeregowego, do którego układy te przyłączone są równolegle.
W omawianym rozwiązaniu
wykorzystano komputer o architekturze zdublowanej zgodny ze standardem IBM/PC w wykonaniu dla zastosowań przemysłowych firmy
TexasMicro typu FTSA (ang. Fault
Tolerant System Architecture) z procesorem Intel '2DX66. Jako układy
wej./wyj. wybrano natomiast moduły
pomiarowe firmy DGH (USA).
Komunikacja pomiędzy modułami
a komputerem odbywa się za
pośrednictwem interfejsu RS 485.
Rys. 2.Struktura systemu
Komputer główny wyposażono
Fig. 2. System structure
dodatkowo w inteligentne sterowniki
odciążających procesor od wykonywania niektórych zadań. W rezultacie otrzymano system wieloprocesorowy, w którym wybrane zadania są realizowane równolegle. Architektura systemu
charakteryzuje się tym, że zdwojono wszystkie istotne z punktu widzenia niezawodności elementy
systemu, a w tym wszystkie tory pomiarowe i elementy komputera głównego.
W rezultacie osiągnięto następujące właściwości układu:
• zwiększono niezawodności dzięki umieszczeniu elementów pomiarowych blisko źródła
mierzonego sygnału, wyeliminowaniu dużej ilości przewodów pomiędzy źródłem sygnałów
a komputerem i przesyłaniu wyników pomiarów w postaci cyfrowej,
• zminimalizowano możliwości powstania błędów pomiarowych na skutek zakłócenia
sygnałów w przewodach doprowadzających,
• odseparowano galwanicznie źródło sygnałów i komputer,
• uzyskano otwartość rozwiązania dzięki umożliwieniu rozbudowy przez dołączania
kolejnych modułów pomiarowych, co nie wymaga ingerencji w komputerze obliczeniowym,
• umożliwiono, by wiele komputerów korzystało z tych samych układów pomiarowych,
Zgodnie z wymaganiami system musi sterować wskaźnikami nawigacyjnymi
zainstalowanymi na lokalnej tablicy przyrządów i w kokpicie pilota. Są one sterowane za
pośrednictwem modułów dołączonych do wspólnego z modułami pomiarowymi interfejsu szeregowego.
Do współpracy z generatorem wzorcowym wykorzystano interfejs GPIB (IEEE488). Aby
dodatkowo ułatwić procedurę kalibracji sygnały w.cz. doprowadzono za pośrednictwem
przełączników pracujących w obwodach antenowych odbiorników nawigacyjnych.
Komputer czyta informacje na bieżąco z globalnego systemu nawigacji satelitarnej (GPS)
i układu telemetrii (TEO) z wykorzystaniem dwóch niezależnych kanałów interfejsu RS 232.
2. PODSTAWOWE PROCEDURY SYSTEMU
Rys. 3 przedstawia schematycznie proces przepływu danych w trakcie kolejnych etapów
przetwarzania. Źródłem danych są odbiorniki nawigacyjne. Przychodzące z nich sygnały można
podzielić na: analogowe, dwustanowe i cyfrowe (interfejs szeregowy ARINC 429).
Sygnały analogowe stałoprądowe są czytane za pośrednictwem przetworników analogowocyfrowych. Podobnie odczytywane są sygnały zmiennoprądowe, dla których dodatkowo
przewidziano przetworniki dokonujące konwersji na sygnał stałoprądowy.
Sygnały dwustanowe i cyfrowe są czytane bezpośrednio za pośrednictwem odpowiednich
interfejsów bez dodatkowego przetwarzania.
Wytworzone przez odbiorniki sygnały mogą być zakłócone i zaszumione. Dlatego przed
wprowadzeniem i zarejestrowaniem mogą być filtrowane przez filtry cyfrowe. Dla wszystkich
sygnałów analogowych filtr cyfrowy jest zintegrowany z przetwornikiem analogowo-cyfrowym.
Dla danych cyfrowych filtracja jest realizowana bezpośrednio przez komputer główny. Wszystkie
filtry mają programowo ustawiane parametry.
Ponieważ parametry torów odbiorników nie są dostatecznie stabilne w czasie, konieczna jest
kalibracja. Otrzymane w wyniku kalibracji dane, które reprezentują w postaci tablicy aktualną
charakterystykę toru pomiarowego, przechowywane są i umożliwiają precyzyjne wyliczanie
faktycznych wartości mierzonych sygnałów. Dopiero tak wyznaczone wartości sygnałów
są rejestrowane i wykorzystywane do realizacji innych funkcji.
System realizuje swoje funkcje przetwarzając dane wejściowe w dwóch praktycznie
niezależnych etapach: rejestracja i obrazowanie. W pierwszym etapie przetwarzanie danych
pomiarowych ograniczono do filtracji i przeliczenia wartości na podstawie funkcji kalibracyjnej.
Takie podejście umożliwia wykorzystanie danych archiwalnych nie tylko przez opisywany system.
Proces obrazowania czyta zarejestrowane dane, wylicza i pokazuje w ergonomiczny sposób
wartości i trendy zmian wybranych parametrów. Dane obrazowane są na: kolorowym monitorze
graficznym, drukarce graficznej, wyświetlaczu alfanumerycznym pilota i wskaźnikach
nawigacyjnych. Pierwsze dwa urządzenia są przeznaczone dla inspektora, a pozostałe dla pilotów
z zadaniem wspomagania precyzyjnego prowadzenia samolotu inspekcyjnego po zadanej
trajektorii.
Rys. 3. Schemat przepływu danych
Fig. 3. Data flow diagram
.
Zasadniczo sygnały analogowe po konwersji w przetworniku A/C są filtrowane przez filtry
cyfrowe. Wyjątek stanowią te sygnały, dla których wartości są dostępne tylko w postaci cyfrowej za
pośrednictwem interfejsów szeregowych (RS232 i ARINC). Są to położenie kątowe z teodolitu,
położenie geograficzne z GPS i namiar z odbiorników nawigacyjnych. Dla wymienionych danych
filtr realizowany jest przez komputer główny.
Dla wszystkich sygnałów wejściowych, zanim zostaną zarejestrowane i użyte do dalszego
przetworzenia, ich wartości wylicza się na podstawie wyznaczonych okresowo na podstawie
pomiarów sygnałów wzorcowych z generatorów sygnałowych funkcji kalibracyjnych.
Kalibracja dla sygnałów pochodzących z odbiornika nawigacyjnego jest realizowana
automatycznie. Generator wzorcowy w tej procedurze jest sterowany programowo.
Niezależnie od procedury pełnej kalibracji jest możliwe sprawdzenie wyrywkowe
poprawności pracy wybranych torów pomiarowych (test torów pomiarowych). Test ten ma za
zadanie wykrycie pomiędzy kolejnymi pomiarami pojawienia się nieakceptowalnych błędów
w trakcie wykonywania lotów inspekcyjnych.
Podczas realizacji procedur pomiarowych wybrane dla poszczególnych procedur wielkości
są rejestrowane. Z punktu widzenia rejestracji generalnie można wprowadzić następujący podział
sygnałów:
• dane z telemetrii,
• dane z GPS'a,
• wartości sygnałów analogowych,
• dane cyfrowe z odbiorników nawigacyjnych.
W każdej z wymienionych grup dane są wyznaczane przez zewnętrzne, autonomiczne
urządzenia pracujące asynchronicznie w stosunku do realizowanego algorytmu programu
głównego. Aby zachować stały okres impulsowania, przed rejestracją musi nastąpić ich
synchronizacja w czasie. Oznacza to, że dane będą opóźniane w czasie, co w efekcie powoduje
powstanie pewnego błędu dynamicznego, który zminimalizowano przyjmując następujące zasady
dla algorytmu synchronizującego:
• wszystkie dane są rejestrowane z częstością 5/s,
• bieżące - ostatnio przeczytane dane z GPS'a i telemetrii są opóźniane i rejestrowane jeden raz
zgodnie z najbliższym okresem impulsowania,
• w punktach, gdzie dane z GPS i telemetrii nie są znane (częstość ich wyznaczania to 2/s),
rejestrowana jest informacja o ich braku, a do analizy w tych punktach bierze się przybliżoną
wartość wyznaczoną z interpolacji dla najbliższych dwóch znanych wartości.
W trakcie realizacji procedur prowadzona jest analiza bieżąca. W jej wyniku inspektor ma
możliwość dokonania natychmiastowej oceny przebiegu pomiaru i podjęcia decyzji o celowości
jego kontynuowania. Możliwe jest również zażądanie od obsługi naziemnej wprowadzenia korekty
wybranego parametru bez konieczności przerywania i powtarzania pomiaru. Rezultaty
są obrazowane w postaci napisów tekstowych, wykresów słupkowych i wykresów liniowych.
Ocenę przebiegu pomiaru ułatwiają dwa mechanizmy nazwane lupa pomiarowa i kursor
pomiarowy. Lupa pomiarowa to mechanizm programowy umożliwiający oglądanie wartości
sygnałów prezentowanych w postaci graficznej w zmiennej skali. Nazwą kursor pomiarowy określa
się mechanizm programowy służący do dokładnego odczytywania wartości sygnału w wybranym
na wykresie punkcie.
Kontrola każdego urządzenia nawigacyjnego wymaga przeprowadzenia pewnego ciągu
operacji. Aby ułatwić pracę inspektorowi na ekranach sterujących poszczególnych procedur
pomiarowych umieszczono listy niezbędnych pomiarów, które trzeba wykonać w celu pełnej
realizacji inspekcji. Na każdym elemencie listy wyświetlana jest wartość wybranego parametru
charakterystycznego dla danej procedury, jeśli była ona realizowana.
Na podstawie danych odbieranych z nawigacyjnych urządzeń pokładowych system na
bieżąco wylicza błąd pilotażu i zobrazowuje go w postaci graficznej na ekranie wyświetlacza i
wskaźnikach nawigacyjnych w kokpicie w polu widzenia pilotów samolotu inspekcyjnego.
3. OPROGRAMOWANIE
3.1 PROCES TWORZENIA OPROGRAMOWANIA.
Punktem wyjścia do sformułowania funkcji realizowanych przez program są dokumenty
normalizujące wydane przez międzynarodową organizację ICAO [1], [2], które aktualnie formalnie
obowiązują w Polsce i administrację rządową FAA [3] odpowiedzialnej za bezpieczeństwo
w przestrzeni powietrznej USA. Po szczegółowym zapoznaniu się z treścią tych dokumentów
trzeba jednak stwierdzić, że nie są one wystarczające do zaprojektowania algorytmów i wykonania
oprogramowania. W związku z tym, należało przewidzieć prace projektowe w tym zakresie.
W rezultacie upraszczając, cały projekt zrealizowano w procesie wieloetapowym, a jego główne
etapy są następujące:
• Opracowanie projektu technicznego.
• Sformułowanie specyfikacji funkcji.
• Opracowanie oprogramowania.
• Testowanie oprogramowania.
• Wdrożenie.
W projekcie technicznym sformułowano zadania systemu i określono strukturę
oprogramowania. Na tej podstawie powstała szczegółowa specyfikacja realizowanych przez system
funkcji. W wielu zastosowaniach wyspecyfikowanie co system komputerowy ma robić jest
niewystarczające i trzeba dodatkowo zdefiniować jak ma realizować swoje funkcje. Jest to
szczególnie istotne w tych przypadkach, gdy nie można w sposób jednoznaczny i bez wątpliwości
bazując na metodach formalnych i zdroworozsądkowych oraz budując, co bardzo istotne,
rozwiązania z uwzględnieniem wymogów zapisanych w dokumentach normalizacyjnych wybrać
odpowiedni algorytm.
Opracowanie specyfikacji funkcji było elementem kluczowym, który zadecydował
o powodzeniu projektu. Dokument ten zawiera oprócz szczegółowej listy funkcji dokładny
matematyczny opis wszystkich algorytmów związanych z przetwarzaniem danych na potrzeby ich
analizy. Opisano w nim zawartość ekranów sterujących, zawartość baz danych i szczegóły
związane z rejestracją sygnałów i analizą wyników pomiarów. Dla każdej z procedur pomiarowych
zdefiniowano algorytm prowadzenia po zadanej trajektorii i zakres niezbędnych danych
przekazywanych pilotowi w trakcie lotu do wspomagania utrzymania samolotu możliwie blisko
zadanej trajektorii.
W trakcie analizy zrealizowanej na tym etapie stwierdzono, że w omawianym zastosowaniu
znaczna część oprogramowania musi być opracowana indywidualnie zgodnie z potrzebami
konstruowanego systemu. Oznacza to, że nie można wykorzystać tu żadnego ze znanych produktów
przeznaczonych do monitorowania i sterowania, stosowanych coraz częściej w zastosowaniach
przemysłowych.
W tej fazie pracy powstało również oprogramowanie symulatora. Symulator jest niezbędny
do testowania poprawności oprogramowania w etapie następnym.
Opracowana w pierwszej fazie projektu specyfikacja funkcji jest w drugiej fazie bazą do
realizacji przyjętych algorytmów. Po formalnym zaakceptowaniu jej dopuszczono jeszcze
możliwość wprowadzenia pewnych uzasadnionych modyfikacji. Przewidziano tu również
prezentacje wyników cząstkowych bezpośredniemu użytkownikowi w celu ich konfrontacji z jego
oczekiwaniami.
Testowanie to etap, który ma za zadanie wykrycie w programie możliwie wszystkich błędów
i stwierdzenie zgodności realizowanych funkcji ze specyfikacją. Wykonywanie weryfikacji
poprawności działania systemu w trakcie lotów inspekcyjnych, chociaż nieodzowne do ostatecznej
akceptacji systemu, jest ze względu na wysokie szeroko rozumiane koszty nieakceptowalne. Aby
tego uniknąć, do testowania wykorzystano specjalnie skonstruowany symulator, który pozwala
wygenerować wszystkie potrzebne sygnały normalnie odczytywane lub mierzone z odbiorników.
Możliwość wykorzystania tego urządzenia w tym etapie miała podobnie doniosłą wagę dla
powodzenia projektu jak opracowanie specyfikacji funkcji.
Po zakończeniu prac związanych z testowaniem system został zainstalowany na pokładzie
samolotu inspekcyjnego i rozpoczęto próby w powietrzu.
Jak wspomniano jednym z istotniejszych problemów w omawianym zastosowaniu jest
szeroko rozumiana niezawodność. Ponieważ system ma służyć do weryfikacji poprawności pracy
urządzeń decydujących o bezpieczeństwie ludzi, zagadnieniem samym w sobie było potwierdzenie,
że otrzymywane rezultaty są wiarygodne, a praca systemu stabilna. Aby to zapewnić wprowadzono
bardzo sformalizowaną i szczegółową procedurę weryfikacyjną, w której wszystkie etapy podlegały
podwójnej komisyjnej kontroli. Najpierw rezultaty były analizowane przez powołaną wewnętrznie
komisję, której zadaniem było sprawdzenie poprawności zastosowanych rozwiązań i sprawdzenie
zgodności z wcześniej przyjętymi założeniami oraz przygotowanie materiałów w postaci raportów,
zestawień i obliczeń dla prac komisji zewnętrznej. Przygotowane materiały przekazano
protokolarnie komisji składającej się z inspektorów w celu dalszej weryfikacji. Komisje pisemnie
określały swoje stanowisko, ewentualne zalecenia i uwagi o nieprawidłowościach.
Badania weryfikacyjne realizowane z wykorzystaniem symulatora uzupełniono, w celu ich
potwierdzenia, wynikami pomiarów z wykorzystaniem specjalistycznych generatorów
sygnałowych. Zakres tych badań jednak był ograniczony pomimo wykorzystania
najnowocześniejszych, zakupionych specjalnie do tego celu urządzeń renomowanych firm.
Następnie po otrzymaniu pozytywnych wyników przeprowadzono badanie porównawcze
z wykorzystaniem aktualnie używanej do pomiarów aparatury firmy AVI Model 2300. Ze względu
na ograniczony zakres jej funkcji badanie te również ograniczono tylko do wybranych parametrów.
3.2 KONSTRUKCJA OPROGRAMOWANIA
Najważniejszym zagadnieniem w rozważanej klasie zastosowań, to szeroko rozumiana
niezawodność tworzonego systemu. Uwzględniając specyfikę omawianego zastosowania można
stwierdzić, że paradoksalnie całkowity brak działania systemu to jedna z najlepszych awarii jakie
mogą się przytrafić. Praktyka inżynierska wymaga jednak, aby system był zaprojektowany na
najgorszy przypadek, którym jest w tym przypadku pozornie poprawne jego działanie. Jedynym
rozwiązaniem, które tu może być pomocne to samo-testowanie się obejmujące zarówno program
jak i sprzęt. W programie obok testów dla zakresów zmiennych i sposobu korzystania ze struktur
danych, realizowanych standardowo przez język programowania, wprowadzono w najbardziej
newralgicznych miejscach test niezmienników (ang assertions).
Przy aktualnym poziomie technologii wytwarzania sprzętu komputerowego i pomiarowego
podstawowym źródłem błędów w pracy jest realizowany program. Są tego dwa powody. Pierwszy
to brak praktycznie realizowalnych metod sprawdzania poprawności programu i algorytmu, na
bazie którego został on zbudowany. Drugi powód to fakt, że ze swej natury znaczna część programu
to zwykle rozwiązanie prototypowe. Z wymienionych powodów nie można z góry wykluczyć
powstania błędów, jednak konstrukcja oprogramowania powinna zapewniać wykrywanie błędów
i ich obsługę. W przyjętym rozwiązaniu obsługa błędu polega na odnotowaniu faktu, miejsca
i okoliczności jego zaistnienia, co pozwala na odtworzenie stanu programu i jest bardzo pomocne
do zrozumienia jego faktycznej istoty.
Ze względu na bardzo wysokie koszty lotów inspekcyjnych konieczne okazało się
skonstruowanie oprogramowania ze stopniową degradacją funkcji. Oznacza to, że wystąpienie
błędu powoduje tylko ograniczenie możliwości realizacji pewnych funkcji. Do implementacji
niezbędną okazała się tu technika programowania współbieżnego, która umożliwia zatrzymanie
błędnych procesów bez konieczności ograniczania pracy procesów realizujących inne zadania.
Podstawowym jednak zagadnieniem jest zastosowanie takich metod i organizacji pracy
w trakcie procesu tworzenia oprogramowania, które minimalizują prawdopodobieństwo
wystąpienia nieprawidłowości w jego realizacji. W tym celu zastosowano metodykę
programowania strukturalnego i modularnej funkcjonalne dekompozycji zadań z wykorzystaniem
techniki programowania współbieżnego. Dzięki technice programowania współbieżnego
poszczególne zadania mogą być realizowane praktycznie niezależnie od siebie. Współpracę ich
zorganizowano na bazie znanego modelu producent-konsument, co dodatkowo zwiększyło
niezawodność. Niezależnie od wymienionych rozwiązań bezpośrednio dotyczących konstrukcji
oprogramowania, zastosowano taką organizację tworzenia oprogramowania, w której jego elementy
podlegają wielokrotnej weryfikacji, a część oprogramowania jest uniwersalnym oprogramowaniem
systemowym sprawdzonym już wcześniej w wielu zastosowaniach przemysłowych [5].
Tworzony system przewidziano do pracy w czasie rzeczywistym. Oznacza to, że czynnik
czasu należy brać pod uwagę już na etapie tworzenia oprogramowania [4]. Dodatkową trudność
sprawia fakt, że w omawianym zastosowaniu wykluczona jest możliwość zastosowania jednego z
gotowych produktów programowych. Ze względu jednak na konieczność ograniczania zakresu
rozwiązań prototypowych należy zminimalizować obszar indywidualnie tworzonej warstwy
użytkowej oprogramowania i w maksymalnym stopniu wykorzystać dostępne oprogramowanie
systemowe jako platformę do budowy wspomnianej już warstwy użytkowej. Zastosowano tu
mianowicie unikalną autorską metodę programowania czasu rzeczywistego z wykorzystaniem
techniki programowania współbieżnego bazującej na koncepcji monitora [6]. Jako bazę do
implementacji tej koncepcji przyjęto język Modula-2, który został tak zdefiniowany, aby łatwo dał
się rozbudowywać przez użytkownika. Zaprojektowane w tym języku mechanizmy tworzenia i
synchronizacji zadań są praktycznie niezależne od systemu operacyjnego, a dostępne konstrukcje
językowe pozwalają na bezpośrednią obsługę sprzętu. W ten sposób w miejsce tradycyjnego
wielozadaniowego systemu operacyjnego wykorzystano opracowaną bibliotekę. Z punktu widzenia
programisty oba rozwiązania są równoważne. W tym przypadku istotne były dwie osiągnięte w ten
sposób własności. Pierwsza pozwala na wykorzystanie spójnego mechanizmu obsługi błędów,
również tych związanych z synchronizacją zadań. Druga daje możliwość modyfikacji biblioteki
zgodnie z aktualnymi potrzebami wynikającymi z zastosowania. W omawianym rozwiązaniu
zadania, których jest zwykle w trakcie realizacji pomiaru kilkadziesiąt, są szeregowane co 1ms.
Jedną z ważniejszych metod stosowanych do zmniejszania prawdopodobieństwa wystąpienia
błędów w pracy systemów komputerowych jest testowanie. Testowanie niestety może jedynie
pokazać, że błędy są. Nie może jednak służyć do wykazania, że ich nie ma, ponieważ w praktyce
nie można nigdy w rozsądnym czasie sprawdzić wszystkich możliwych kombinacji sytuacji
i zdarzeń jakie mogą się w ogóle pojawić. Pomimo to, intensywne testowanie jest nieodzowne.
W omawianym przypadku testowanie musi objąć nie tylko poprawność działania programu
realizującego wybrane algorytmy przetwarzania danych pomiarowych, ale również tory pomiarowe.
Planując proces testowania trzeba brać pod uwagę, że rzeczywiste sygnały analogowe z
odbiorników można uzyskać jedynie w powietrzu na pokładzie samolotu po uprzednim
zamontowaniu systemu. To jednak jest zdecydowanie zbyt późno. Dlatego, jak wspomniano,
niezależnie opracowano układ do symulacji wzajemnie synchronicznych przebiegów sygnałów
analogowych i cyfrowych.
4. PODSUMOWANIE
W opisywanym projekcie opracowano aparaturę kontrolno pomiarową zbudowaną na bazie
wieloprocesorowego systemu komputerowego z wykorzystaniem rozproszonego systemu układów
pomiarowych i elementów wykonawczych. Projekt obejmował wszystkie aspekty, a w tym
konstrukcję mechaniczną, zasilanie, okablowanie, opracowanie algorytmów i wytworzenie
oprogramowania. Oprogramowanie napisano na podstawie formalnej specyfikacji funkcji. Tworzy
je kilka tysięcy rozłącznie kompilowanych modułów o przeciętnej długości kilkaset linii. Program
został podzielony na 19 modułów, z których każdy jest niezależnym programem zbudowany
z wykorzystaniem techniki programowania współbieżnego, realizującym pomiary lub usługi
dodatkowe, jak obsługa bazy danych, kalibracja i testowanie.
Projekt był realizowany przez 3 lata, a w poniższej tabeli zestawiono orientacyjne czasy
trwania wybranych etapów pracy.
Projekt, kompletacja i wykonanie sprzętu 1.5 roku
Opracowanie specyfikacji funkcji
1,5 roku
Wykonanie oprogramowania
1 rok
Testowanie, wdrożenie
1.5 roku
Na omówienie zasługuje proporcjonalnie długi okres testowania, który nie obejmuje przecież
testowania realizowanego bezpośrednio w trakcie prac nad oprogramowaniem. Takie proporcje
czasowe potwierdzają raz jeszcze od dawna znaną prawdę, że znacznie łatwiej napisać program niż
wykazać, że działa on poprawnie. W tym przypadku dodatkowym utrudnieniem był brak
możliwości łatwej weryfikacji otrzymywanych wyników, ponieważ wykorzystane tu generatory
sygnałowe i pomiary porównawcze z inną aparaturą miały ograniczone zastosowanie.
Teoretycznie pełną weryfikację można było jedynie uzyskać korzystając z symulatora. W tym
przypadku wiarygodność otrzymanych wyników była ograniczona ze względu na to, że powstał on
w ramach tego samego projektu i mógł, co zresztą okazało się faktem, zawierać te same błędy co
oprogramowanie systemu.
Analizując przebieg projektu wydaje się, że pewne skrócenie czasu trwania można by
osiągnąć praktycznie tylko dla etapu testowania oprogramowania. W tym celu potrzebne jest
opracowanie niezależnej dokumentacji formalnie definiującej procedury testowe i odpowiednio
dobrane zestawy danych wejściowych. Wykorzystanie specyfikacji funkcji jako odniesienia
merytorycznego przy weryfikacji nastręczało poważnych trudności, ponieważ szybko okazało się,
że od pełnego zrozumienia jak funkcje systemu mają być realizowane, do opracowania testów
potwierdzających zgodne z oczekiwaniami ich działanie jest długa droga.
5. LITERATURA
[1]
[2]
[3]
[4]
[5]
[6]
Aeronautical Telecommunications Annex 10 To the Convention on International Civil
Aviation Volume 1; International Civil Aviation Organization, USA
Manual on Testing of Radio Navigation Aids, Volume I, Volume II; International Civil
Aviation Organization, USA
Flight Inspection Manual; United States Standard; Department of Army, the Navy, and
the Air Force and The Federal Aviation Administration, May 1993
N. Wirth, "Toward a discipline of real-time programming" Communication of the ACM,
20, 877-883, (1977).
D. Arendt and M. Postó³, "Real-time Multiprogramming system for mine control
center", Microprocessors and Microsystems, 14, 39-46 (1990).
C. A. R. Hoare, "Monitors: an operating system structuring concept", Ef, 21, 666-677
(1974).
NAVIGATION AIDS FLIGHT INSPECTION SYSTEM
The paper presents discussion on issues related to the project management, software and hardware development
of a computer system dedicated for air inspections of radio-navigation aids, communication and radar systems
(called CFIS). Main discussion is preceded by description of system destination and its basic functions and is
focused on the most vital questions, from the point of view of the specific application requirements, which was
detailed analyzed during development stage. The paper describes selected results oh this analysis related to
software development and implemented solutions.