Artykuł w PAK - Pomiary, Automatyka, Kontrola (01/2004)

Transkrypt

Artykuł w PAK - Pomiary, Automatyka, Kontrola (01/2004)
HAP
J
Janusz Hajda - Automatyka Przemysłowa
ul. Klasztorna 5, 41-922 Radzionków
tel.0602 578 549, tel./fax.(032) 389-91-04
email: [email protected] , [email protected]
Nowoczesne systemy SCADA z bezpośrednim dostępem przez Internet.
Janusz HAJDA
Grzegorz ZIELIŃSKI
Wprowadzenie
Rozwój techniki wymusza istotne zmiany w podejściu do tworzenia systemów SCADA.
Zmiany te dotyczą nie tylko wydajności, ale przede wszystkim prostoty obsługi i łatwości
dostępu.
Szczególnie ułatwianie dostępu staje się zadaniem priorytetowym. Jest to spowodowane m.in.
rosnącą mobilnością pracowników, ale również np. wymogiem społecznej kontroli takich
obiektów jak oczyszczalnie ścieków, gdzie pewne parametry powinny być udostępnione
publicznie, a co się z tym wiąże, nie mogą wymagać instalacji dedykowanego systemu
SCADA na komputerze użytkownika.
Jednym z najbardziej interesujących rozwiązań tych problemów jest wykorzystanie modułu
serwera WWW dla modularnego sterownika PLC (rys.1). Przykładem może być moduł
TSXETY5102 dla sterownika Premium firmy Schneider Electric. Możliwości i ograniczenia
modułu oraz zagadnienia związane z jego programowaniem stanowią temat niniejszej
publikacji.
Rysunek 1 - sterowniki PLC z serwerami WWW w sieci ETHERNET
Moduł serwera WWW
Moduł oparty na szybkim procesorze Motorola PowerPC MPC860 50Mhz, spełnia wymogi
najnowszych standardów: szybka transmisja (100 Mb/s), autonegocjacja szybkości, wsparcie
dla BootP/DHCP, SNMP. Moduł wyposażono w dwa obszary pamięci FLASH po 8 MB
każdy – pierwszy obszar zawiera system operacyjny czasu rzeczywistego, drugi stanowi
przestrzeń dla stron WWW i bibliotek tworzących aplikację użytkownika.
Zastosowanie
W rzeczywistości moduł serwera WWW jest często wykorzystywany jedynie jako łącze PCPLC, z klasycznym systemem SCADA umieszczonym po stronie PC. Wynika to głównie z
nieświadomości odnośnie możliwości modułu. Tymczasem 8 MB pamięci flash dostępnej dla
użytkownika pozwala na zbudowanie pokaźnej aplikacji SCADA umieszczonej w module i
dostępnej z dowolnego miejsca za pomocą zwykłej przeglądarki internetowej. Bardzo
istotnym i często pomijanym faktem jest specyfika aplikacji tworzonych poprzez osadzanie
apletów Javy w witrynie WWW. Mianowicie aplety te nie zawierają całego kodu
wykonywalnego, a jedynie część stworzoną przez projektanta aplikacji. Większość funkcji
czerpią one z bogatych zasobów udostępnianych przez biblioteki składające się na Java
Runtime Environment – środowisko uruchomieniowe języka Java. Pakiet ten musi być
zainstalowany w systemie po stronie klienta, przy czym jest to darmowy dodatek do
najbardziej popularnych przeglądarek, swobodnie dostępny z witryny Sun Microsystems
(java.sun.com). Rozwiązanie to znacznie redukuje ilość przesyłanych danych przy
zachowaniu głównego założenia jakim jest dostęp do w pełni funkcjonalnej aplikacji z
dowolnego, zdalnego komputera, bez konieczności instalacji.
Programowanie – FactoryCast i NFC SCADA Library
Moduł serwera WWW TSXETY5102 (jak również podobny moduł TSXETZ510
współpracujący we sterownikami TSX Micro) dostarczany jest wraz z pakietem
oprogramowania FactoryCast. Pakiet ten zawiera zestaw podstawowych apletów (wskaźnik
analogowy, wskaźnik cyfrowy, przycisk, suwak, „pasek postępu”) oraz biblioteki
komunikacyjne, zapewniające transmisję danych między sterownikiem i apletami. Aplikacja
WWW tworzona jest poprzez umieszczanie tagów <applet> z odpowiednimi parametrami
(tag <param>) w kodzie HTML strony WWW. Tak przygotowana strona, umieszczona w
pamięci FLASH sterownika, stanowi gotową, dostępną z zewnątrz aplikację SCADA.
Pakiet FactoryCast został zaprojektowany jako zwarte, kompleksowe rozwiązanie,
pozwalające na szybkie i łatwe tworzenie aplikacji SCADA, przy możliwie niskich
wymaganiach odnośnie kwalifikacji projektanta – stąd łatwość konfiguracji i duża odporność
pakietu na błędy użytkownika.
Dobrze dobrany zestaw kilkunastu apletów pozwala na zbudowanie większości aplikacji.
Bardziej skomplikowane aplikacje mogą wymagać zbudowania dodatkowych apletów za
pomocą dołączonego SDK.
Omawiana wersja 2.2.2 pakietu FactoryCast współpracuje z bibliotekami języka Java w wersji
1.1.5 i późniejszych. Wprawdzie oznacza to zgodność zarówno z środowiskiem Java firmy
Sun Microsystems jak i z jego Microsoft’owym odpowiednikiem, jednak aktualną wersję Javy
Sun’a, 1.4.2, dzieli od wersji 1.1.5 przepaść technologiczna. Dodatkowo Microsoft zarzucił
wspieranie swojej wersji na rzecz języka C#. Co więcej, zmiany w Sun Microsystems Java
1.4.x w niektórych przypadkach uniemożliwiają działanie kodu pisanego w starych wersjach
języka, zwłaszcza jeśli jest to kod nie do końca prawidłowo napisany lub nie spełniający
wszystkich wymogów bezpieczeństwa.
Biblioteki Java 1.1.x korzystają z nieco już dziś archaicznego sposobu tworzenia grafiki. Java
1.4.x zawiera biblioteki Swing, pozwalające na tworzenie znacznie wydajniejszych,
efektowniejszych i wygodniejszych interfejsów użytkownika.
W chwili projektowania bibliotek FactoryCast, bezpieczeństwo było istotnym, ale nie
kluczowym aspektem. Stąd prostota systemu autoryzacji, nie przystającego do wymagań
dzisiejszych rozwiązań. FactoryCast przewiduje jedną nazwę użytkownika i trzy hasła:
pierwsze pozwala na dostęp do zabezpieczonej części aplikacji, drugie pozwala na zapis
informacji do sterownika (pierwsze hasło umożliwia jedynie odczyt), trzecie hasło
zabezpiecza dostęp do konfiguracji serwera.
W 2003 roku powstał projekt NFC SCADA Library – pakietu będącego rozszerzeniem i
częściowo alternatywą dla FactoryCast. W wersji 1.0 pakiet ten korzysta jeszcze z bibliotek
komunikacyjnych FactoryCast, jednak całkowicie zastępuje jego warstwę prezentacyjną i
konfiguracyjną. Wprowadza także inne podejście do problemu komunikacji aplet-serwer, jak
również kilka innych ulepszeń. Między innymi operuje bezpośrednio na apletach, podczas gdy
FactoryCast udostępnia tzw. Java Beans, które dopiero na stronie docelowej są
„opakowywane” w formę apletu.
Porównanie wybranych aspektów obu pakietów przedstawiają stosowne tabele.
Projektowanie aplikacji
Aplikacje projektowane są w formie stron WWW z umieszczonymi apletami FactoryCast
(rys. 2) lub NFC SCADA Library (rys. 3). Struktura plików sterownika przewiduje dwa
foldery na strony użytkownika: w folderze /wwwroot/unsecure/user można umieszczać strony
ogólnodostępne. Folder /wwwroot/secure/user wymaga zalogowania (nazwa użytkonika i
hasło). Obydwa foldery przewidują możliwość tworzenia podfolderów, pozwalając na
efektywne i wygodne zarządzanie nawet skomplikowanymi witrynami-aplikacjami.
NFC SCADA Library v 1.0
Łatwe i wygodne tworzenie stron
użytkownika:
Krok pierwszy – standardowy scenariusz
<applet>+<param> pozwala na szybkie i
łatwe tworzenie surowych stron, za pomocą
zwykłego mechanizmu kopiuj-wklej oraz
dostarczonych szablonów kodu html, które po
drobnych modyfikacjach (nazwa apletu,
ewentualnie kilka wartości). Końcowy
użytkownik pracuje na rzeczywistych
apletach, z pełnymi możliwościami
parametryzacji.
Pakiet FactoryCast v 2.2
Niewygodne tworzenie stron użytkownika:
Krok pierwszy – prekonfiguracja elementów
(Java Beans) za pomocą Graphic Editor’a
pozwala na ich wizualne dopasowywanie,
jednak są one odseparowane od docelowej
strony WWW.
Wyniki prekonfiguracji są zapisywane jako
biblioteka.
Krok drugi – aplet ConfManager pozwala na
wygodne, wizualne, wykonywane „w locie”
dopasowywanie wyglądu strony z niemal
natychmiastowym (po odświeżeniu strony)
efektem. Każdy aplet jest początkowo
wyświetlany z domyślnymi, albo
prekonfigurowanymi (patrz krok pierwszy)
parametrami, dowolny parametr może być
zmieniony w dowolnym czasie przez
uprawnionego użytkownika (patrz krok
trzeci).
Rezultaty konfiguracji są zapisywane jako
plik zawierający zestaw parametrów.
(opcjonalny) Krok trzeci – modyfikacja
wyglądu strony może być dokonana „w locie”
przy użyciu apletu ConfManager z
natychmiastowym (po odświeżeniu strony)
skutkiem. Uprawniony użytkownik może
zmienić dowolny parametr dowolnego apletu,
przy czym dokonane zmiany widoczne są
natychmiastowo dla wszystkich nowych
połączeń z serwerem (lub dla każdego
istniejącego połączenia po prostym
odświeżeniu strony).
Wybieralny schemat „look and feel”
(schemat wyglądu i obsługi interfejsu
użytkownika):
Docelowy użytkownik może wybrać jeden z
dwu schematów „look and feel”:
standardowy, „metalowy” schemat
(oznaczony jako „crossplatform”) i nowy,
dynamiczny schemat, oznaczony jako
„system”. Pierwszy z nich zapewnia
jednakowy wygląd, obsługę i zachowanie
apletów niezależnie od platformy (Windows,
Unix, Linux, Mac) jak i wersji systemu
operacyjnego. Drugi natomiast dostosowuje
się do systemu operacyjnego danego
użytkownika, dostosowując wygląd, obsługę i
zachowanie apletów do odpowiedniego
systemu operacyjnego, stąd aplety wyglądają
inaczej i adekwatnie pod systemami takimi
jak Windows 9x, Windows 2000, Windows
XP, Linux, Mac OS, itp. Szczególnie pod
Windows XP aplety wyglądają bardzo ładnie.
Krok drugi – każdy prekonfigurowany elemet
„Java Bean” musi zostać „opakowany” w
LiveBeanApplet zanim może zostać
wstawiony na stronę WWW. Powstałe aplety
nie mogą być rekonfigurowane z poziomu
docelowej strony WWW (patrz krok trzeci).
(opcjonalny) Krok trzeci – modyfikacja
wyglądu strony musi być wykonana poprzez
modyfikację biblioteki za pomocą Graphic
Editor’a lub poprzez ręczną manipulację
kodem html. Pierwsze rozwiązanie jest także
odseparowane od docelowej strony, a drugie
nie pozwala na wstawienie na stronę obiektów
nie włączonych do uprzednio (patrz krok
pierwszy) utworzonej biblioteki.
Pojedynczy schemat „look and feel”:
Aplety mają jeden, standardowy, “metalowy”
schemat „look and feel”. Występują duże
różnice między wyglądem, zachowaniem i
obsługą apletów a wyglądem, zachowaniem i
obsługą natywnych aplikacji w
poszczególnych systemach operacyjnych.
Docelowy użytkownik (projektant) może
skorzystać z jednego ze skryptów
dostarczanych z NFC SCADA Library aby
automatycznie dopasować tło strony WWW
do apletów, nawet jeśli wybrany przez
użytkownika „systemowy” schemat „look and
feel” dopasowuje wygląd, a więc i kolor
apletów do ustawień systemu konkretnego
użytkownika.
Docelowy użytkownik (projektant) musi
wybrać odpowiednie tło strony aby
dopasować je do „metalowego” wyglądu
apletów.
Rysunek 2 - przykładowa aplikacja FactoryCast (ilustracja ze strony www producenta)
Regulator – metal look and feel
Regulator – system look and feel (Win 2000)
Monitor – metal look and feel
Monitor – system look and feel (Win 2000)
Rysunek 3 – różnice w stylach “look and feel” – pakiet NFC SCADA Library
Komunikacja PC – PLC
Omawiany moduł serwera WWW akceptuje dwa protokoły komunikacyjne: modbus TCP/IP
oraz XWAY TCP/IP. Stosowne biblioteki zapewniają możliwość czytania, ustawiania i
monitorowania zmienych wszystkich istotnych typów (BOOL, SHORT, INT, REAL i ich
odmiany).
NFC SCADA Library v 1.0
Jeden, prosty i silny, model komunikacji:
Prosty i silny model „jeden CommManager –
wiele źródeł i odbiorców danych”. Tylko
jeden egzemplarz apletu CommManager jest
potrzebny na jednej stronie. Każdy pozostały
aplet może być źródłem danych, odbiorcą
albo jednym i drugim. Co więcej, każdy aplet
może zapisywać i/lub monitorować wiele
adresów/wartości PLC. Aplet CommManager
zbiera deklaracje źródeł/odbiorców danych od
wszystkich apletów na stronie, po czym
tworzy i rejestruje komponenty
zapisujące/monitorujące dane, po jednym dla
każdej unikalnej pary adres-typ, oraz zarządza
całą komunikacją.
Pakiet FactoryCast v 2.2
Dwa modele komunikacji:
Model LiveBean-LiveBeanManager,
wymagający umieszczenia egzemplarza apletu
LiveBeanApplet dla każdego symbolu
(zmiennej) lub bezpośredniego adresu
monitorowanego/kontrolowanego na stronie.
Przykładowo do kontrolowania trzech
zmiennych potrzebne będą trzy aplety
LiveBeanAplet. Dodatkowo na każdej stronie
wymagany jest jeden egzemplarz apletu
LiveBeanManager, pośredniczącego w
transmisji i umożliwiającego włączenie zapisu
do PLC (po zalogowaniu).
Model „jeden aplet – jeden element comm
bean”, dostępny m.in. dla celów tworzenia
własnych apletów. Każdy aplet ma własny
egzemplarz elementu CommBean i w
rezultacie własne połączenie z PLC. Niestety,
biblioteki komunikacyjne FactoryCast nie są
prawidłowo przygotowane dla takiego
modelu. Podczas testów z dwoma tak
przygotowanymi apletami monitorującymi ten
sam adres w PLC, drobne różnice czasu
ładowania strony i inicjalizacji apletów
decydowały o poprawnym lub niepoprawnym
funkcjonowaniu komunikacji.
Bezpieczeństwo
Obydwa pakiety prezentują odmienne podejście do problemów bezpieczeństwa, a szczególnie
do zagadnień autoryzacji użytkowników i przydzielania im uprawnień.
NFC SCADA Library v 1.0
Bezpieczne zarządzanie komunikacją:
Pakiet FactoryCast v 2.2
Luki w bezpieczeństwie w zarządzaniu
komunikacją:
Klasa CommManager pakietu NFC SCADA
Library nie zezwala na pisanie do adresów
ustawionych jako „tylko do odczytu”. Każde
żądanie rejestracji źródła danych jest
sprawdzane i akceptowane lub odrzucane w
zależności od uprawnień użytkownika oraz
stanu flagi „tylko do odczytu” konkretnego
adresu.
Rozbudowany system autoryzacji:
Aplet AuthManager jest niezależny od apletu
zarządzającego transmisją. Pozwala on na
autoryzację uprawnień użytkownika. Pakiet
NFC SCADA Library przewiduje możliwość
zdefiniowania wielu użytkowników, każdego
z własnym hasłem i własnym zestawem
uprawnień. Informacje o użytkownikach i ich
uprawnieniach są składowane w pamięci
sterownika w postaci zaszyfrowanej.
Algorytmy szyfrowania spełniają dzisiejsze
wymagania bezpieczeństwa.
Klasa CommBean pakietu FactoryCast
zezwala na pisanie do adresów PLC
ustawionych jako „tylko do odczytu”. To
aplet-klient decyduje czy sprawdzać status
adresu czy nie. Jest to dość istotna luka w
bezpieczeństwie.
Prosty system autoryzacji:
Aplet LiveBeanMgr zarówno pośredniczy w
komunikacji (patrz wyżej) jak i pozwala na
autoryzację zapisu do sterownika. Generalnie
pakiet FactoryCast przewiduje jedną nazwę
użytkownika i trzy hasła: dostępu (wymagane
dla dostępu do stron z folderu /
wwwroot/secure/user), zapisu (wymagane dla
włączenia możliwości zapisu wartości do
zmiennej sterownika) i konfiguracji
(wymagane m.in. przez program FactoryCast
Configurator dla dostępu do drzewa
katalogów sterownika). Hasła przechowywane
są w postaci otwartego tekstu w plikach w
pamięci sterownika (hasło konfiguratora jest
zaszyfrowane prostym algorytmem).
Podsumowanie
Pakiet FactoryCast jest dość dobrą podstawą do tworzenia prostych systemów wizualizacji.
Jednak przyszłość należy do rozwiązań dających większe możliwości graficzne,
wygodniejszych i prostszych w użyciu, a przede wszystkim bardziej bezpiecznych. NFC
SCADA Library bazuje na najnowszej dostępnej wersji języka Java i jest stale aktualizowany.
Nowatorskie podejście do konfiguracji znacząco zwiększa wygodę posługiwania się pakietem,
a stale rozwijany aplet autoryzacyjny pozwoli na załatanie istotnych luk w zabezpieczeniach,
pozwalając na użycie stworzonych aplikacji zarówno w intra- jak i w internecie. Planowane
kierunki rozwoju, jak wsparcie dla urządzeń mobilnych (PDA, telefony z technologią Java),
dodatkowa autoryzacja w krytycznych punktach (karty chipowe (smartcards), identyfikatory
bezprzewodowe (RFID)), wsparcie dla OPC czy szyfrowanie transmisji czynią NFC SCADA
Library pakietem na miarę XXI wieku.
Demonstracja pakietu NFC SCADA Library oraz dodatkowe informacje o produkcie będą
czasowo dostępne pod adresem http://nfc.intechion.com. Dodatkowo odpowiedzi na pytania
będzie można uzyskać poprzez e-mail:
[email protected] / [email protected]
lub
[email protected] / [email protected]

Podobne dokumenty