X Konferencja „Sieci i Systemy Informatyczne”
Łódź, październik 2002
BOGUSław zIELIŃSKI
Samodzielny Zakład Sieci Komputerowych Politechniki Łódzkiej
UKŁAD SCALONy IPC@CHIP - Uniwersalny system
łączący możliwości komputera PC i sterownika plc
Recenzent
Streszczenie
Artykuł omawia możliwości układu scalonego SC12 IPC@CHIP firmy BECK oraz przedstawia przykłady jego zastosowań. SC12 to system będący rozwiązaniem kompletnego komputera PC, wyposażonego w procesor 186, pamięci RAM, FLASH, port ETHERNET, 2 porty szeregowe i pełniący jednocześnie rolę sterownika PLC. Układ posiada rozbudowane oprogramowanie systemowe. SC12 to również serwer WWW, do którego można uzyskać dostęp za pomocą zwykłej przeglądarki internetowej.
1. Wstęp
Szybki rozwój Internetu i zalety jakie niesie możliwość pracy w sieci wpłynął w znacznym stopniu na przemiany zachodzące w technologii i oprogramowaniu przemysłowych systemów sterowania. Użytkownikom sterowników PLC przestała wystarczać możliwość sterowania i kontroli pojedynczą maszyną czy nawet prostym procesem przemysłowym. Naturalnym stało się dążenie do kontroli pracy większych systemów przemysłowych i to z dowolnego miejsca, w którym istnieje dostęp do Internetu [2], [4].
Ciekawym rozwiązaniem tego zagadnienia jest IPC@CHIP [11] - produkt firmy BECK wchodzącej w skład koncernu FESTO. System IPC@CHIP zawierający procesor 186 jest praktycznie małym komputerem PC wyposażonym w interfejs ETHERNET, wejścia i wyjścia cyfrowe oraz bardzo rozbudowane oprogramowanie systemowe. Posiada system operacyjny czasu rzeczywistego z interfejsem API do wszystkich funkcji systemowych. Obsługę systemu można prowadzić tak, jak zwykłego komputera PC poprzez terminal TELNET. SC12 jest jednocześnie serwerem WWW, do którego dostęp uzyskujemy za pomocą zwykłej przeglądarki internetowej. Interfejs ETHERNET jak i obsługa protokołów PPP, HTTP, TELNET, FTP, UDP, TCP/IP pozwala na korzystanie ze stabilnej i ogólnodostępnej platformy programowej bez konieczności wiązania się z rozwiązaniami konkretnego wytwórcy oprogramowania. Atutem systemu IPC@CHIP jest jego wielkość. Mieści się w jednym układzie scalonym (moduł standard DIL32) o wymiarach 22 x 44 x 9,5 mm (rys. 1).
Rys. 1. System SC12 IPC@CHIP firmy BECK.
2. Podstawowe dane techniczne IPC@CHIP
SC12 IPC@CHIP jest kompletnym systemem zawierającym hardware oraz oprogramowanie. Podstawowe jego dane techniczne prezentują się następująco [3], [8]:
· 16 bitowy procesor AMD186 - 20 MHz,
· 512 KB pamięci RAM, 512 KB pamięci Flash,
· 2 porty szeregowe z TTL-RS232,
· ETHERNET 10BaseT z PHY,
· magistrala I²C, Watchdog,
· 2 zegary wejściowe, 2 zegary wyjściowe,
· 14 programowalnych we/wy cyfrowych (I/O),
· magistrala multipleksowana AD-bus,
· detekcja zaniku napięcia.
Do uruchamiania systemu IPC@CHIP służy moduł kontrolny DK40 [7] lub kompletny zestaw startowy DK41.
3. Oprogramowanie IPC@CHIP
IPC@CHIP jest wyposażony w system operacyjny czasu rzeczywistego RTOS (Real Time Operating System) [3], [17] znajdujący się w wewnętrznej pamięci Flash układu. RTOS pozwala na jednoczesne uruchomienie 35 zadań. Do komunikacji pomiędzy RTOS i programami użytkowymi, napisanymi w C, Turbo Pascalu czy Assemlerze, stosowane są API (Application Programmers Interfaces). API są podprogramami kontrolującymi różne grupy funkcyjne IPC@CHIP, stosują przerwania programowe do przesyłania parametrów i zmiennych.
Podstawowe oprogramowanie IPC@CHIP składa się z RTOS-u z plikiem systemowym, stosem TCP/IP, serwerem WWW, serwerem FTP, serwerem TELNET i warstwą interfejsu hardwar’owego. System IPC@CHIP obsługuje protokoły PPP, HTTP, TELNET, FTP, UDP, TCP/IP. Architektura systemu operacyjnego czasu rzeczywistego RTOS została przedstawiona na rys. 2.
Każdy z programów aplikacyjnych może być napisany w Borland C++ (do wersji 5) na komputerze PC pod Windows i uruchomiony jako zadanie w RTOS-ie. Polecenia RTOS dokładnie stosują się do systemu operacyjnego DOS i są rozszerzane przez specjalne komendy, które pozwalają systemowi IPC@CHIP pełnić funkcję serwera sieci.
Rys. 2. Architektura systemu operacyjnego RTOS.
Pewne usługi, których nie zawiera system (np. FTP-klient, usługi SMPT/POP) są dostępne poprzez bezpłatne C-biblioteki.
4. Uniwersalność i zalety systemu IPC@CHIP
IPC@CHIP w postaci 32-polowego modułu, zawierający system operacyjny, jest praktycznie gotowy do pracy po włożeniu do modułu uruchomieniowego. Należy jedynie podać napięcie zasilające i wykonać podłączenie przy pomocy łącza szeregowego lub ETHERNETU z wykorzystaniem łączności terminalowej [7]. Serwer FTP i HTTP są również uruchamiane natychmiast. Po załadowaniu strony HTML, jej zawartość może być prezentowana w żądanej postaci.
Tym, co różni IPC@CHIP od innych systemów to posiadane, bez konieczności załadowania, rozbudowane oprogramowanie. Jest on nie tylko uniwersalnym komunikacyjnym procesorem z dwoma interfejsami szeregowymi i ETHERNETEM. Posiada także interfejs I/O stosowany w sterownikach PLC, przez który może być połączony z drugim sterownikiem lub urządzeniem peryferyjnym. Mnogość funkcji systemu wzbogaca się o 14 I/O, multipleksowaną magistralę AD, licznik, funkcje przerwań. Użytkownik unika konieczności łączenia systemu operacyjnego, programów użytkowych i zmiennych procesowych w jeden segment, który należy załadować do systemu docelowego. W IPC@CHIP te elementy są separowane i mogą być zmieniane niezależnie od siebie (programy użytkowe i zmienne nawet w trakcie zdalnego dostępu). Wszystkie programy użytkowe i zmienne są umieszczone w wewnętrznej pamięci Flash. Wielkość 32-polowej modułowej obudowy ułatwia uruchamianie systemu, może on być szybko wymieniany w przypadku konieczności zmiany oprogramowania użytkowego.
W IPC@CHIP celowo zastosowano procesor 16-bitowy i 1 MB pamięci kładąc nacisk na optymalne wykorzystanie przez RTOS. Przy identycznej konfiguracji pamięci, RTOS jest bardziej dostosowany do IPC@CHIP niż przeciętny 32-bitowy system. Ponieważ system operacyjny jest skonstruowany modułowo, istnieje możliwość zrezygnowania z niepotrzebnych usług i wykorzystania uzyskanego obszaru pamięci dla programów użytkowych.
IPC@CHIP idealnie łączy technologię Internetu, ETHERNET i TCP/IP z zastosowaniami układów czasu rzeczywistego.
5. Internetowa wizualizacja przy użyciu IPC@CHIP
Istnieje szereg metod wizualizacji informacji uzyskanej z SC12 IPC@CHIP w przeglądarce internetowej. Do prezentacji wykorzystano system SC12 zainstalowany w module DK40 [10] i podłączony do sieci Internet w firmie BECK. Podane poniżej metody nie wyczerpują oczywiście możliwości IPC@CHIP, każda konkretna aplikacja jest wynikiem potrzeb użytkownika.
5.1. Zastosowanie typowych stron HTML i CGI
Typowe strony HTML mają postać statyczną, ich zawartość nie zmienia się w czasie. Najprostszą metodą tworzenia stron o zmiennej zawartości jest modyfikacja pliku w pliku systemowym. Program w C ciągle przetwarza plik na podstawie bieżącej informacji. Wadami tego rozwiązania jest ciągłe ładowanie CPU (nawet, gdy nie ma polecenia od przeglądarki) i konieczność kodowania HTML w języku C. Chociaż jest to najprostsza metoda, jest rzadko stosowana.
Program obsługi CGI (Common Gateway Interface) jest techniką wykorzystywaną do tworzenia dynamicznych dokumentów WWW [1]. Wywołanie programu następuje, jeśli z przeglądarki zostanie wydane polecenie ładowania strony o konkretnej nazwie. Program wytworzy zawartość w pamięci i dostarczy ją przez serwer WWW do przeglądarki. CPU jest wykorzystywane w przypadku żądania wysłanego przez przeglądarkę.
Rys. 3 przedstawia obraz uzyskany w oknie przeglądarki. W lewej części widoczne są stany I/O ICP@CHIP, a w prawej klawisze do zmiany tych stanów. Automatyczne przeładowanie strony następuje co 4 sekundy.
Inne metody tworzenia stron o zmiennej zawartości wykorzystują CGI do przetwarzania zmiennych informacji.
IPC@CHIP CGI DK40 IO=0x0016
I0=0 I1=1 I2=1 I3=0 I4=1 I5=0 I6=0 I7=0
© BECK IPC GmbH
IPC@CHIP CGI DK40
Pin 0: Set Reset
Pin 1: Set Reset
Pin 2: Set Reset
Pin 3: Set Reset
Pin 4: Set Reset
Pin 5: Set Reset
Pin 6: Set Reset
Rys. 3. Wizualizacja stanów I/O systemu IPC@CHIP.
5.2. Zastosowanie ACP (Active Chip Pages)
ACP jest technologią, gdzie cząstki kodu odczytują i przetwarzają plik z pliku systemowego przed pobraniem go przez serwer WWW. Podczas tego procesu, polecenia wewnątrz pliku są interpretowane. W tej technice można tworzyć dynamiczne strony WWW. ACP są tłumaczone przez SC12 zanim serwer WWW przekaże je do przeglądarki. Podczas interpretowania, stan informacji będzie wykorzystany do zmiany zawartości strony HTML i zmiany stanu w SC12.
Rys. 4 przedstawia widok modułu uruchomieniowego DK40. „Klikając” na obraz któregokolwiek I/O można zmienić jego stan. ACP daje możliwość przedstawienia informacji w postaci tekstu (wartość słowa wejściowego DK40) lub przy użyciu kombinacji ze skryptem Java uzyskać skalę z graficznym obrazem wartości tego słowa.
0------------------------100----------------------200-----------************************************************************ 2380------------------------100----------------------200-----------
Rys. 4. Wizualizacja z wykorzystaniem technologii ACP.
Interpreter ACP jest instalowany jako program CGI. W adresie URL definiuje się nazwę pliku HTML. Program CGI przetwarza plik w buforze pamięci i dostarcza jego zawartość do przeglądarki. Składnia interpretera ACP oferuje komendy takie, jak: IF, ELSE, THEN oraz komendy zmianu stanu wyjść. Można dodać również własne komendy.
5.3. Zastosowanie apletów Javy
Aplety Javy [5], [14] są krótkimi programami, których uruchomienie następuje wewnątrz zastrzeżonego obszaru w przeglądarce. Pobierają informację z SC12 przez wywołanie programów CGI i zmieniają obraz obszaru w przeglądarce (są przesyłane w postaci oddzielnych plików). Aplety Javy stanowią idealne narzędzie w przypadku konieczności stosowania rozbudowanej grafiki i przedstawiania zmiennych procesowych. Podstawową zaletą apletów Javy jest uzyskanie ciągłej zmiany obrazu bez irytującego odświeżania.
Rys. 5. Wykorzystanie apletów Javy do wizualizacji stanów I/O IPC@CHIP
Aplet wykorzystuje zwykłą komunikację HTTP do SC12, co pozwala uniknąć problemu „ściany ognia”. Na rys. 5 przedstawiono widok stanu sygnałów I/O SC12. Aplet pobiera dane z SC12 i modyfikuje kilka pikseli w celu uaktualnienia stanu I/O. Aplety mogą być również stosowane wewnątrz programu HTML. Za pomocą apletów można wizualizować także zmienne tekstowe i przedstawiać zmienne w postaci trendów.
5.4. Zastosowanie technologii Flash
Technologia Flash [15] zyskuje popularność wśród projektantów stron WWW, którzy tworzą ruchome obrazy. W przeciwieństwie do tradycyjnej grafiki, opartej na zapamiętywaniu koloru i położenia pojedynczych pikseli, Flash wykorzystuje grafikę wektorową, która używa do konstrukcji obrazów formuły matematyczne.
Rys. 6. Wizualizacja z wykorzystaniem technologii Flash.
Scenariusze akcji są stosowane do uzyskania informacji z SC12 i zainicjowania działania w innej postaci. Animacja Flash uaktualnia obraz bez przeładowania strony (rys. 6). Zasada działania animacji Flash polega na przedstawieniu sekwencji obrazów. Scenariusze mogą być użyte do sterowania pomiędzy obrazami. Animacja używa języka skryptów do żądania o stronę CGI z SC12.
5.5. Zastosowanie technologii Speech
Microsoft Agent [16] oferuje metody uzyskania mowy komputerowej. W przypadku zastosowania IPC@CHIP komputer PC może wygłosić każdy tekst stworzony przez procesor SC12. Microsoft Agent pracuje tylko z Microsoft Internet Explorer. Agent jest uruchamiany poza Windows. Do wysyłania poleceń wykorzystuje się skrypty Javy. Zawartość skryptów jest dynamizowana przy użyciu ACP.
6. Przykłady zastosowań systemu SC12 IPC@CHIP
Przy użyciu SC12 można sterować pracą oraz prowadzić kontrolę różnych urządzeń przez Internet lub WAP. Obrazują to poniższe przykłady [9].
6.1. Zdalna kontrola temperatury
Układ pomiaru i regulacji temperatury [12] został zmontowany w siedzibie firmy BECK (rys. 7). W skład układu wchodzą:
Rys. 7. Układ pomiaru i regulacji temperatury.
(1) zasilacz 24 VDC,
(2) IPC@CHIP wbudowany w DK40, kontrolujący wszystkie programy użytkowe i umożliwiający pełną kontrolę i dostęp przez przeglądarkę WWW i WAP,
(3) SM12 – konwerter szeregowy (TTL/RS232),
(4) miernik z RS232 – wykorzystywany jako termometr mierzący temperaturę opornika w urządzeniu użytkownika,
(5) urządzenie użytkownika (opornik) – wymagający okresowej stabilizacji i kontroli.
Jednostka pomiarowa miernika jest podłączona do opornika i mierzy jego temperaturę. IPC@CHIP podłączony jest do miernika przez RS232 i odczytuje aktualną temperaturę. W zależności od niej załącza lub wyłącza zasilacz. Użytkownik ma możliwość dostępu do IPC@CHIP przez przeglądarkę WWW lub WAP, może zmienić rodzaj pracy, zadać lub zmienić temperaturę opornika. IPC@CHIP wyposażony jest w program wykonawczy WebDemo, który umożliwia wykorzystanie niektórych funkcji CGI niezbędnych do uzyskania dostępu do projektu przez WAP lub przeglądarkę WWW.
6.2. Kamera WWW z SC12 IPC@CHIP
Kamera WWW [13] została zainstalowana w siedzibie firmy BECK. Głównym założeniem projektu było przetworzenie standardowych sygnałów video i przesłanie ich dalej poprzez IPC@CHIP do TCP/IP. Ze względu na dużą rozdzielczość cyfrowego obrazu (720x625 pikseli), musiał on zostać skompresowany przed transferom do IPC@CHIP. Aby ograniczyć do minimum obliczenia wewnątrz systemu, kompresja obrazu do standardu JPG została dokonana w specjalizowanym układzie. Do odczytu skompresowanych danych zastosowano DMA.
Rys. 8. Obrazy z kamery WWW uzyskane w przeglądarce WWW.
Ostateczna rozdzielczość obrazu wynosi 320x240 pikseli. W celu zapewnienia zdalnego sterowania kamerą WWW, model wyposażono w dwa silniki krokowe, sterowane w osiach x i y, kontrolowane przez IPC@CHIP z wykorzystaniem strony WWW. Obraz otrzymany z kamery WWW przedstawiono na rys. 8.
6.3. Zdalne sterowanie zużyciem energii elektrycznej w budynku
Ten przykład przedstawia prototypowe rozwiązanie, w którym zastosowano SC12 IPC@CHIP do zdalnego sterowania zużycia energii elektrycznej w pewnym budynku [6]. Przyjęto założenie, że ten zautomatyzowany system może być kontrolowany z dowolnego miejsca na świecie, a zatem musi być podłączony do Internetu lub kontrolowany przy użyciu WAP. W bydynku została rozprowadzona sieć i zastosowano modemy sieciowe TDA5051A (firmy PHILIPS) do transmisji zmiennych do poszczególnych urządzeń. Zasadę działania systemu obrazuje rys. 9. Porty serwera WWW (SC12) są kontrolowane z przeglądarki WWW. Zmienne są przesyłane do pierwszego modemu sieciowego, a stąd transmitowane do drugiego, który załącza odbiornik energii elektrycznej (np. lampę). Do podłączenia lampy, która ma być kontrolowana, do drugiego modemu niezbędny jest moduł dopasowujący. W najprostszym rozwiązaniu funkcję tę pełni zwykły przekaźnik.
Rys. 9. Struktura systemu zdalnego sterowania zużyciem energii.
Do kontroli lamp (i innych urządzeń) przez Internet wykorzystano funkcje CGI IPC@CHIP. Użytkownik może załączać lampy ze strony WWW, polecenia są dostarczane do programu napisanego w języku C przez CGI. W zależności od akcji zachodzącej na stronie WWW, program ustawia lub kasuje cyfrowe I/O IPC@CHIP, które jest podłączone do modemu sieciowego.
Do zdalnego sterowania pracą wielu odbiorników niezbędny jest sterownik mikroprocesorowy. Informacja ze strony WWW jest rozsyłana po całej sieci w budynku. Sterowniki odczytują informację i w przypadku, gdy jest przeznaczona dla nich, przetwarzają i wywołują odpowiednie działanie. Uzyskują też informacje o stanie odbiorników i przesyłają do IPC@CHIP. Mogą to być np. stany czujników, informacje o załączeniu lub wyłączeniu urządzeń. Przykładową topologię domowego systemu sterowania przedstawia rys. 10. Możemy wyróżnić tutaj trzy rodzaje połączeń. W pierwszym jeden odbiornik jest połączony przez sterownik z modemem. To połączenie jest stosowane, gdy odbiorniki są umiejscowione daleko od siebie (np. klimatyzacja, centralne ogrzewanie). W drugim przypadku kilka odbiorników jest podłączonych do jednego sterownika (znajdują się blisko od siebie). W ostatnim przypadku odbiorniki są łączone po kilka do jednego sterownika, a z kolei sterowniki - do jednego modemu (wynika to z ograniczonej ilości I/O sterownika).
Dla zapewnienia transmitowania przez sieć zmiennych różnych typów (generowanych w IPC@CHIP), należy zastosować odpowiedni protokół komunikacyjny. W tym przypadku zastosowano Macromedia FLASH 5 [15].
Rys. 10. Topologia domowego systemu sterowania.
6.4. Przemysłowa wersja systemu - sterownik BC440-WEB i FEC-FC
Przemysłowa wersja IPC@CHIP nosi nazwę BC440-WEB i jest gotowym do pracy sterownikiem PLC. Posiada wszystkie przedstawione wcześniej cechy. Programowanie wykonuje się w języku C/C++. Sterownik jest wyposażony w 16 we / 8 wy tranzystorowych izolowanych optycznie. Firma FESTO oferuje całą gamę sterowników
zbudowanych w oparciu o IPC@CHIP [3]. Najbardziej rozbudowaną wersją jest FEC-FC660 wyposażony w 32 we / 16 wy cyfrowych, 3 we i 1 wy analogowe. Programowanie sterowników FESTO odbywa się w języku FST (Festo Software Tool). Na rys. 11 przedstawiono sterowniki BC440-WEB i FEC-FC640 (wersja bez wejść i wyjścia analogowego).
Rys. 11. Sterowniki BC440-WEB (BECK) i FEC-FC640 (FESTO).
7. Podsumowanie
System SC12 IPC@CHIP to układ, który dzięki swej uniwersalności znajduje szerokie zastosowanie. Może sterować pracą urządzeń domowych, jest wykorzystywany do kontroli pracy pojedynczych maszyn oraz mniejszych systemów przemysłowych. Umożliwia wgląd w przebieg procesów i kontrolę nad nimi za pomocą sieci Internet.
Literatura
[1] Comer D.E.: Sieci komputerowe i inte...
amok10