PSI_207b.doc

(11406 KB) Pobierz
SYSTEMY KOMPUTEROWE W PRZEMYŚLE

M. Orzyłowski, PRZEMYSŁOWE SYSTEMY INFORMATYCZNE, 2002

Cz. 7. Systemy automatyki  i pomiarów

 

SYSTEMY AUTOMATYKI I POMIARÓW

 

 

Spis treści

1. WSTĘP              2

2. CECHY PRZEMYSŁOWYCH SYSTEMÓW KOMPUTEROWYCH              3

3. ZASTOSOWANIE SYSTEMÓW OPERACYJNYCH              5

4. KONDYCJONOWANIE SYGNAŁÓW              9

5. PRZETWARZANIE ANALOGOWO-CYFROWE              13

6. URZĄDZENIA I SYSTEMY PRZEMYSŁOWE              20

6.1. STEROWNIKI PLC              21

6.1.1. Programowanie drabinkowe              21

6.1.2. Proste sterowniki PLC              25

6.1.3. Rozbudowane systemy sterowników PLC              26

6.1.4. Programowanie sterowników PLC              30

6.2. URZĄDZENIA KONTROLNO-POMIAROWE Z MIKROKONTROLERAMI              31

6.3. SYSTEMY Z WBUDOWANYMI KOMPUTERAMI              35

6.4. SYSTEMY NA BAZIE KOMPUTERA KLASY PC              37

6.5 SYSTEMY ROZPROSZONE              41

6.6. OPROGRAMOWANIE SYSTEMÓW NA BAZIE KOMPUTERA KLASY PC              48

7. PODZIAŁ SYSTEMU NA BLOKI FUNKCJONALNE              51

 


1. WSTĘP

Rozwój techniki komputerowej wymuszały między innymi potrzeby militarne, badania nuklearne, podbój kosmosu oraz rozwój nowoczesnych gałęzi przemysłu, np. elektroniki.

Komputerowe przemysłowe systemy sterowania zaczęły powstawać głównie z następujących powodów:

·      wzrost wymagań sterowania nowoczesnych procesów technologicznych,

·      obniżka kosztów produkcji,

·      wzrost skali produkcji,

·      wzrost jakości produkcji.

Od początku lat osiemdziesiątych zupełnie nowe wymagania, w stosunku do przeciętnych, stawiał na przykład przemysł półprzewodnikowy. Analogowe i proste cyfrowe układy sterowania, używane dotychczas do sterowania procesami technologicznymi, miały cały szereg wad. Najważniejszymi z nich były trudności, związane z potrzebami:

·      wprowadzania bardziej złożonych algorytmów sterowania,

·      diagnostyki stanu urządzeń i przebiegu procesów oraz alarmowania o stanach niewłaściwych lub awaryjnych,

·      powiązania ze sobą lokalnych układów sterowania w większe systemy sterowania,

·      wprowadzania modyfikacji funkcjonalnych systemu, dotychczas utrudnionych ze względu na sprzętowy charakter konfiguracji systemu,

·      zbierania danych w celu późniejszego ich przetwarzania.

Wprowadzenie do celów sterowania układów mikrokomputerowych pozwoliło na przełamanie tych ograniczeń.

 

Urządzenia i systemy komputerowe, stosowane w przemyśle, biorąc pod uwagę ich wielkość i sposób komunikacji, można podzielić na następujące grupy:

·         urządzenia, bazujące na jednym mikroprocesorze lub mikrokontrolerze,

·         urządzenia z wieloma procesorami, komunikującymi się poprzez szyny danych (potrzebne sterowniki szyny),

·         systemy z wieloma procesorami, wykorzystującymi do komunikacji interfejsy szeregowe

·         systemy komputerowe, pracujące w sieci.

2. CECHY PRZEMYSŁOWYCH SYSTEMÓW KOMPUTEROWYCH

              Systemy komputerowe, stosowane  w przemyśle, spełniają wiele funkcji, zarówno usprawniających zarządzanie fabryką, jak też służących bezpośrednio procesowi wytwarzania. Części tych systemów, które na przykład dotyczą gospodarki materiałowej, zbytu wytworzonych produktów czy obsługi baz danych, na ogół, nie wyróżniają się szczególnymi cechami wśród innych systemów informatycznych, mp. systemów dla dużych przedsiębiorstw handlowych.

              Szczególne wymagania dotyczą natomiast komputerowych systemów, bezpośrednio służących produkcji. Zwłaszcza należą do nich:

·      bezpieczeństwo działania,

·      niezawodność działania,

·      praca w czasie rzeczywistym.

 

              Znana katastrofa elektrowni atomowej w Czernobylu uświadamia ogrom szkód jakie mogą nastąpić w wyniku awarii w przemyśle. Zniszczenia, śmierć wielu ludzi, wielloletnie skażenie środowiska, straty materialne mogą powodować także innego typu instalacje przemysłowe. Zwłaszcza należą do nich zakłady przemysłu chemicznego.

              Dla zapewnienia bezpieczeństwa instalacji przemysłowej stosuje się sprawdzone pod kątem niezawodności urządzenia, zabezpieczenia, systemy alarmowe i diagnostyczne. Znamiennym przykładem może być elektrownia atomowa w Thorn w Szkocji, która jest repliką innej elektrowni, wybudowanej około dziesięciu lat wcześniej. Przy decyzji przyjęcia takiego rozwiązania decydującym względem była bezpieczeństwo i niezawodność pracy wcześniej uruchomionej i eksploatowanej elektrowni. Nowoczesność rozwiązania i koszty zeszły w tym przypadku na drugi plan. Dzięki bezpiecznym rozwiązaniom pracująca elektrownia w Thorn jest obecnie obiektem wycieczek, w tym szkolnych, w czasie których można zobaczyć nawet reaktor z urządzeniami do załadunku prętów paliwowych. System komputerowy tej elektrowni pełni rolę sterująca, monitorująca i diagnostyczną. Najważniejsze decyzje podejmuje jednak obsługa. Dla przygotowania do pracy w przypadku awarii, obsługa ta jest zobowiązana do okresowych treningów na symulatorze pracy elektrowni, wyposażonym w pulpity sterownicze i monitory kontrolne, identyczne z urządzeniami, przeznaczonymi do celów produkcji energii elektrycznej.

 

              Awaria urządzeń produkcyjnych nie zawsze kończy się wybuchem, skażeniem środowiska itp. Może jednak wiązać się ze znacznymi stratami. Na przykład w reaktorze pieca do dyfuzji półprzewodników może znajdować się wsad, podlegający końcowej obróbce. Typowy wsad może składać się z ok. 100 płytek półprzewodnikowych o średnicy ok. 130mm (5”), czyli o powierzchni 13 tys. mm2. Na powierzchni jednej płytki może znajdować się 10 tys. struktur obwodów scalonych dużej skali integracji. W sumie więc jednoczesnej obróbce podlega 1 milion struktur. Jeżeli uzysk wynosi 80%, zaś cena jednej niezmontowanej struktury wynosi 30c, to awaria urządzenia do dyfuzji, pociąga za sobą stratę 240.000$. Warto dodać, że cena skomputeryzowanego urządzenia do dyfuzji jest rzędu 500.000$, a więc jest w tym przypadku tylko dwa razy większa. Przykład ten daje wyobrażenie o wadze niezawodności komputerowych systemów przemysłowych.

 

              W urządzeniach produkcyjnych występuje często niebezpieczeństwo gwałtownych reakcji chemicznych i fizycznych. Awaria lub nieprawidłowa praca tych urządzeń może doprowadzić np. do niekontrolowanych wybuchów o znacznej sile. We wspomnianym urządzeniu do dyfuzji półprzewodników utlenianie powierzchni przeprowadza się przy użyciu czystej pary wodnej. Para ta jest wytwarzana na bieżąco w trakcie procesu technologicznego przez spalenie czystego wodoru w czystym tlenie. Zgaśnięcie płomienia w rektorze pary wodnej, na przykład na skutek chwilowego spadku przepływu jednego z gazów, może doprowadzić do wpłynięcia niespalonego wodoru i tlenu do rurowego reaktora z płytkami półprzewodnikowymi, w którym panuje temperatura rzędu 1000°C. Prowadzi to do wybuchowego zapłonu wodoru w reaktorze. Na ogół prowadzi to do wystrzelenie ciężkiego i kosztownego wsadu z pieca na halę produkcyjną. Podobnej awarii można uniknąć jedynie przez zastosowanie w reaktorze spalania wodoru czujnika płomienia i systemu, który w przypadku zgaśnięcia płomienia natychmiast odcina dopływ wodoru.

              Przykład ten ilustruje konieczność stosowania w komputerowych systemach przemysłowych pracy w czasie rzeczywistym, gdyż sekundowa nawet zwłoka w reakcji na niektóre zdarzenia, które mogą wystąpić w trakcie produkcji, może powodować nieobliczalne skutki.

3. ZASTOSOWANIE SYSTEMÓW OPERACYJNYCH

              System operacyjny jest programem integrującym sprzętowe i programowe zasoby komputera oraz tworzącym środowisko dla przygotowania i wykonania programów aplikacyjnych. System operacyjny czasu rzeczywistego (RTOS – Real Time Operating System) jest to taki system, który gwarantuje wykonanie zadania w nieprzekraczalnym czasie. System operacyjny czasu rzeczywistego ma ściśle zdefiniowane, stałe ograniczenia czasowe. Przetwarzanie danych musi zakończyć się przed upływem określonego czasu – w przeciwnym razie system nie spełnia wymagań. Na przykład opóźnienie dotarcia do robota rozkazu, aby wstrzymał ruch ramienia, może spowodować uszkodzenie obrabianego wyrobu, np. zgniecenie montowanej karoserii samochodu. Ścisłe ograniczenia czasowe nie występują natomiast w komputerach obliczeniowych oraz przeznaczonych dla celów biurowych i dla internetowych hobbystów.

              System operacyjny czasu rzeczywistego, zastosowany w komputerowym urządzeniu lub systemie przemysłowym musi spełniać szereg wymagań:

·      zapewniać dużą niezawodność pracy, odporność ma awarię sprzętu i oprogramowania,

·      zajmować niewielką przestrzeń w pamięci RAM i na dysku,

·      posiadać architekturę modularną, ułatwiającą konfigurowanie sprzętu i oprogramowania,

·      umożliwiać komunikację z innymi blokami systemu, takimi jak urządzenia wykonawcze, które często są oddalone przestrzennie i wyposażone we własne systemy operacyjne i oprogramowanie,

·      umożliwiać pracę sieciową.

              Ograniczenia czasowe wpływają na ogół na dobór środków, wykorzystywanych przez systemy czasu rzeczywistego. W systemach tych w trakcie wykonywania zadania program oraz dane są z reguły przechowywane w pamięci o krótkim czasie dostępu.

              Do niedawna systemy operacyjne były stosowane głównie w komputerach, między innymi komputerach osobistych, oraz systemach informatycznych i systemach sterowania. Takimi bardzo rozpowszechnionymi systemami operacyjnymi są systemy DOS i Windows 95. Nie są to systemy czasu rzeczywistego, aczkolwiek ze względu na ich powszechność i przystosowanie do bogatego oprogramowania użytkowego są wykorzystywane przy mniej odpowiedzialnych zadaniach, np. rejestrowania procesów fizycznych takich jak przemiany fazowe podczas nagrzewania próbki materiału, w celu późniejszej analizy tego procesu.

W ostatnich latach kładzie się silny nacisk także na rozwój systemów operacyjnych dla mikrokontrolerów jednoukładowych. Mikrokontrolery można określić jako układy mikroprocesorowe zorientowane na sterowanie i w związku z tym wyposażone w liczniki, interfejsy, przetworniki itp. Stosowanie systemów operacyjnych w mikrokontrolerach jest spowodowane między innymi rozwojem mocy obliczeniowej mikrokontrolerów. Innym powodem jest dążenie do szybkiego tworzenia aplikacji. Dzięki systemom operacyjnym programista jest zwolniony z części pracy. Łatwiej też o koordynację pracy kilku programistów, pracującym nad tą samą aplikacją.

Oprogramowanie większości spotykanych na rynku sterowników PLC o bardziej rozbudowanych możliwościach funkcyjnych zostało zbudowane na bazie systemów operacyjnych. W aplikacjach na mikrokontrolery 8-bitowe, np. z rodziny 8051, celowość stosowania systemu operacyjnego czasu rzeczywistego nie jest w pełni uzasadniona, głównie ze względu na wielkość aplikacji, ograniczonych zasobami mikrokontrolera oraz wysoka ceną tych systemów. Dla aplikacji dla mikrokontrolerów 16-bitowych i 32-bitowych stosowanie systemów operacyjnych czasu rzeczywistego jest natomiast w pełni uzasadnione.

              Przyjmuje się kilka kryteriów porównawczych dla systemów czasu rzeczywistego. Są to głównie:

·         czas przełączania zadania (Context or Task Swich Time),

·         czas utajnienia przerwania (Interrupt Latency), to znaczy czas po którym rozpoczyna się realizacja żądanego zadania,

              Niektóre firmy dostarczają dla różnych mikrokontrolerów RTOS o tej samej nazwie. Nie są one fizycznie identyczne, lecz dostarczają takich samych usług na różnych platformach. Dzięki temu aplikacje napisane w C lub C++ można przenosić pomiędzy różnymi platformami bez dużego nakładu pracy. Wymagana jest jedynie rekompilacja programów za pomocą kompilatora dla danej platformy. Dzieje się temu, że coraz większy nacisk kładzie się na standaryzacje mechanizmów i usług, świadczonych przez systemu operacyjne. Dzięki komunikacji z użytkownikiem zgodnie ze standardem POSIX możliwe jest nawet przenoszenie aplikacji pomiędzy systemami RTOS różnych firm po prostych modyfikacjach.

              Przykładem systemu operacyjnego, który może być stosowany zarówno w mikrokontrolerze 32-bitowym MPC860 jak i w sieci złożonej przez komputery klasy PC jest system operacyjny czasu rzeczywistego QNX.

 

 

 

              System QNX jest systemem operacyjnym czasu rzeczywistego, przeznaczonym głównie do pracy w sieci, której węzłami są komputery PC. Należy do rodziny UNIX oraz spełnia wymagania standardu POSIX. Umożliwia on tworzenie programów użytkowych, złożonych z wielu współbieżnych procesów. Składa się on z:

·      Jądra, które pełni rolę egzekutora. Jądra systemów operacyjnych czasu rzeczywistego są z reguły niewielkie, zaś zakres zadań ograniczony. Zadania jądra systemu QNX obejmują:

·                    szeregowanie procesów,

·                    realizacja komunikacji między procesami,

·                    przyjmowanie zgłoszeń przerwań.

·      Menadżerów systemowych, wykonujących procesy systemowe. Składają się one z :

·                    menadżera procesów (Process Manager), który nadzoruje tworzenie i usuwanie procesów, rejestrację nazw procesów i odmierzanie czasu,

·                    menadżera plików (Filesystem Manager), który organizuje system plików w pamięciach dyskowych, taśmowych i na dyskach optycznych,

·                    menadżera urządzeń (Device Manager), który formatuje strumienie danych pomiędzy procesami i urządzeniami zewnętrznymi,

·                    sterowników urządzeń (Device Drivers), które inicjują i kończą działanie urządzeń zewnętrznych oraz obsługują zgłaszane przerwania,

·                    menadżera sieci (Network Manager), który obsługuje łącza sieciowe oraz komunikację węzłów sieci.

 

              Wszystkie procesy, zarówno użytkowe jaki i systemowe, komunikują się za pomocą funkcji, realizowanych przez jądro systemu.

 

              Procesy systemowe pełnią rolę serwerów, obsługujących żądania innych procesów (architektura client-server). Odwołania procesów, kierowane do serwerów mają postać wiadomości, przenoszących żądania wykonania pewnych usług, np. utworzenie nowego procesu, odczytania lub zapisania pliku dyskowego.

 

              W systemie QNX procesy mogą być wykonywane w różnych węzłach lub korzystać z zasobów innych węzłów.

 

Sesja użytkownika

Zgłoszenie użytkownika do pracy w systemie login otwiera nową sesję i uruchamia interpreter komend systemowych sh (shell). Proces interpretera komend jest procesem wiodącym sesji, a konsola z której został on uruchomiony jest terminalem sesji. Zakończenie procesu wiodącego lub awaria terminala sesji zawiadomienie i najczęściej zakończenie wszystkich procesów, uruchomionych w czasie sesji (sygnał SIGHUP).

 

              Procesy wykonywane podczas sesji są powiązane hierarchiczną zależnością, wynikającą z kolejności ich tworzenia. Są to:

·      proces macierzysty,

·      procesy potomne.

między którymi są relacje pokrewieństwa. Daje to procesowi macierzystemu sprawdzanie stanu procesów potomnych i na oczekiwanie na zakończenie procesów potomnych.

              Wchodzący w skład jądra egzekutor szereguje procesy Gotowe na 32 poziomach priorytetu (0..31). Procesy o wyższym priorytecie wywłaszczają procesy o priorytecie niższym.

              Procesy na tym samym poziomie priorytetu są szeregowane zgodnie z jednym następujących algorytmów:

·      Algorytm FIFO, który wybiera do wykonania proces najdłużej oczekujący. Proces te wykonuje do zakończenia lub zawieszenia.

·      Algorytm karuzelowy, który wybiera procesy kolejno i wykonuje je przez określony odcinek czasu slice.

·      Algorytm adaptacyjny, który wybiera procesy kolejno, podobnie jak w algorytmie karuzelowym. Po wyczerpaniu przydzielonego odcinka czasu system wywłaszcza proces, obniżając jego priorytet, Jeżeli wykonanie procesu o obniżonym priorytecie nie zostaje podjęte w ciągu 2s, jego priorytet podnosi się o 1, lecz nie wyżej od pierwotnego poziomu. Proces zawieszony odzyskuje swój pierwotny priorytet.

4. KONDYCJONOWANIE SYGNAŁÓW

              Informacja o wartościach zmiennych, opisujących procesy przemysłowe, dostarczana jest przeważnie przez czujniki, które przetwarzają sygnały różnych wielkości fizycznych na ogół w sygnały elektryczne – są to najczęściej sygnały napięciowe i prądowe. Przykładem takiego przetwarzania mogą być czujniki temperatury. Jako czujniki temperatury używa się najczęściej:

·        Termoelementy, których końce znajdują się w obszarach o temperaturze mierzonej i temperaturze odniesienia. Pomiar temperatury następuje przez pomiar napięcia różnicowego tych termoelementów.

·        Rezystory, których oporności silnie zależy od temperatury, np. czujniki, wykonane z drutu platynowego Pt100 lub termistory, czyli czujniki półprzewodnikowe o działaniu objętościowym. Pomiar temperatury następuje w tym przypadku poprzez pomiar napięcia wywoływanego przez znany prąd, przepływający przez czujnik, umieszczony w obszarze o mierzonej temperaturze.

...

Zgłoś jeśli naruszono regulamin