Podstawy Programowania Systemów SCADA
Transkrypt
Podstawy Programowania Systemów SCADA
Ryszard Jakuszewski Podstawy Programowania Systemów SCADA Supervisory Control and Data Acquisition ProficyTM HMI/SCADA iFIX 5.0 EN® Gliwice 2010 Ryszard JAKUSZEWSKI Podstawy Programowania Systemów SCADA Supervisory Control and Data Acquisition ProficyTM HMI/SCADA iFix 5.0 EN® Ryszard Jakuszewski Podstawy Programowania Systemów SCADA Proficy HMI/SCADA – iFIX 5.0 EN ISBN 978-83-60716-67-0 Recenzent: Dr hab. inż. Marek Pawełczyk Profesor Politechniki Śląskiej Korektorzy: Janusz Wyrwał Paweł Nowak Michał Niezabitowski Rozwiązania ćwiczeń: http://www.vix.com.pl ©Copyright by Ryszard Jakuszewski Wydawnictwo Pracowni Komputerowej Jacka Skalmierskiego ul. Pszczyńska 44 44-100 Gliwice tel. (032) 7298097, fax (032) 7298549 tel. komórkowy (0) 506132960 adres e-mail [email protected] www.pkjs.com.pl Wszystkie prawa zastrzeżone Występujące w tekście zastrzeżone znaki firm są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Autor i wydawnictwo dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności, ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Projekt okładki: Magdalena Zakrzewska Skrócony spis treści 1. Animacja obiektów graficznych 2. Tworzenie, zarządzanie i diagnostyka procesowej bazy danych systemu iFIX 3. Generatory sygnałów 4. Tworzenie i metody zarządzania rysunkami 5. Archiwizacja danych procesowych i ich prezentacja na wykresach 6. Skróty klawiszowe 7. Technologia grup bloków 8. Obsługa zdarzeń przy pomocy harmonogramowania 9. Wielopoziomowy system ochrony 10. Komunikacja ze sterownikami PLC 11. Alarmy – definiowanie, prezentacja, obsługa, potwierdzanie, przeglądanie oraz zapis 12. Rozwiązania sieciowe 13. Protokół komunikacyjny DDE 14. Konfigurowanie systemu Spis treści SŁOWO WSTĘPNE ................................................................................................... V INFORMACJE O PROGRAMIE NARZĘDZIOWYM ................................................. VI 1 2 3 ANIMACJA OBIEKTÓW GRAFICZNYCH......................................................... 1 1.1 Program WorkSpace ...................................................................................................................... 1 1.2 Wstążka systemu iFIX.................................................................................................................... 2 1.3 Praca z obiektami graficznymi ...................................................................................................... 4 1.4 Przypisywanie obiektom właściwości dynamicznych i ich konfiguracja ................................... 6 1.5 Ćwiczenia ........................................................................................................................................ 7 1.5.1 Słupek.................................................................................................................................... 7 TWORZENIE, ZARZĄDZANIE I DIAGNOSTYKA PROCESOWEJ BAZY DANYCH SYSTEMU IFIX ................................................................................ 39 2.1 Struktura procesowej bazy danych – typy bloków oraz budowanie strategii sterowania przy pomocy łańcuchów ........................................................................................................................ 39 2.2 Importowanie i eksportowanie procesowej bazy danych .......................................................... 42 2.3 Określanie wielkości potrzebnego klucza ................................................................................... 43 2.4 Ćwiczenia ...................................................................................................................................... 44 2.4.1 Animacja rurociągu pary ..................................................................................................... 44 2.4.2 Generowanie bloków w procesowej bazie danych .............................................................. 69 2.4.3 Diagnostyka procesowej bazy danych................................................................................. 70 GENERATORY SYGNAŁÓW .......................................................................... 71 3.1 4 Ćwiczenia ...................................................................................................................................... 73 3.1.1 Taśmociąg ........................................................................................................................... 73 TWORZENIE I METODY ZARZĄDZANIA RYSUNKAMI ................................ 85 4.1 Ćwiczenia ...................................................................................................................................... 87 4.1.1 Zarządzanie rysunkami ....................................................................................................... 87 Spis treści i 5 ARCHIWIZACJA DANYCH PROCESOWYCH I ICH PREZENTACJA NA WYKRESACH.................................................................................................. 99 5.1 6 SKRÓTY KLAWISZOWE .............................................................................. 135 6.1 7 11 10.1 Konfiguracja węzła SCADA ...................................................................................................... 179 10.2 Konfiguracja drajwera 6.x......................................................................................................... 182 10.3 Konfiguracja drajwera 7.x......................................................................................................... 186 10.4 Udostępnianie transmitowanych danych w systemie iFIX ...................................................... 187 10.5 Zastosowanie „przesunięć” (OFFSET) do odczytu danych procesowych ............................. 188 10.6 Ćwiczenia .................................................................................................................................... 190 10.6.1 Lampki – technologia OFFSET – drajwer GE9 ................................................................ 190 ALARMY – DEFINIOWANIE, PREZENTACJA, OBSŁUGA, POTWIERDZANIE, PRZEGLĄDANIE ORAZ ZAPIS .................................... 201 Ćwiczenia .................................................................................................................................... 203 11.1.1 Aplikacja: Brak zasilania................................................................................................... 203 ROZWIĄZANIA SIECIOWE ........................................................................... 213 12.1 ii Ćwiczenia .................................................................................................................................... 163 9.1.1 Aplikacja ”Rysunki i zadania” .......................................................................................... 163 KOMUNIKACJA ZE STEROWNIKAMI PLC ................................................. 179 11.1 12 Ćwiczenia .................................................................................................................................... 145 8.1.1 Mieszadło reaktora ............................................................................................................ 145 WIELOPOZIOMOWY SYSTEM OCHRONY .................................................. 161 9.1 10 Ćwiczenia .................................................................................................................................... 140 7.1.1 Piece .................................................................................................................................. 140 OBSŁUGA ZDARZEŃ PRZY POMOCY HARMONOGRAMOWANIA .......... 145 8.1 9 Ćwiczenia .................................................................................................................................... 136 6.1.1 Przełączanie okien przy pomocy klawiszy funkcyjnych ................................................... 136 TECHNOLOGIA GRUP BLOKÓW ................................................................ 139 7.1 8 Ćwiczenia .................................................................................................................................... 100 5.1.1 Proficy Historian jako podstawowy archiwizator danych ................................................. 100 5.1.2 iFIX jako rejestrator danych .............................................................................................. 119 5.1.3 Wykresy bieżące – użycie bloków ETR ............................................................................ 131 Ćwiczenia .................................................................................................................................... 214 12.1.1 Sterowanie w sieci ............................................................................................................. 214 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 13 14 PROTOKÓŁ KOMUNIKACYJNY DDE .......................................................... 227 13.1 DDE Client .................................................................................................................................. 227 13.1.1 Konfiguracja ...................................................................................................................... 227 13.1.2 Adresowanie ...................................................................................................................... 229 13.2 Serwer DDE ................................................................................................................................ 229 13.2.1 Konfiguracja ...................................................................................................................... 230 13.2.2 Adresowanie ...................................................................................................................... 230 13.3 Ćwiczenia .................................................................................................................................... 231 13.3.1 Wyświetlanie informacji z komórki programu Excel przy pomocy klienta DDE ............. 231 13.3.2 Wyświetlanie w komórce programu Excel wartości bloku systemu iFIX przy pomocy serwera DDE ..................................................................................................................... 235 KONFIGUROWANIE SYSTEMU IFIX ........................................................... 239 14.1 Ćwiczenia .................................................................................................................................... 241 14.1.1 Zarządzanie dwoma projektami systemu iFIX na tym samym komputerze ...................... 241 ZAŁĄCZNIK 1: APLIKACJA REAKTOR .............................................................. 251 1. OPIS REAKTORA ......................................................................................... 251 2 ZADANIE STEROWANIA .............................................................................. 252 3 OBSŁUGA EKRANU REAKTOR .................................................................. 254 4 LISTA ZMIENNYCH ...................................................................................... 255 ZAŁĄCZNIK 2: PRZEMYSŁOWA BAZA DANYCH – PROFICY HISTORIAN ...... 259 Spis treści iii SŁOWO WSTĘPNE Niniejszy podręcznik prezentuje zestaw ćwiczeń, których celem jest nauka tworzenia profesjonalnej aplikacji w systemie Proficy HMI/SCADA – iFIX v5.0 EN. Problematyka ta kontynuowana jest w podręczniku „Zagadnienia zaawansowane programowania systemów SCADA”, w którym omawiane są efektywne sposoby tworzenia rozbudowanych aplikacji z zastosowaniem najnowszych technologii informatycznych. W podręczniku „Podstawy programowania systemów SCADA” omówiono pełny proces tworzenia aplikacji w oparciu o obiekt technologiczny reaktora chemicznego. Każdy z rozdziałów poprzedzony jest krótkim wstępem. Następnie dla każdego ćwiczenia zdefiniowany jest jego cel, po czym sformułowane jest praktyczne zadanie do wykonania w postaci rysunku, pokazany jest spodziewany efekt końcowy, a następnie hierarchicznie, krok po kroku, przedstawione jest rozwiązanie problemu. Czytelnikowi oferowane są również dodatkowe informacje wyjaśniające. Wykonanie poszczególnych ćwiczeń w podanej kolejności zapewnia właściwe zrozumienie problemu oraz nabycie umiejętności wykorzystania możliwości, jakie oferuje oprogramowanie iFIX v5.0. Mimo, iż niektóre ćwiczenia są bardzo złożone, Autor prowadzi Czytelnika wskazując wręcz przyciski niezbędne do użycia. Wiele ćwiczeń zawiera elementy programowania. Czytelnik może czasami mieć wątpliwości, czy zaproponowane rozwiązania, czy też wartości zmiennych są poprawne. Wątpliwości te z pewnością zostaną rozwiane w trakcie wykonywania kolejnych etapów projektu. Należy podkreślić, że przedstawione przykłady omawiane są od lat przez Autora w ramach wielu przedmiotów prowadzonych na Wydziale Automatyki, Elektroniki i Informatyki Politechniki Śląskiej i zostały wielokrotnie zweryfikowane przez studentów. Są one ponadto owocem licznych doświadczeń Autora we wdrażaniu aplikacji SCADA w różnych gałęziach przemysłu w kraju i zagranicą. Autor od kilkunastu lat prowadzi także kursy programowania systemów SCADA, cieszące się dużym uznaniem wśród przedstawicieli wielu branż przemysłu. Podsumowując, z przekonaniem stwierdzam, że podręcznik ten może dla wielu Czytelników stanowić istotną pomoc w poznawaniu efektywnych narzędzi programistycznych i sposobów wdrażania systemów SCADA w praktyce przemysłowej. Marek Pawełczyk Słowo wstępne v INFORMACJE O PROGRAMIE NARZĘDZIOWYM Wielu z wiodących producentów na świecie i w Polsce stosuje oprogramowanie Proficy HMI/SCADA - iFIX firmy GE Intelligent Platforms, które służy do monitorowania i kontroli produkcji oraz do gromadzenia i dystrybucji danych na terenie zakładów produkcyjnych. Oprogramowanie to jest całościowym rozwiązaniem HMI (Human-Machine Interface) lub SCADA (Supervisory Control and Data Acquisition) dla każdego środowiska produkcyjnego. System Proficy HMI/SCADA - iFIX stosuje najnowsze zdobycze technologiczne i opatentowane rozwiązania techniczne, jest skutecznym narzędziem pozwalającym prowadzić przedsiębiorstwo sprawniej i efektywniej oraz podejmować decyzje produkcyjne, które umożliwią przedsiębiorstwu zdobycie przewagi konkurencyjnej. Oprogramowanie iFIX realizuje następujące funkcje: wizualizację procesów przemysłowych przy pomocy animowanej kolorowej grafiki, prezentację danych bieżących i archiwalnych w postaci numerycznej oraz w postaci wykresów, archiwizację danych, raportowanie, wyświetlanie komunikatów alarmowych, realizację obliczeń, pracę sieciową z innymi komputerami, wymiany danych, korzystając z najnowszych standardów takich, jak: COM, DCOM, OPC i OLE DB, dynamiczną wymianę danych (DDE) z innymi aplikacjami działającymi w systemie operacyjnym Windows (np. arkusze kalkulacyjne, bazy danych). Pakiety programowe iFIX wyróżniają się spośród innych systemów SCADA następującymi zaletami: vi rzeczywista, rozproszona architektura klient/serwer, gwarantowana przez producenta 100 - procentowa integralność danych, szybka i niezawodna komunikacja ze sprzętem sterownikowym w technologii OPC, automatyczna detekcja zaniku komunikacji ze sprzętem PLC lub komunikacji sieciowej, możliwość dynamicznych zmian konfiguracji w działającym systemie (on-line configuration), ochrona dostępu na wysokim poziomie: zsynchronizowana z Windows NT/2000/2003/XP, zindywidualizowany system ochrony dostępu przypisujący różne uprawnienia poszczególnym użytkownikom z możliwością związania tych uprawnień z konkretnym węzłem w sieci, mechanizm autoryzowanych połączeń z serwerami iFIX, możliwość Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA szyfrowania komunikacji sieciowej, podpisy elektroniczne, korzystające z urządzeń biometrycznych, takich jak przykładowo czytniki linii papilarnych i skanery siatkówki oka, możliwość harmonogramowania zadań cyklicznych z uwzględnieniem okresu i faz, możliwość tworzenia własnych drajwerów komunikacyjnych i integrowania własnych aplikacji napisanych w językach C++, Visual Basic, nieograniczone rozszerzanie możliwości funkcjonalnych dzięki obiektowości zgodnej ze specyfikacjami COM, DCOM, ActiveX, VBA i DNA przez stosowanie komponentów innych producentów, automatyczne wykrywanie i konfiguracja danych źródłowych (np. dla sterowników serii S7), zarządzanie wersjami oraz odzyskiwanie danych, gwarantujące posiadanie aktualnych plików aplikacyjnych w przypadku odzyskiwania danych, udostępnienie funkcjonalności systemu iFIX (w szczególności technologii iFIX Container Technology, kontrolek ActiveX oraz VBA) użytkownikom systemu FIX przy pomocy oprogramowania FIX Desktop, obsługa usług terminalowych dla zdalnych klientów bez często wymaganego oddzielnego serwera, opatentowana technologia Secure ContainmentTM zapewniająca bezpieczeństwo pracy aplikacji, dynamiczna zmiana języka, w wersjach polskich systemów iFIX dokumentacja pakietu, jego menu, pomoc i komunikaty oraz środowisko projektowe Development i operatorskie Runtime dostępne są po polsku. Ponadto pakiety iFIX ze względu na swoje możliwości sieciowe, zapewnione przez funkcje Serwerów SCADA, nadają się szczególnie do integracji różnych systemów w sieciach ogólnozakładowych. Oprogramowanie firmy GE Intelligent Platforms zostało sprawdzone w dużych i odpowiedzialnych systemach takich jak: Elektrownia jądrowa OCONEE, USA – ponad 100 stacji, około 20 000 zmiennych, Zakłady Azotowe Puławy, Polska - ponad 100 stacji, ponad 20 000 zmiennych, Elektrownia jądrowa PAKS, Węgry – 4 reaktory, ponad 60 redundowanych stacji, około 50 000 zmiennych. Informacje o programie narzędziowym vii 1 ANIMACJA OBIEKTÓW GRAFICZNYCH W systemie iFIX środowiskiem projektowym do tworzenia rysunków jest program WorkSpace uruchomiony w trybie Configure. Dysponuje on wieloma narzędziami graficznymi, tekstowymi, animacyjnymi, dostępu do zmiennych procesowych i do tworzenia wykresów, by projektowane rysunki były atrakcyjne, dobrze zorganizowane, łatwe w obsłudze i łatwe do zrozumienia. Po utworzeniu rysunków, można je przeglądać przy pomocy programu WorkSpace uruchomionego w trybie Run. W trybie Configure przygotowuje się, a w trybie Run wyświetla się „okno procesu technologicznego”. Pomiędzy tymi dwoma trybami przechodzi się przy pomocy skrótu klawiszowego Ctrl+W. 1.1 Program WorkSpace Program WorkSpace pracuje w grafice wektorowej z matematycznie zdefiniowanymi obiektami, nie z indywidualnymi pikselami. Grafika ta składa się z widzialnej mapy bitowej i z niewidzialnej struktury danych logiki programowania, która definiuje wielkość, kolor, styl, pozycję i specjalne właściwości obiektów. Istnienie struktury danych uwalnia użytkownika od konieczności pracy z indywidualnymi pikselami. Użytkownik posługuje się narzędziami, rozwijanymi menu i oknami dialogowymi, by dodać lub zmienić właściwości obiektu, podczas gdy program automatycznie dostosowuje reprezentację obiektu i strukturę danych. Rozdział 1: Animacja obiektów graficznych 1 Komponentami programu WorkSpace są: przycisk WorkSpace Button szybkiego dostępu , pasek , wstążka, drzewo systemu oraz obszar roboczy. Drzewo systemu przedstawia wszystkie pliki opracowywanego projektu, pokazuje wszystkie obiekty każdego pliku i umożliwia uruchomienie wybranych aplikacji. Użytkownik może zmieniać wymiary okna drzewa systemu, przemieszczać go lub go nie wyświetlać. W programie WorkSpace do tworzenia rysunków wykorzystuje się wstążkę, na której znajdują się pogrupowane tematycznie (na kartach) narzędzia. Można również wykorzystać znany z poprzednich wersji systemu iFIX, standardowy pasek narzędzi o nazwie Toolbox. 1.2 Wstążka systemu iFIX Wstążka zastąpiła standardowy system menu, który był stosowany przez wiele lat. Firma Microsoft wprowadziła ją jako standard w pakiecie Office 2007. W rzeczywistości nie różni się ona zasadniczo od starego systemu menu. Podstawowa różnica polega na wyświetleniu zawartości menu w poziomie jako ikon na pasku podmenu. Mały pasek menu u góry nazywany jest „Paskiem szybkiego dostępu” i jest podobny do starego paska narzędzi. Jedno kliknięcie uruchamia odpowiednią aplikację. Pasek ten jest całkowicie konfigurowalny. W tym celu należy kliknąć przycisk listy rozwijanej (trójkąt skierowany wierzchołkiem w dół) obok tego paska i wybrać polecenie More Commands. 2 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA Otwarte zostanie okno Customize. W oknie tym są dwa okienka. W lewym okienku należy wybrać dodawaną aplikację i kliknąć przycisk Add. W oknie Customize można też usunąć określony przycisk z paska szybkiego dostępu przez wybranie przycisku w prawym okienku i kliknięcie przycisku Remove. Rozdział 1: Animacja obiektów graficznych 3 Metoda skrótów klawiszowych została znacznie udoskonalona. Po naciśnięciu przycisku Alt na wstążce pojawiają się skróty klawiszowe. Pomimo zwolnienia przycisku Alt teraz skróty klawiszowe są nadal wyświetlane i można naciśnąć odpowiedni klawisz. Przykładowo, aby uruchomić program SCU, należy kolejno nacisnąć następujące klawisze: Alt, P, S, C. 1.3 Praca z obiektami graficznymi Do tworzenia obiektów graficznych korzysta się z następujących narzędzi: Prostokąt (Rectangle), Zaokrąglony prostokąt (Rounded Rectangle), Elipsa (Oval), Odcinek koła (Chord), Wielokąt (Polygon), Wycinek koła (Pie), Łuk (Arc), Linia (Line), Łamana (Polyline). Do rysowania obiektów graficznych stosowane są dwie metody: 1. Układanie obiektów na stosie W grafice wektorowej, przemieszczanie obiektu nad inny obiekt nie niszczy obiektu pod spodem. Można układać wiele obiektów jeden na drugim. W ten sposób można układać proste obiekty w stos, by utworzyć obiekt złożony. Gdy obiekty na stosie zostaną wybrane i zgrupowane, wtedy stają się one nowym obiektem. 4 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 2. Maskowanie Maskowanie jest sposobem usuwania zbędnych fragmentów rysunku. To wrażenie znikania fragmentów rysunku uzyskuje się przez tworzenie obiektów, które mają kolor tła i nie mają krawędzi. Na obiektach można wykonać następujące operacje: Przemieszczanie (Move), Dokładne przesuwanie obiektu (Nudge), Zmiana wielkości obiektów graficznych (Scale), Odwracanie obiektu (Flip), Cofanie wykonania polecenia (Undo), Wycinanie i wklejanie (Cut and Paste), Kopiowanie (Copy), Usuwanie (Delete), Powielanie (Duplicate). Do wyrównywania obiektów korzysta się z poleceń grupy Arrange na karcie Format: Toggle Grid do wyświetlenia/ukrycia siatki oraz Snap to Grid, aby obiekty były do niej przyciągane, Align do wyrównywania obiektów w poziomie i pionie, Poleceń równomiernego rozkładania obiektów w poziomie Space Evenly Horizontal i równomiernego rozkładania ich w pionie Space Evenly Vertical. Do grupowania obiektów korzysta się z polecenia Group Objects, a do rozgrupowania obiektów z polecenia Ungroup Objects. Rozdział 1: Animacja obiektów graficznych 5 1.4 Przypisywanie obiektom właściwości dynamicznych i ich konfiguracja Właściwości dynamiczne są atrybutami obiektu, które zmieniają się w programie WorkSpace, głównie na podstawie zmian wartości w procesowej bazie danych systemu iFIX. Innymi słowy, odpowiadają one za takie efekty, jak zmiana koloru i animacja obiektów. Do właściwości dynamicznych obiektów zalicza się następujące właściwości: Zmiana koloru obiektów (Color), Zmiana pozycji obiektów (Movement), Skalowanie obiektów (Scale), Obracanie obiektów (Rotate), Wypełnianie obiektów (Fill Percentage), Dodawanie skryptów do obiektów (Command), Pojawianie się i znikanie obiektów (Visibility). Właściwości dynamiczne przypisuje się obiektom przez ich dwukrotne kliknięcie, wybranie odpowiedniej właściwości dynamicznej w oknie przedstawionym powyżej i wypełnienie konkretnego okna dialogowego. 6 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 1.5 Ćwiczenia 1.5.1 Słupek Cel: Zapoznanie się ze sposobem zakładania procesowej bazy danych systemu iFIX, wyświetlaniem pasków narzędzi, narzędziami służącymi do rysowania obiektów graficznych i tekstowych, modyfikowaniem ich właściwości oraz poznanie metod przypisywania obiektom właściwości dynamicznych. Zadanie: Narysować przedstawiony poniżej po lewej stronie wskaźnik słupkowy ze skalą od 0 do 100 co 20 jednostek. Nad wskaźnikiem umieścić wyświetlacz cyfrowy – Pole danych. Animować stopień wypełnienia wskaźnika słupkowego przy pomocy bloku o nazwie HZAD. Obok narysować zmodyfikowany słupek z suwakiem w postaci obiektu OLE. Zmiana wartości bloku HZAD powinna animować kolor zmodyfikowanego słupka. Dodatkowo zmianę wartości bloku HZAD należy przedstawić na wykresie z dwoma progami alarmowania dla wartości 60 i 80 odpowiednio dla alarmu niskiego i wysokiego. Aby zrealizować to zadanie, należy wykonać następujące czynności: A. Uruchomić system iFIX: 1. Na pulpicie systemu Windows kliknąć ikonę o nazwie iFIX 5.0. 2. W otwartym oknie Proficy iFIX Startup kliknąć przycisk umieszczony w lewym górnym rogu obszaru Proficy iFIX. Rozdział 1: Animacja obiektów graficznych 7 Wyświetlone zostanie okno programu WorkSpace w trybie Configure. 8 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA B. Utworzyć procesową bazę danych o nazwie VIXkurs: 1. W programie WorkSpace (tryb Configure) na karcie Applications kliknąć ikonę aplikacji Database Manager. Wyświetlone zostanie okno programu Proficy iFIX Database Manager. 2. W oknie Welcome to Proficy iFIX Database otwierającym aplikację Database Manager należy kliknąć przycisk OK przy wybranej opcji Open Local Node. 3. W lewym górnym narożniku okna aplikacji Database Manager kliknąć przycisk Database Manager Button i w wyświetlonym menu wybrać opcję New. Rozdział 1: Animacja obiektów graficznych 9 4. W lewym górnym narożniku okna aplikacji Database Manager jeszcze raz kliknąć przycisk Database Manager Button Save As. 10 i w wyświetlonym menu wybrać opcję 5. W oknie Save As w polu Enter Database Name wprowadzić nazwę pliku zakładanej bazy danych VIXkurs. System iFIX dołoży rozszerzenie ”pdb” (process database). 6. W oknie Save As kliknąć przycisk Save as. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA C. Wyświetlić pasek narzędzi Toolbox: W aplikacji WorkSpace (Tryb Configure) w karcie Home należy wybrać polecenie Show/Hide, a następnie kliknąć pozycję Toolbox. Gdy pasek narzędzi Toolbox jest wyświetlony w programie WorkSpace, w menu Show/Hide obok napisu Toolbox zaznaczone jest pole wyboru (patrz rysunek powyżej). D. Narysować wskaźnik słupkowy według poniżej przedstawionego opisu: Rozdział 1: Animacja obiektów graficznych 11 1. Wprowadzić na rysunek obiekty tekstowe: 0, 20, 40, 60, 80 oraz 100: W pasku narzędzi Toolbox kliknąć ikonę narzędzia Text, kliknąć wolny obszar rysunku i przy pomocy klawiatury wprowadzić znak 0. Ponownie kliknąć ikonę Text, kliknąć wolny obszar rysunku nad znakiem 0 i wprowadzić przy pomocy klawiatury 20. Postępując w podobny sposób wprowadzić na rysunku pozostałe obiekty tekstowe: 40, 60, 80 oraz 100. Uwaga: W poniżej przestawionym pasku narzędzi Toolbox pokazano lokalizację dwóch dodatkowych narzędzi: Space Evenly Vertical oraz Align Right, które zostaną zastosowane w następnym punkcie niniejszego ćwiczenia na następnej stronie. 12 Rozmieścić równomiernie wprowadzone obiekty tekstowe: Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA o Objąć prostokątną ramką wszystkie etykiety (patrz pierwsza kolumna rysunku przedstawionego poniżej). o Zwolnić lewy przycisk myszy (patrz druga kolumna przedstawionego poniżej). Wszystkie obiekty zostaną wybrane. rysunku o W pasku narzędzi Toolbox kliknąć narzędzie o nazwie Align Right (patrz trzecia kolumna rysunku przedstawionego poniżej). o W pasku narzędzi Toolbox kliknąć narzędzie o nazwie Space Evently Vertical (patrz czwarta kolumna rysunku przedstawionego poniżej). o Kliknąć wolny obszar rysunku przedstawionego poniżej). 2. (patrz piąta kolumna rysunku Narysować na rysunku znaczniki poziome: Narysować dwa znaczniki poziome (linie poziome o różnej długości) przy pomocy przycisku Ctrl i skopiować drugi znacznik cztery razy, korzystając ze skrótów klawiszowych Ctrl+C (Copy) oraz Ctr+V (Paste). Znaczniki kopiowane są w to samo miejsce, więc należy je nieco przeciągnąć w inne miejsce po skopiowaniu. Pierwszy znacznik umieścić na wysokości etykiety 0, a ostatni znacznik na wysokości etykiety 100. Uwaga: W celu wielokrotnego kopiowania obiektu zamiast stosowania skrótów klawiszowych Ctrl+C oraz Ctrl+V wygodniej jest skorzystać ze skrótu klawiszowego Ctrl+D (Powiel). W takim przypadku obiekt skopiowany umieszczany jest blisko kopiowanego obiektu, nieco po prawej stronie. Rozdział 1: Animacja obiektów graficznych 13 Wybrać wszystkie znaczniki i krótki znacznik kliknąć przy wciśniętym klawiszu Ctrl dwa razy (patrz pierwsza kolumna rysunku przedstawionego poniżej). Wyrównać długości znaczników przy pomocy narzędzia Make Same Height and Width. Narzędzie to dostępne jest na karcie Format w grupie Arrange. Patrz druga kolumna rysunku przedstawionego poniżej. Uwaga: Wyrównanie rozmiaru obiektów następuje względem obiektu, który jest aktualnie podświetlony w oknie drzewa systemu. Obiekt wzorcowy można zmienić przez kliknięcie go dwa razy przy wciśniętym klawiszu Ctrl. 3. 14 W pasku narzędzi Toolbox kliknąć narzędzie Align Left oraz Space Evenly Vertical (patrz trzecia kolumna rysunku przedstawionego poniżej). Narysować żółty prostokąt obok znaczników i obiektów tekstowych: Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA W pasku narzędzi Toolbox kliknąć przycisk Rectangle i na rysunku przy wciśniętym lewym przycisku myszy narysować prostokąt. Kliknąć prawym przyciskiem myszy narysowany prostokąt i w wyświetlonym menu prawego przycisku myszy wybrać polecenie Fill Style ->Solid. Kliknąć prawym przyciskiem myszy prostokąt i w wyświetlonym menu prawego przycisku myszy wybrać polecenie Color -> Foreground.... W wyświetlonym oknie Select ForegroundColor wybrać kolor żółty – BrightYellow w pierwszym wierszu tabeli z kolorami. Rozdział 1: Animacja obiektów graficznych 15 Zmienić domyślną właściwość Gradient rysowanych obiektów graficznych w systemie iFIX na właściwość Solid. o Na wstążce Home w grupie poleceń WorkSpace w menu rozwijanym Settings wybrać polecenie User Preferences. o W oknie User Preferences wybrać kartę Shape Preferences, w polu Fill Style wprowadzić właściwość Solid i kliknąć przycisk OK. 16 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA W oknie User Preferences na karcie Shape Preferences zmienić domyślną właściwość Foreground Color rysowanych obiektów graficznych przez kliknięcie niebieskiego prostokąta w obszarze Color i wybranie jaśniejszego koloru niebieskiego. E. Animować wysokość prostokąta: 1. Kliknąć narysowany żółty prostokąt, odszukać eksperta wypełnienia Fill Expert w pasku narzędzi Toolbox i kliknąć jego ikonę. 2. W oknie Fill Expert w polu Data Source wprowadzić nazwę bloku HZAD. 3. Po kliknięciu przycisku OK pojawi się następujące okno: Rozdział 1: Animacja obiektów graficznych 17 18 4. W oknie tym należy potwierdzić chęć utworzenia nowego bloku przez kliknięcie przycisku Yes. Wyświetlone zostanie poniżej przedstawione okno. 5. Jako typ tworzonego bloku należy wybrać AR i kliknąć przycisk OK. 6. Jako adres bloku należy podać przykładowo 6, a w polu Description wprowadzić informację Wartość zadana poziomu. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 7. Otworzyć kartę Advanced i wybrać pole wyboru Enable Output. Wybór tej opcji umożliwi zmianę wartości tego bloku przez operatora. F. Nad prostokątem umieścić wyświetlacz cyfrowy i skonfigurować go: 1. W pasku narzędzi Toolbox kliknąć lewym przyciskiem myszy ikonę Datalink Stamper. 2. W oknie Datalink w polu źródła danych Source wprowadzić HZAD, a w obszarze Data Entry w polu Type z rozwijanego menu wybrać In-Place - opcja ta umożliwi zmianę wartości bloku HZAD po dwukrotnym kliknięciu wyświetlacza cyfrowego na rysunku w programie WorkSpace w trybie Run. Rozdział 1: Animacja obiektów graficznych 19 20 3. W polu Whole Digits, gdy w obszarze Formatting w polu Type wyświetlany jest typ danych Numeric, wpisać wartość 3, a w polu Decimal wartość 1. Określić justowanie wyświetlanych wartości bloku HZAD jako wyrównywanie do prawej strony przez wybranie w polu Justify z listy rozwijanej opcji Right. 4. Umożliwić wprowadzanie danych przy pomocy suwaka, korzystając z narzędzia Data Entry Expert: Wybrać obiekt wyświetlacz cyfrowy. Kliknąć ikonę Data Entry Expert w pasku narzędzi Toolbox. W wyświetlonym oknie Choose Data Entry Method for DataLink1 w obszarze Choose Data Entry Method wybrać pozycję Slider Entry (patrz rysunek poniżej). W obszarze Slider Options suwaka wybrać opcję Write Continuously, aby zmiana pozycji suwaka zmieniała wartość bloku HZAD w bazie danych bez potrzeby zwolnienia przycisku myszy. Sprawdzić, czy w polu Data Source wprowadzona jest nazwa bloku HZAD. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA G. Przetestować animowanie prostokąta: 1. Zapisać rysunek w postaci pliku o nazwie Suwak.grf przez kliknięcie przycisku WorkSpace Button , a następnie wybranie opcji Save As 2. Uruchomić aplikację WorkSpace w trybie Run przy pomocy skrótu klawiszowego Ctrl+W. 3. Kliknąć wyświetlacz cyfrowy nad prostokątem i przy pomocy wyświetlonego suwaka zmieniać wysokość słupka. H. Zmodyfikować aplikację zgodnie z rysunkiem przedstawionym poniżej: 1. Skopiować wyświetlacz cyfrowy i prostokąt. 2. Wprowadzić na rysunek cztery obiekty tekstowe: H, zad, AI3 oraz % i umieścić je tak, jak przedstawiono na powyższym rysunku. 3. Obok prostokąta umieścić suwak - obiekt typu OLE i skonfigurować go: Na karcie Insert wybrać w menu przycisku Objects/Links opcję OLE Object. Rozdział 1: Animacja obiektów graficznych 21 22 W oknie Insert Object jako Object Type wybrać Microsoft Forms 2.0 ScrollBar i kliknąć przycisk OK. Na rysunku zostanie umieszczony obiekt ScrollBar1. Kliknąć prawym przyciskiem myszy wprowadzony suwak i w menu prawego przycisku myszy wybrać polecenie Edit Script. W Edytorze VBA zostanie wyświetlona wprowadzona domyślnie poniżej przedstawiona procedura. Nazwa tej procedury składa się z nazwy obiektu i zdarzenia, które uruchamia jej wykonanie. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA Private Sub ScrollBar1_Change() End Sub Powyżej przedstawioną procedurę uzupełnić o instrukcję WriteValue z dwoma parametrami tak jak pokazano poniżej. Omawiana procedura zmieni wartość bloku Hzad przy przeciągnięciu suwaka w chwili zwolnienia lewego przycisku myszy. Private Sub ScrollBar1_Change() WriteValue SuwakAI3.Value, "Fix32.THISNODE.Hzad.F_CV" End Sub Zminimalizować okno Edytora VBA. Kliknąć ponownie prawym przyciskiem myszy obiekt i w wyświetlonym menu wybrać polecenie Property Window. Zmienić wartość właściwości suwaka Name na SuwakAI3 oraz Max na 0 i Min na 100. Ustawienie wartości właściwości Max na 0 nie jest błędem, zapewni przy przesuwaniu myszką suwaka w górę zwiększanie, a nie zmniejszanie wypełnienia prostokąta od dołu. Kliknąć na rysunku prawym przyciskiem myszy suwak i w menu prawego przycisku myszy wybrać polecenie Edit Script. W oknie Edytora VBA zwrócić uwagę, że nazwa wprowadzonej procedury zmieniała się z ScrollBar1_Change na SuwakAI3_Change, gdyż została zmieniona nazwa obiektu na rysunku. suwaka Rozdział 1: Animacja obiektów graficznych 23 Private Sub SuwakAI3_Change() WriteValue SuwakAI3.Value, "Fix32.THISNODE.Hzad.F_CV" End Sub W Edytorze VBA w prawej liście rozwijanej ze zdarzeniami wybrać zdarzenie Scroll. Zostanie utworzna pusta procedura o nazwie SuwakAI3_Scroll. Uzupełnić procedurę SuwakAI3_Scroll o instrukcję WriteValue z dwoma parametrami tak jak pokazano poniżej. Instrukcję tę można skopiować z procedury SuwakAI3_Change. Omawiana procedura zmieni wartość bloku Hzad wskutek ciągnięcia myszą suwaka na rysunku. Private Sub SuwakAI3_Scroll() WriteValue SuwakAI3.Value, "Fix32.THISNODE.Hzad.F_CV" End Sub 24 W Edytorze VBA w lewej liście rozwijanej z obiektami wybrać obiekt rysunku CFixPicture, a w prawej liście zdarzenie Initialize. Zostanie utworzna najpierw domyślna procedura dla rysunku CFixPicture_KeyDown oraz później pusta procedura o nazwie CFixPicture_Initialize. Uzupełnić procedurę CFixPicture_Initialize o instrukcję pokazaną poniżej. Omawiana procedura wykonywana jest w chwili otwierania rysunku i konfiguruje obiekt graficzny – ustawia suwak zgodnie z wartością bloku Hzad w procesowej bazie danych. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA Private Sub CFixPicture_Initialize() SuwakAI3.Value = ReadValue("Fix32.THISNODE.Hzad.F_CV") End Sub Uwaga 1: W przypadku, gdy w liście rozwijanej obiektów nie jest widoczny potrzebny obiekt, należy na rysunku zaznaczyć wszystkie obiekty przez zastosowanie skrótu klawiszowego Ctrl+A i wybrać, po kliknięciu prawym przyciskiem myszy wolnego obszaru rysunku, opcję Enable Scripts. Uwaga 2: Skrypty dotyczące rysunku przechowywane są w pliku rysunku. Uwaga 3: W wielu instrukcjach w języku VBA zamiast pełnej nazwy bloku, przykładowo "Fix32.THISNODE.Hzad.F_CV" można stosować samą nazwę "Hzad". I. Włączyć możliwość korzystania z nazwy węzła THISNODE: Uwaga: W systemie iFIX w skrypcie jako nazwę węzła można zastosować THISNODE. Jest to uniwersalna nazwa węzła systemu iFIX. Ten sam rysunek można otworzyć na różnych komputerach. Rysunek z takim skryptem uruchomiony na systemie iFIX o nazwie węzła przykładowo FIX1 będzie odwoływał się do wartości przykładowo Fix32.FIX1.Hzad.F_CV, czyli będzie korzystał z procesowej bazy danych na danym węźle. Rysunek z takim skryptem uruchomiony na systemie iFIX o nazwie węzła FIX2 będzie odwoływał się do wartości Fix32.FIX2.Hzad.F_CV. Takie rysunki są więc szczególnie przydatne w przypadku, gdy kilka komputerów obsługuje identyczne obiekty, przy czym każdy z tych obiektów wizualizowany jest i sterowany przez jeden komputer. Wystarczy wykonać jeden rysunek, który potem po skopiowaniu na różne komputery obsługuje różne identyczne obiekty. Dodatkowo takie komputery mogą pracować w sieci. W Dyspozytorni można umieścić komputer, który kolejno będzie mógł wizualizować poszczególne obiekty. Jednak w tym przypadku należy stosować rysunki, które odwołują się do konkretnego obiektu, przykładowo FIX1 lub FIX2. Nie można stosować odwołań THISNODE, bo do komputera Dyspozytora nie jest najczęściej podpięty żaden obiekt. Wizualizuje on i steruje obiekty poprzez pozostałe komputery sieciowe. Nazwę węzła systemu iFIX określa się przy pomocy programu System Configuration. Więcej informacji na ten temat znajduje się w rozdziale Konfigurowanie systemu iFIX. 1. Uruchomić program System Configuration przez kliknięcie w programie WorkSpace na wstążce Application ikony programu SCU w grupie programów System & Security. Rozdział 1: Animacja obiektów graficznych 25 26 2. W menu Configure wybrać polecenie Local Startup. 3. W oknie Local Startup Definition zaznaczyć pole wyboru Local Node Alias i kliknąć przycisk OK. 4. W głównym oknie programu System Configuration w wyświetlonym monitorze dwukrotnie kliknąć nazwę DATABASE umieszczoną po etykiecie PDB. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 5. W wyświetlonym oknie Database Definition przy pomocy przycisku z trzema kropkami wprowadzić nazwę procesowej bazy danych VIXKURS i kliknąć przycisk OK. W polu tym określa się nazwę bazy danych, która zostanie załadowana automatycznie przy kolejnym starcie systemu iFIX. 6. Zapisać wprowadzone zmiany do pliku konfiguracyjnego przy pomocy polecenia Save As w menu File i zamknąć program System Configuration. 7. Zamknąć system iFIX. 8. Uruchomić system iFIX przez kliknięcie na pulpicie systemu Windows ikony o nazwie iFIX 5.0. 9. W otwartym oknie Proficy iFIX Startup kliknąć przycisk umieszczony w lewym górnym rogu obszaru Proficy iFIX. 10. W Drzewie systemu w folderze Pictures odszukać nazwę Suwak.grf i dwukrotnie ją kliknąć. Rozdział 1: Animacja obiektów graficznych 27 J. Przetestować działanie suwaka. 1. Uruchomić program WorkSpace w trybie Run przy pomocy skrótu klawiszowego Ctrl+W. 2. Zaobserwować zmianę wartości na wyświetlaczu cyfrowym i stopień wypełnienia słupka przy zmianie pozycji suwaka. K. Wstawić na rysunek wykres danych bieżących przedstawiający wartości bloku HZAD pomiędzy dwoma liniami, które reprezentują ograniczenia dla tej zmiennej procesowej: 1. Do procesowej bazy danych dołożyć blok Analog Input HZAD_AI. 28 W programie WorkSpace (tryb Configure) na karcie Applications kliknąć ikonę aplikacji Database Manager. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA W wyświetlonym oknie Welcome to Proficy iFIX Database Manager kliknąć przycisk OK w celu otwarcia procesowej bazy danych lokalnego węzła. W wyświetlonym arkuszu procesowej bazy danych dwukrotnie kliknąć pusty wiersz. W wyświetlonym oknie dwukrotnie kliknąć ikonę typu bloku AI – Analog Input. Rozdział 1: Animacja obiektów graficznych 29 30 W wyświetlonym oknie konfiguracyjnym bloku w polu Tag Name wprowadzić HZAD_AI, a w polu I/O Address wartość 6. Na karcie Alarms wprowadzić progi alarmowania dla alarmu niskiego w polu Low: 60 i dla alarmu wysokiego w polu High: 80 i kliknąć przycisk Save. W wyświetlonym oknie kliknąć przycisk Yes. Blok HZAD_AI zostanie włączony do skanowania. Skanowanie zostanie omówione w dalszej części niniejszego podręcznika. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA Na rysunku umieścić obiekt Chart i skonfigurować go: 4. Kliknąć ikonę narzędzia Standard Chart w pasku narzędzi Toolbox i po pojawieniu się kursora w postaci krzyżyka narysować prostokąt przy pomocy lewego przycisku myszy. Dwukrotnie kliknąć dodany obiekt Standard Chart i przejść na kartę Chart. Na liście Pen List umieścić pierwszy pisak: HZAD.F_CV. o Kliknąć pierwszy z czterech przycisków umieszczonych nad listą Pen List i następnie kliknąć przycisk z trzema kropkami obok dodanego pola. Rozdział 1: Animacja obiektów graficznych 31 o W wyświetlonym oknie Expression Builder na karcie FIX Databaase wybrać nazwę węzła THISNODE z listy Node Names, nazwę bloku z listy Tag Names i nazwę pola z listy Field Names. Uwaga 1: Nazwę pola F_CV można dodać do pełnej nazwy bloku przez kliknięcie przycisku z napisem F_* w obszarze nazwy pól. F pochodzi od angielskiego pojęcia Floating Point (zmienny przecinek), a CV od Current Value (wartość bieżąca). Uwaga 2: W trakcie wybierania kolejnych członów pełnej nazwy bloku w lewym dolnym rogu okna edytora Expression Builder powstaje pełna nazwa bloku. 32 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA Zbędny pisak FIX32.NODE.TAG.F_CV na liście Pen List usunąć przy pomocy drugiego przycisku z czerwonym znakiem X z czterech przycisków umieszczonych nad listą Pen List. W sposób analogiczny jak pisak HZAD.F_CV do listy pisaków dodać dwa pisaki HZAD_AI.F_LO oraz HZAD_AI.F_HI. Uwaga: Na wykresie pisaki te będą pełnić rolę ograniczeń dla wartości bloku HZAD. Dla pisaka HZAD_AI.F_HI na karcie Pen zaznaczyć pole wyboru Constant Line i kliknąć przycisk koloru w obszarze Style, by wybrać kolor czerwony dla tego pisaka. Rozdział 1: Animacja obiektów graficznych 33 Dla pisaka HZAD_AI.F_LO na karcie Pen zaznaczyć pole wyboru Constant Line i kliknąć przycisk koloru w obszarze Style, by wybrać kolor czerwony dla tego pisaka. Na karcie Y-Axis w polach Number of Labels oraz Number of Ticks wprowadzić wartość 6. W takim przypadku oś Y wykresu będzie opisana następującymi etykietami: 0, 20, 40, 60, 80, 100. Zamknąć okno Chart Configuration przez kliknięcie przycisku OK w tym oknie. Uwaga: Aktualnie do komórki o adresie 6 w pamięci RAM komputera odwołują się dwa bloki: HZAD – Rejestr analogowy i HZAD_AI – Wejście analogowe przy pomocy drajwera o nazwie SIM (Simulation). W takim przypadku wartości bieżące obu bloków są zawsze takie same. Blok HZAD jest stosowany do wprowadznia wartości do komórki pamięci o adresie 6, a blok HZAD_AI odczytuje wartości z komórki pamięci o adresie 6. Bloki typu Rejestr nie umożliwiają alarmowania w przeciwieństwie do bloków typu Wejście, dla których można skonfigurować progi alarmowe. 34 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA L. Przetestować działanie wykresu danych bieżących: 1. Otworzyć okno z wykresem w programie WorkSpace w trybie Run. Powinny pojawić się dwie czerwone linie poziome na całej długości wykresu. Długość linii pisaka HZAD powinna zwiększać się, bo pisak ten nie ma wybranej opcji Constant Line. 2. Przy pomocy suwaka zmieniać wartość bloku Hzad i zaobserwować te zmiany na wykresie danych bieżących. M. Animować kolor obiektu – słupek w zależności od wartości bloku HZAD: 1. Wybrać obiekt słupek (prostokąt, pod którym umieszczony jest napis AI3) i w pasku narzędzi Toolbox kliknąć przycisk Foreground Color Expert. Rozdział 1: Animacja obiektów graficznych 35 2. W wyświetlonym oknie (patrz drugi rysunek poniżej) w polu Data Source wprowadzić nazwę bloku Fix32.THISNODE.HZAD.F_CV. 3. Zmienić wartości w tabeli w obszarze Foreground Color Threshold zgodnie z następującymi danymi. - czarny ciemnoczerwony jasnoczerwony jasno-niebieski 0 25 50 75 - 25, 50, 75, 100. Uwaga 1: W celu edycji pola z wartością liczbową należy kliknąć go i wprowadzić wartość liczbową przy pomocy klawiatury. Uwaga 2: W celu edycji pola koloru należy dwukrotnie go kliknąć i wybrać kolor w wyświetlonym oknie Select Color. 36 Zbędny wiersz usunąć przy pomocy przycisku Delete Row. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 4. Zamknąć okno Foreground Color Expert przez kliknięcie przycisku OK. 5. W programie WorkSpace przejść do trybu wykonywania (Ctrl+W) i zaobserwować zmianę koloru słupka po zmianie wartości bloku HZAD przy pomocy suwaka. Rozdział 1: Animacja obiektów graficznych 37 2 TWORZENIE, ZARZĄDZANIE I DIAGNOSTYKA PROCESOWEJ BAZY DANYCH SYSTEMU IFIX 2.1 Struktura procesowej bazy danych – typy bloków oraz budowanie strategii sterowania przy pomocy łańcuchów Baza danych systemu iFIX stosowana jest m.in. do przechowywania bieżących wartości zmiennych procesowych w pamięci RAM komputera. Pomiary wielkości fizycznych zwykle wykonywane są przy pomocy czujników i w postaci standardowych sygnałów elektrycznych, przykładowo od 4 do 20 mA, dostarczane do sterownika programowalnego PLC. W sterowniku PLC moduły wejściowe zamieniają te sygnały elektryczne na wartości w przestrzeni adresowej sterownika. Przestrzeń ta m.in. podzielona jest na obszar wejść dwustanowych, obszar wejść analogowych, obszar wyjść dwustanowych, obszar wyjść analogowych oraz obszar zmiennych systemowych. Część tej przestrzeni adresowej jest przenoszona do pamięci komputera PC przy pomocy drajwera We/Wy, który jest uruchomiony w komputerze. Drajwer ten co zadeklarowany okres czasu przenosi do komputera dane ze sterownika PLC w postaci paczek zwanych rekordami. Rekordami są ciągłe podobszary przestrzeni adresowej sterownika PLC. Przykładowo można przesłać w postaci jednej paczki dane wejściowe dwustanowe sterownika PLC oznaczane zwykle przez symbol I od I1 do I100. Taka organizacja danych przyspiesza możliwą ilość przesłanych danych do komputera w jednostce czasu, ponieważ nawiązanie komunikacji pomiędzy sterownikiem PLC, a komputerem PC jest czasochłonną operacją. Rozdział 2: Tworzenie, zarządzanie i diagnostyka procesowej bazy danych ... 39 Dane ze sterownika PLC przesyłane są do komputera PC do obszaru pamięci, który nosi nazwę DIT (Driver Image Table) – tablica obrazu drajwera. W komputerze PC działa program WSACTask.EXE. Jego nazwa pochodzi od pierwszych liter angielskich słów WINDOWS, SCAN, ALARM and CONTROL, które określają funkcje tego programu. Słowo Task w języku angielskim oznacza zadanie. SCAN oznacza skanowanie, czyli przeglądanie procesowej bazy danych i przepisywanie co zadany okres czasu wartości z tablicy DIT do obszaru, gdzie umieszczona jest procesowa baza danych systemu iFIX. Baza ta przechowywana jest w pamięci komputera w obszarze, który nie jest nigdy przemieszczany do pliku wymiany i składa się z bloków, czyli wektorów informacji. Przykładowo wielkości fizycznej temperatura, zmierzonej przy pomocy czujnika i przesłanej do obszaru DIT odpowiada wektor danych składający się z kilkunastu wartości. Na rysunku poniżej przedstawiono okno do konfigurowania bloku AI. Każde pole w tym oknie odpowiada jednej wartości w wektorze danych bloku. Bloki w procesowej bazie danych łączy się w łańcuchy bloków. Operację tę realizuje się przez wpisanie nazwy następnego bloku w łańcuchu w polu Next. Kolejne bloki w łańcuchu bloków można wyświetlać przez klikanie przycisków ze strzałkami znajdującymi się u góry okna konfiguracyjnego bloku. Łańcuchy bloków wykorzystywane są do tworzenia strategii sterowania. Przykładowo, przy pomocy łańcucha bloków można zrealizować pętlę regulacji. Blok wejścia analogowego 40 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA (Analog Input) łączy się z blokiem regulatora PID, który następnie łączy się z blokiem wyjścia analogowego (Analog Output). Wartość z bloku Analog Input jest traktowana jako wartość wejściowa dla algorytmu PID, którego wynik jest przenoszony do bloku Analog Output. Potem program WSACTask przenosi wartość bloku Analog Output do tablicy DIT, z której drajwer przenosi tę wartość do sterownika PLC. Sterownik dalej oddziałuje na obiekt. W ten sposób jest realizowana funkcja sterowania – CONTROL przez program WSACTask. Program WSACTask kolejno analizuje wszystkie łańcuchy w procesowej bazie danych. Analiza łańcucha rozpoczyna się od pierwszego bloku w łańcuchu, który nazywany jest blokiem pierwotnym. Wszystkie pozostałe bloki w łańcuchu nazywane są blokami wtórnymi. Łańcuchy w procesowej bazie danych stosowane są także do wykonywania obliczeń matematycznych i operacji logicznych. Wszystkie bloki w procesowej bazie danych analizowane są co 50 ms. Programista powinien tak zoptymalizować system, aby w przypadku wystąpienia najbardziej niekorzystnej sytuacji wartość ta nie została przekroczona. Okres skanowania procesowej bazy danych można wyświetlić m.in. przy pomocy programu Mission Control (grupa Utilities na karcie Applications) na karcie SAC. Oprócz funkcji skanowania bloków program WSACTask realizuje także funkcję uruchamiania procedur związanych z różnymi typami bloków w procesowej bazie danych. Przykładowo, z blokiem Analog Input związana jest procedura generowania alarmów. Gdy wartość bloku przekroczy zdefiniowany próg, wtedy generowany jest alarm. Stąd w nazwie programu WSACTask człon dotyczący alarmowania – litera A, oznaczająca Alarm. Program WorkSpace prezentuje wartości z procesowej bazy danych systemu iFIX w postaci graficznej przy pomocy ekranów synoptycznych zwanych także czasami rysunkami. W pamięci komputera PC przechowywane są także wartości w 2000 16-bitowych rejestrów, do których istnieje dostęp poprzez drajwer SIM. Rejestry te wraz z możliwością tworzenia łańcuchów w procesowej bazie danych umożliwiają korzystanie z komputera PC w taki sam sposób jak ze sterownika PLC po umieszczeniu w komputerze karty wejść/wyjść. Drajwer SM2 udostępnia 20 000 rejestrów 32-bitowych, 20 000 rejestrów dwustanowych i 20 000 rejestrów 8-bitowych do przechowywania znaków. Rozdział 2: Tworzenie, zarządzanie i diagnostyka procesowej bazy danych ... 41 2.2 Importowanie i eksportowanie procesowej bazy danych Procesową bazę danych systemu iFIX można eksportować do pliku tekstowego przez wybranie polecenia Export na karcie Home, w grupie Process Database. Eksportowanie bloków do pliku o rozszerzeniu .gdb umożliwia zmianę kolejności łańcuchów w procesowej bazie danych przez edytowanie tego pliku tekstowego w dowolnym edytorze tekstowym, przykładowo w programie Notatnik. Eksportowanie bloków procesowej bazy danych można także zastosować do tworzenia podobnych bloków, które różnią się niewiele między sobą, przykładowo jedynie nazwą i adresem. W tym celu należy eksportować jeden blok danego typu, w edytorze tekstowym powielić linie tego bloku, odpowiednio je zmodyfikować i później importować dany plik do procesowej bazy danych. Poniżej przedstawiono właściwości eksportowanego bloku AV2_AI typu Analog Input. Type Tag Name :: AI :: AV2_AI NEXT BLK :: DESCRIPTION :: INITIAL SCAN :: SCAN TIME :: SMOOTHING :: I/O DEVICE :: H/W OPTIONS :: I/O ADDRESS :: SIGNAL CONDITION:: LOW EGU LIMIT :: HIGH EGU LIMIT :: EGU TAG :: INITIAL A/M STAT:: ALARM ENABLE :: ALARM AREA(S) :: LO LO ALARM LIMI:: LO ALARM LIMIT :: HI ALARM LIMIT :: HI HI ALARM LIMI:: ROC ALARM LIMIT :: DEAD BAND :: ALARM PRIORITY :: SECURITY AREA 1 :: SECURITY AREA 2 :: SECURITY AREA 3 :: 42 Ryszard Jakuszewski: ; A_NAME ; A_TAG PARA_CA Stopień otwarcia zaworu AV2 ON 1 0 SIM 3 0.00 100.00 AUTO ENABLE ALL 0.00 0.00 100.00 100.00 0.00 5.00 L NONE NONE NONE Podstawy Programowania Systemów SCADA ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; A_NEXT A_DESC A_ISCAN A_SCANT A_SMOTH A_IODV A_IOHT A_IOAD A_IOSC A_ELO A_EHI A_ETAG A_IAM A_IENAB A_ADI A_LOLO A_LO A_HI A_HIHI A_ROC A_DBAND A_PRI A_SA1 A_SA2 A_SA3 Po znaku średnika podane są nazwy pól poszczególnych właściwości bloku. Bazę danych systemu iFIX można także eksportować do pliku z rozszerzeniem .CSV i edytować ją przykładowo w programie Excel. 2.3 Określanie wielkości potrzebnego klucza Firma GE Intelligent Platforms dla systemu iFIX oferuje klucze zabezpieczające system przed nielegalnym stosowaniem umieszczane na porcie równoległym lub USB. Klucze te gwarantują obsługę następującej liczby sygnałów z obiektu: 75, 150, 300, 900 i klucz pełny(32 000) Przedstawione powyżej wartości uwzględniają także korzystanie z niektórych bloków systemu iFIX, posiadających pole I/O Address, przykładowo bloków Analog Register, które można zastosować do tymczasowego przechowywania wartości. Polecenie Summary w grupie Diagnostics w programie Database Manager umożliwia wyświetlenie okna przedstawionego na poniższym rysunku. W oknie tym podana jest nazwa procesowej bazy danych, jej numer seryjny (każdy zapis procesowej bazy danych na dysk twardy generuje kolejny numer) oraz rozmiar w bajtach. Lista określa ile bloków danego typu zawiera procesowa baza danych oraz na ile bloków danego typu przydzielono miejsce w pamięci. W rozdziale Zastosowanie „przesunięć” (OFFSET) do odczytu danych procesowych opisano sposób wyświetlania większej liczby wartości z urządzeń zewnętrznych niż pozwala na to określony klucz zabezpieczający. Wielkość potrzebnego klucza zależy również od funkcji sieciowych realizowanych przez dany komputer. Rozdział 2: Tworzenie, zarządzanie i diagnostyka procesowej bazy danych ... 43 2.4 Ćwiczenia 2.4.1 Animacja rurociągu pary Cel: Kontynuacja poznawania narzędzi służących do rysowania obiektów graficznych. Konfigurowanie wybranych właściwości dynamicznych obiektów. Nauka tworzenia łańcuchów w procesowej bazie danych systemu iFIX. Rozpoczęcie nauki stosowania skryptów do sterowania procesami przemysłowymi oraz tworzenie i używanie obiektów globalnych: Threshold Table. Zadanie: Animować kolor rurociągu pary stosowanej do grzania zawartości zbiornika. Kolor rurociągu powinien się zmieniać od ciemno-czerwonego do coraz bardziej jasnoczerwonego proporcjonalnie do natężenia przepływu pary w rurociągu. Na tym rurociągu umieszczone są dwa zawory: zawór analogowy AV2 (0-100) i zawór dwustanowy V5 (0,1). Należy przyjąć, że natężenie przepływu pary jest proporcjonalne do stopnia otwarcia zaworu AV2, gdy zawór V5 jest otwarty (1). ). Zamknięcie zaworu V5 blokuje przepływ pary. Gdy zawór V5 jest zamknięty zmiana stopnia otwarcia zaworu AV2 nie powoduje zmiany koloru rurociągu pary. Stopień otwarcia zaworu AV2 w czasie ćwiczenia należy zmieniać przy pomocy suwaka umieszczonego obok tego zaworu. Kliknięcie zaworu V5 powinno zmienić jego stan na stan przeciwny, tzn. jeśli zawór był otwarty, to kliknięcie zaworu powinno spowodować jego zamknięcie, a jeśli zawór był zamknięty, to kliknięcie zaworu powinno spowodować jego otwarcie. 44 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA Aby zrealizować to zadanie, należy wykonać następujące czynności: A. Utworzyć rysunek procesu przemysłowego: 1. Utworzyć nowy rysunek przez kliknięcie przycisku WorkSpace Button , wybranie podmenu New, a następnie opcji Picture. W wyświetlonym oknie przy wybranej opcji Create a Default ‘Untitled’ Picture kliknąć przycisk Finish. 2. Utworzonemu rysunkowi nadać nazwę Zbiornik.grf przez kliknięcie przycisku WorkSpace Button i wybranie opcji Save As w wyświetlonym menu. W oknie Zapisywanie jako w polu Nazwa pliku wprowadzić nazwę rysunku Zbiornik i kliknąć Rozdział 2: Tworzenie, zarządzanie i diagnostyka procesowej bazy danych ... 45 przycisk Zapisz. 3. Na rysunku umieścić obiekty graficzne przedstawione poniżej i wykonać z nich rysunek zbiornika: 46 Narysować dwie dennice górne zbiornika przez kliknięcie narzędzia Chord w pasku narzędzi Toolbox. Wtedy kursor zmieni swój kształt na krzyżyk. Należy kliknąć w miejscu, gdzie ma być umieszczony pierwszy wierzchołek i drugi wierzchołek odcinka koła. Trzecie kliknięcie ustala wysokość dennicy. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA Uwaga: Ostatnio wykonaną operację można cofnąć przy pomocy skrótu klawiszowego Ctrl+Z. Narysować dwie linie o długości odpowiadającej podstawie dennic górnych. Zmienić właściwość linii Edge Color na kolor pierwszoplanowy wcześniej narysowanych dennic przez kliknięcie linii prawym przyciskiem myszy i wybranie w wyświetlonym menu polecenia Color, a później Edge. Linie poziome mają służyć do maskowania poziomych krawędzi prostokątów i podstaw dennic górnych. Narysować dwa prostokąty o szerokości odpowiadającej podstawom dennic górnych (patrz szósty rysunek powyżej) przy pomocy narzędzia Rectangle w pasku narzędzi Toolbox. Utworzyć cztery dolne obiekty umieszczone symetrycznie względem osi poziomej zbiornika (dwie dennice dolne i dwie dolne linie maskujące) przez zgrupowanie czterech obiektów górnych przy pomocy skrótu klawiszowego Ctrl+G, ich skopiowanie przy pomocy skrótów klawiszowych Ctrl+C oraz Ctrl+V i użycie narzędzia Flip Vertical, które jest dostępne na karcie Format, w grupie Arrange. Rozdział 2: Tworzenie, zarządzanie i diagnostyka procesowej bazy danych ... 47 Uwaga: W celu umieszczenia na stałe okna do modyfikowania kolorów obiektów należy wybrać na karcie Format w grupie Styles polecenie Color Selections. Wyświetlone wtedy zostanie okno pokazane na rysunku poniżej. 48 Zgrupowane obiekty z dennicami rozgrupować przy pomocy skrótu klawiszowego Ctrl+R i zmienić kolejność narysowanych obiektów składowych zbiornika na rysunku przy pomocy narzędzi Bring To Front oraz Send To Back wybieranych z paska narzędzi Toolbox tak, by uzyskać rysunek zbiornika przedstawiony poniżej. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 4. Narysować zawór V5: Włączyć korzystanie z siatki na rysunku. W tym celu przy pomocy karty Format, w grupie Arrange kliknąć trójkąt skierowany wierzchołkiem w dół i w wyświetlonym menu wybrać polecenie Grid Settings. W wyświetlonym oknie Grid Settings zaznaczyć pola wyboru Show the Grid oraz Snap to Grid i kliknąć przycisk OK. Rozdział 2: Tworzenie, zarządzanie i diagnostyka procesowej bazy danych ... 49 Narysować zawór. W tym celu należy wykonać następujące czynności: o Przy wciśniętym klawiszu Ctrl kliknąć w pasku narzędzi Toolbox przycisk Oval i narysować koło tak jak pokazano na poniżej przedstawionym rysunku. Koło powinno obejmować 4 wiersze i 4 kolumny wyświetlonej siatki. o Narysować trzpień zaworu - linię pionową obejmującą cztery wiersze siatki i dwie linie, które tworzą strzałkę skierowaną w dół. Grot strzałki umieszczony jest dokładnie pomiędzy węzłami siatki. o Narysować część zaworu przedstawioną w kolorze białym jako obiekt Polygon. W pasku narzędzi Toolbox należy kliknąć narzędzie Polygon, a potem kliknąć w wierzchołkach rysowanego wielokąta w kolejności przedstawionej na powyższym rysunku. W wierzchołku 4 należy kliknąć dwukrotnie. Uwaga 1: Rysowanie obiektów typu Polygon kończy się przez dwukrotne kliknięcie w miejscu, gdzie ma być umieszczony ostatni wierzchołek. Uwaga 2: Wierzchołki obiektu typu Polygon można indywidualnie przemieszczać po wybraniu opcji Reshape w menu prawego przycisku myszy. 50 Obok rysunku zaworu narysować strzałkę w postaci linii przerywanej z lotką. W tym celu należy wykonać następujące czynności: Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA o Narysować grot strzałki z dwóch linii pomiędzy węzłami siatki. o Narysować linię poziomą strzałki, kliknąć ją prawym przyciskiem myszy i wybrać polecenie Edge Style i potem opcję Dash. o W pasku narzędzi Toolbox wybrać narzędzie Arc i kliknąć kolejno w punktach 1, 2 i 3. Tworzony rysunek uzupełnić o dodatkową strzałkę, narysowaną jako obiekt typu Polygon i trzy obiekty tekstowe pokazane na poniższym rysunku. Wyłączyć korzystanie z siatki. W tym celu przy pomocy karty Format, w grupie Arrange kliknąć trójkąt skierowany wierzchołkiem w dół i w wyświetlonym menu wybrać polecenie Grid Settings. W wyświetlonym oknie Grid Settings wyczyścić pola wyboru Show the Grid oraz Snap to Grid i kliknąć przycisk OK. Rozdział 2: Tworzenie, zarządzanie i diagnostyka procesowej bazy danych ... 51 5. Zgrupować obiekty rysowanego zaworu V5 przy pomocy skrótu klawiszowego Ctrl+G i zmniejszyć wykonany rysunek, korzystając z uchwytów grupy. Obrócić rysunek zaworu przy pomocy opcji Rotate w menu prawego przycisku myszy. Utworzyć zawór AV2: 52 Zgrupowany zawór V5 (patrz rysunek przedostatni) skopiować przy pomocy skrótów klawiszowych Ctrl+C oraz Ctrl+V i zastosować narzędzie Flip Horizontal, które jest dostępne na karcie Format, w grupie Arrange. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 6. Rozgrupować otrzymany obiekt przy pomocy skrótu klawiszowego Ctrl+R i zmodyfikować obiekty tekstowe. Przykładowo dwukrotnie kliknąć obiekt tekstowy V5 i zamienić go na AV2. Podobnie postąpić z dwoma pozostałymi obiektami tekstowymi: HO zamienić na HI, a Q5 zamienić na AQ2. Kliknąć strzałkę nad napisem HI i na karcie Format w grupie Arrange wybrać polecenie Flip Vertical (patrz rysunek powyżej). Narysować symbol zbiornika kondensatu: Włączyć korzystanie z siatki na rysunku. W tym celu przy pomocy karty Format, w grupie Arrange kliknąć trójkąt skierowany wierzchołkiem w dół i w wyświetlonym menu wybrać polecenie Grid Settings. W wyświetlonym oknie Grid Settings zaznaczyć pola wyboru Show the Grid oraz Snap to Grid i kliknąć przycisk OK. Narysować koło w czterech kolumnach i czterech wierszach siatki przy wciśniętym przycisku Ctrl, korzystając z narzędzia Oval w pasku narzędzi Toolbox. Kliknąć prawym przyciskiem myszy narysowane koło, wybrać polecenie Color -> Foreground, w wyświetlonym oknie Select ForegroundColor wybrać biały kolor i kliknąć przycisk OK. Narysować półkole w czterech kolumnach i dwóch wierszach siatki pod kołem przez kliknięcie narzędzia Chord w pasku narzędzi Toolbox. Wtedy kursor zmieni swój kształt na krzyżyk. Należy kliknąć w miejscu, gdzie ma być umieszczony pierwszy wierzchołek i drugi wierzchołek odcinka koła. Trzecie kliknięcie ustala wysokość półkola. Kliknąć prawym przyciskiem myszy narysowane półkole, wybrać polecenie Color -> Foreground, w wyświetlonym oknie Select ForegroundColor wybrać czarny kolor i kliknąć przycisk OK. Rozdział 2: Tworzenie, zarządzanie i diagnostyka procesowej bazy danych ... 53 7. 54 Wyłączyć korzystanie z siatki. W tym celu przy pomocy karty Format, w grupie Arrange kliknąć trójkąt skierowany wierzchołkiem w dół i w wyświetlonym menu wybrać polecenie Grid Settings. W wyświetlonym oknie Grid Settings wyczyścić pola wyboru Show the Grid oraz Snap to Grid i kliknąć przycisk OK. Obrócić półkole o około 45 stopni przez kliknięcie go prawym przyciskiem myszy, wybranie polecenia Rotate i przeciągnięcie jednego z wyświetlonych uchwytów w taki sposób, by obrócić półkole tak jak pokazano na rysunku poniżej. Przemieścić półkole nad koło przez kliknięcie półkola i skorzystanie z klawiszy ze strzałkami na klawiaturze. Zgrupować koło i półkole przez wybranie tych obiektów i ich zgrupowanie przy pomocy skrótu klawiszowego Ctrl+G. Zmienić rozmiar narysowanego symbolu zbiornika kondensatu, korzystając z uchwytów zgrupowanego obiektu. Narysować rurociąg pary przy pomocy jednej linii łamanej złożonej tylko z trzech odcinków. Po narysowaniu linię tę należy prznieść pod spód wszystkich innych obiektów na rysunku przy pomocy narzędzia Send To Back w pasku narzędzi Toolbox lub skrótu klawiszowego Ctrl+B. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA Uwaga: Grubość linii łamanej reprezentującej rurociąg można zmienić przez kliknięcie jej prawym przyciskiem myszy, wybranie polecenia Property Window i zmianę wartości w polu EdgeWidth. Domyślnie w tym polu wprowadzona jest wartość 1. Przykładowo można wprowadzić wartość 5. 8. Uzupełnić rysunek o pozostałe obiekty graficzne. Rozdział 2: Tworzenie, zarządzanie i diagnostyka procesowej bazy danych ... 55 B. Obok zaworu AV2 umieścić suwak - obiekt typu OLE i skonfigurować go: 56 1. Na karcie Insert wybrać w menu przycisku Objects/Links opcję OLE Object. 2. W oknie Insert Object jako Object Type wybrać Microsoft Forms 2.0 ScrollBar i kliknąć przycisk OK. Na rysunku zostanie umieszczony obiekt ScrollBar1. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 3. Kliknąć prawym przyciskiem myszy wprowadzony suwak i w menu prawego przycisku myszy wybrać polecenie Edit Script. W Edytorze VBA zostanie wyświetlona wprowadzona domyślnie poniżej przedstawiona procedura. Nazwa tej procedury składa się z nazwy obiektu i zdarzenia, które uruchamia jej wykonanie. Private Sub ScrollBar1_Change() End Sub 4. Powyżej przedstawioną procedurę uzupełnić o instrukcję WriteValue z dwoma parametrami tak jak pokazano poniżej. Omawiana procedura zmieni wartość bloku AV2 przy przeciągnięciu suwaka w chwili zwolnienia lewego przycisku myszy. Private Sub ScrollBar1_Change() WriteValue SuwakAV2.Value, "Fix32.THISNODE.AV2.F_CV" End Sub 5. Zminimalizować okno Edytora VBA. 6. Kliknąć ponownie prawym przyciskiem myszy obiekt suwaka i w wyświetlonym menu wybrać polecenie Property Window. 7. Zmienić wartość właściwości suwaka Name na SuwakAV2 oraz Max na 0 i Min na 100. Ustawienie wartości właściwości Max na 0 nie jest błędem, zapewni przy przesuwaniu myszką suwaka w górę zwiększanie, a nie zmniejszanie wypełnienia prostokąta od dołu. 8. Kliknąć na rysunku prawym przyciskiem myszy suwak i w menu prawego przycisku myszy wybrać polecenie Edit Script. W oknie Edytora VBA zwrócić uwagę, że Rozdział 2: Tworzenie, zarządzanie i diagnostyka procesowej bazy danych ... 57 nazwa wprowadzonej procedury zmieniała się z ScrollBar1_Change na SuwakAV2_Change, gdyż została zmieniona nazwa obiektu na rysunku. Private Sub SuwakAV2_Change() WriteValue SuwakAV2.Value, "Fix32.THISNODE.AV2.F_CV" End Sub 9. W Edytorze VBA w prawej liście rozwijanej ze zdarzeniami wybrać zdarzenie Scroll. Zostanie utworzna pusta procedura o nazwie SuwakAV2_Scroll. 10. Uzupełnić procedurę SuwakAV2_Scroll o instrukcję WriteValue z dwoma parametrami tak jak pokazano poniżej. Instrukcję tę można skopiować z procedury SuwakAV2_Change. Omawiana procedura zmieni wartość bloku AV2 wskutek ciągnięcia myszą suwaka na rysunku. Private Sub SuwakAV2_Scroll() WriteValue SuwakAV2.Value, "Fix32.THISNODE.AV2.F_CV" End Sub 11. W Edytorze VBA w lewej liście rozwijanej z obiektami wybrać obiekt rysunku CFixPicture, a w prawej liście zdarzenie Initialize. Zostanie utworzna najpierw domyślna procedura dla rysunku CFixPicture_KeyDown oraz później pusta procedura o nazwie CFixPicture_Initialize. 12. Uzupełnić procedurę CFixPicture_Initialize o instrukcję pokazaną poniżej. Omawiana procedura wykonywana jest w chwili otwierania rysunku i konfiguruje 58 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA obiekt graficzny – ustawia suwak zgodnie z wartością bloku AV2 w procesowej bazie danych. Private Sub CFixPicture_Initialize() SuwakAV2.Value = ReadValue("Fix32.THISNODE.AV2.F_CV") End Sub Uwaga 1: W przypadku, gdy w liście rozwijanej obiektów nie jest widoczny potrzebny obiekt, należy na rysunku zaznaczyć wszystkie obiekty przez zastosowanie skrótu klawiszowego Ctrl+A i wybrać, po kliknięciu prawym przyciskiem myszy wolnego obszaru rysunku, opcję Enable Scripts. Uwaga 2: Skrypty dotyczące rysunku przechowywane są w pliku rysunku. Uwaga 3: W wielu instrukcjach w języku VBA zamiast pełnej nazwy bloku, przykładowo "Fix32.THISNODE.AV2.F_CV" można stosować samą nazwę "AV2". 13. Utworzyć blok AV2 typu Analog Register o adresie SIM 3. Nie należy zapomnieć o uaktywnieniu na karacie Advanced pola wyboru Enable Output dla tego bloku. Rozdział 2: Tworzenie, zarządzanie i diagnostyka procesowej bazy danych ... 59 C. Wprowadzić skrypt do przełączania zaworu V5 i animować jego lampkę: 1. Przy wciśniętym przycisku Shift zaznaczyć lampkę zaworu V5 i uruchomić Eksperta Toggle Digital Point Expert przez wybranie na karcie Tools w grupie Tasks/Experts w menu Commands opcji Toggle Digital Tag. Wyświetli się wtedy okno, w którym należy podać nazwę bloku V5. 2. 60 Po kliknięciu przycisku OK system poprosi o wprowadzenie nowego bloku V5 do procesowej bazy danych, kliknąć przycisk Yes. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 3. W wyświetlonym oknie Select a block type wybrać typ bloku DR (Digital Register). 4. Skonfigurować blok V5 zgodnie z danymi przedstawionymi w oknie poniżej, uaktywnić opcję Enable Output dla tego bloku na karcie Advanced. 5. Animować kolor lampki zaworu V5 (czerwony – zawór zamknięty (0), zielony – zawór otwarty (1)) przy pomocy narzędzia Foreground Color Expert, który znajduje się w pasku narzędzi Toolbox. Rozdział 2: Tworzenie, zarządzanie i diagnostyka procesowej bazy danych ... 61 D. Utworzyć łańcuch bloków AV2_AI, PARA_CA: 62 1. W oknie drzewa systemu wybrać w folderze Database program Database Manager. Jeśli program ten nie był stosowany wcześniej, zostanie wyświetlone poniżej przedstawione okno. 2. W wyświetlonym ewentualnie oknie Welcome to Proficy iFIX Database wybrać opcję Open Local Node i kliknąć przycisk OK. 3. W oknie programu Database Manager kliknąć dwukrotnie wolną linię arkusza procesowej bazy danych i utworzyć blok AV2_AI o parametrach przedstawionych na rysunku poniżej, na karcie Advanced zaznaczyć pole wyboru Enable Output i na karcie Basic w polu Next wpisać nazwę następnego bloku w łańcuchu PARA_CA. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 4. Kliknąć przycisk ze strzałką skierowaną do góry obok pola Next, utworzyć blok obliczeniowy CA o nazwie PARA_CA i parametrach przedstawionych na poniższym rysunku oraz kliknąć przycisk Save. Rozdział 2: Tworzenie, zarządzanie i diagnostyka procesowej bazy danych ... 63 5. W wyświetlonym oknie Place Block On/Off Scan? kliknąć przycisk Yes. 6. Upewnić się, że utworzony łańcuch bloków jest skanowany przez system iFIX przez odczytanie w arkuszu bazy danych wartości bloku PARA_CA w kolumnie Wartość bież. Uwaga: Jeśli w omawianym polu będą wyświetlane pytajniki, należy odświeżyć arkusz procesowej bazy danych przez zastosowanie skrótu klawiszowego Ctrl+R i ponownie odczytać wartość bloku PARA_CA. E. Animować kolor rurociągu pary: 64 1. Dwukrotnie kliknąć linię łamaną rurociągu pary. 2. W wyświetlonym oknie Basic Animation Dialog kliknąć pole wyboru Edge Color. 3. W polu Data Source wprowadzić nazwę bloku PARA_CA. 4. Sprawdzić, czy wybrana jest opcja Range w obszarze Edge Color Threshold. 5. Wprowadzić kolory od ciemno-czerwonego do jasno-czerwonego w kolumnie Color: Dwukrotne kliknąć pierwsze pole w kolumnie Color i w wyświetlonym oknie Select Color z listy rozwijanej Color Set wybrać Shades Of Red (patrz rysunek poniżej). Na karcie Color kliknąć potrzebny kolor, przykładowo z pierwszej kolumny kolorów, a potem przycisk OK w oknie Select Color. Dwukrotnie kliknąć drugie pole w kolumnie Color i w wyświetlonym oknie wybrać pożądany kolor. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA Powtórzyć ostatni krok niniejszej procedury dla pozostałych wierszy w oknie Edge Color Expert. F. Przetestować działanie aplikacji: 1. Zamknąć zawór V5 przez kliknięcie raz lub dwa razy jego lampki – lampka zaworu V5 powinna być czerwona. 2. Zmieniać położenie suwaka AV2 - kolor rurociągu cały czas powinien być ciemnoczerowny – oznacza to brak przepływu pary. 3. Otworzyć zawór V5 przez kliknięcie jego lampki – lampka zaworu V5 powinna być zielona. 4. Przy pomocy suwaka zmienić stopień otwarcia zaworu AV2 i zauważyć zmianę koloru rurociągu. Rozdział 2: Tworzenie, zarządzanie i diagnostyka procesowej bazy danych ... 65 G. Jako opcję do animacji kolorów lampki zaworu V5 zastosować globalny obiekt Threshold Table: 66 1. W oknie System Tree wybrać folder Globals i kliknąć prawym przyciskiem myszy obiekt User. 2. W menu prawego przycisku myszy wybrać opcję Create Threshold Table. 3. W polu Source Property Type wybrać opcję Integer i następnie pole opcji wykluczających się Exact Match. 4. W tabeli Lookup Table, korzystając z przycisków Insert Row, Modify Row oraz Delete row wprowadzić dwa wiersze 0 – kolor szary, 1 – kolor czerwony i kliknąć przycisk OK. 5. Zmienić nazwę utworzonej tabeli Threshold table: Kliknąć prawym przyciskiem myszy utworzoną domyślną nazwę Threshold w drzewie systemu poniżej obiektu User. W wyświetlonym menu wybrać opcję Property Window... . Zmienić właściwość obiektu Name na nazwę KoloryZmienneBinarne. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 6. Dwukrotnie kliknąć lampkę zaworu V5. Otworzy się okno Basic Animation Dialog, w którym kliknąć przycisk Foreground. 7. W oknie Foreground Color Expert zaznaczyć pole wyboru Use Shared Threshold Table i kliknąć przycisk z trzema kropkami obok pola Shared Table, wybrać kartę Globals i odszukać tabelę KoloryZmienneBinarne. Rozdział 2: Tworzenie, zarządzanie i diagnostyka procesowej bazy danych ... 67 8. Zamknąć okno Expression Builder oraz Foreground Color Expert przy pomocy przycisków OK. 9. Nacisnąć skrót klawiszowy Ctrl+W, by uruchomić program WorkSpace w trybie Wykonywania i kliknąć lampkę zaworu V5. Lampka ta powinna zmienić kolor. Uwaga: Obiekt Threshold Table umożliwia globalną zmianę kolorystyki aplikacji. Przykładowo, jeśli aplikacja liczy 1000 zaworów i animacja tych zaworów została zrealizowana przy pomocy tabeli Threshold Table, wtedy wystarczy by użytkownik zmienił kolory w jednym miejscu - w obiekcie Threshold Table i wszystkie zawory będą animowane według nowego schematu kolorów. 68 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 2.4.2 Generowanie bloków w procesowej bazie danych Cel: Zapoznanie się ze sposobem generowania wielu podobnych bloków w procesowej bazie danych przy pomocy programu Generate Wizard. Zadnie: Wygenerować bloki typu Digital Register od V1 do V4 przy pomocy programu Generate Wizard. Aby zrealizować to zadanie, należy wykonać następujące czynności: 1. W programie Database Manager kliknąć wiersz arkusza, który zawiera informacje o bloku V5. 2. Na karcie Home, w grupie Blocks, wybrać polecenie Generate... . 3. W wyświetlonym oknie Database Manager kliknąć przycisk OK potwierdzający zgodę na chwilowe zatrzymanie programu SAC w związku z generowaniem bloków. 4. W oknie Generate Wizard - Page 1 of 3 kliknąć przycisk Next potwierdzający generowanie bloków na podstawie bloku V5, który będzie wzorcem. 5. W oknie Generate Wizard - Page 2 of 3 określić nazwy generowanych zmiennych przez wprowadzenie w polu Prefix string (Mandatory) wartości V, w polu Start value wartości 1, w polu Last value 4 oraz w polu Increment by wartości 1. Następnie kliknąć przycisk Next wyświetlający trzecią stronę programu Generate Wizard. 6. W oknie Generate Wizard - Page 3 of 3 określić, czym będą się różniły generowane bloki przez kliknięcie przycisku z trzema kropkami w pierwszym wierszu wyświetlonego arkusza i w oknie Select Column wybrać opcję I/O Addr. Pozostałe opcje wypełnić tak, jak pokazano na rysunku poniżej i kliknąć przycisk Finish. 7. Przeglądnąć wygenerowane bloki w arkuszu procesowej bazy danych programu Database Manager. Rozdział 2: Tworzenie, zarządzanie i diagnostyka procesowej bazy danych ... 69 2.4.3 Diagnostyka procesowej bazy danych Cel: Zapoznanie się ze sposobem kontroli poprawności konfigurowania procesowej bazy danych. Zadanie: Sprawdzić, czy procesowa baza danych nie zawiera błędów. Aby zrealizować to zadanie, należy wykonać następujące czynności: 1. W programie Database Manager wybrać polecenie Verify... w grupie Diagnostics na karcie Home. Jeśli zostanie wyświetlony komunikat przedstawiony na rysunku poniżej, to oznacza, że procesowa baza danych nie zawiera błędów, które może wykryć program Database Manager. 2. W oknie konfiguracyjnym bloku AV2_AI usunąć zawartość pola Next przy pomocy skrótu klawiszowego Ctrl+X i jeszcze raz wybrać polecenie Verify... w grupie Diagnostics. Wtedy zostanie wyświetlone okno przedstawione na rysunku poniżej. Kliknięcie przycisku Edit umożliwia przejście do bloku, który jest przyczyną problemów. 3. 70 W oknie konfiguracyjnym bloku AV2_AI wkleić do pola Next usuniętą nazwę następnego bloku w łańcuchu przy pomocy skrótu klawiszowego Ctrl+V i jeszcze raz wybrać polecenie Verify... Powinno zostać wyświetlone okno informujące o braku błędów w procesowej bazie danych. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 3 GENERATORY SYGNAŁÓW Na rysunku na następnej stronie przedstawiono przebiegi czasowe i rejestry, w których generowane są sygnały stosowane m.in. do animacji obiektów graficznych i do testowania działania aplikacji. Przykładowo, przebieg piłokształtny można stosować do ciągłego obracania koła windy wyciągowej szybu kopalni, a wartości przypadkowe mogą posłużyć do testowania działania łańcuchów w procesowej bazie danych. W rejestrze RA obsługiwanym przez drajwer SIM generowane są wartości przebiegu piłokształtnego od 0 do 100% zakresu wartości bloku korzystającego z tego rejestru. Przebieg ten kreślony jest z prędkością określoną przez rejestr RY tak, jak pokazano na wykresie na rysunku na następnej stronie. Na wykresie przebieg ten oznaczono literą a. Wartość w rejestrze RY steruje prędkością (w cyklach na godzinę (2 – 3600)) generowania nowych wartości w rejestrach RA, RD, RE i RF. Domyślna wartość w rejestrze RY wynosi 60 (1 cykl na minutę). W rejestrach: RD, RE i RF generowane są trzy sinusoidy przesunięte względem siebie co 90 stopni z prędkością określoną również przez rejestr RY. W rejestrze RG generowane są wartości przypadkowe z zakresu od 25% do 75% zakresu wartości bloku korzystającego z tego rejestru. Wartości generowane w rejestrach, za wyjątkiem rejestru RH, można zatrzymać przez wprowadzenie wartości 0 do rejestru RX. Wartość 1 w tym rejestrze wznawia generowanie nowych wartości. W rejestrze RH generowany jest przebieg liniowo narastający i opadający przedstawiony na wykresie linią oznaczoną literą h. Generowanie wartości tego przebiegu można wstrzymać w dowolnej chwili przez wprowadzenie do rejestru RK wartości 0. Zmiana wartości w rejestrze RI z 1 na 0 zmienia w dowolnej chwili narastanie na opadanie. Można także zmieniać szybkość zmian tego sygnału przez wprowadzenie odpowiedniej wartości w rejestrze RJ, który określa liczbę cykli tego sygnału na godzinę podobnie jak rejestr RY dla innych rejestrów. Rozdział 3: Generatory sygnałów 71 72 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 3.1 Ćwiczenia 3.1.1 Taśmociąg Cel: Poznanie generatorów sygnałów i sposobów ich stosowania oraz dalsze doskonalenie umiejętności rysowania obiektów graficznych i ich animowania. Zadanie: Narysować przedstawiony poniżej taśmociąg do transportu gipsu uruchamiany przyciskiem i animować obracanie rolek, przesuwanie taśmy i pojawianie się spadającego gipsu z taśmociągu. Dodatkowo należy umożliwić zmianę szybkości transportu gipsu przy pomocy suwaka. Aby zrealizować powyższe zadanie, należy wykonać następujące czynności: A. Utworzyć nowy rysunek GIPS.grf: Wybrać polecenie New->Picture z menu rozwijanego wyświetlanego po kliknięciu przycisku WorkSpace Button. B. Narysować rolki taśmociągu i animować ich obracanie: 1. Narysować koło i dwie szprychy, korzystając z przycisku Ctrl. Najpierw należy nacisnąć przycisk Ctrl, a później narysować koło. W ten sposób zostanie narysowane dokładnie koło, a nie elipsa. Podobnie przy rysowaniu linii poziomej i pionowej należy skorzystać z przycisku Ctrl. Rozdział 3: Generatory sygnałów 73 74 2. Wyrównać elementy rolki taśmociągu, korzystając z przycisków Align Vertical Center oraz Align Horizontal Center (na karcie Format grupy Arrange z menu polecenia Align), a następnie zgrupować narysowane obiekty. W celu zgrupowania elementów można skorzystać ze skrótu klawiszowego Ctrl+G. 3. Dwukrotnie kliknąć narysowaną rolkę i w oknie właściwości dynamicznych Basic Animation Dialog wybrać pole wyboru Rotate. 4. W oknie Rotate Expert w polu Data Source wprowadzić nazwę bloku OBROT. Gdy wartość zmiennej w procesowej bazie danych będzie przyjmowała wartość zero, wtedy kąt obrotu narysowanego obiektu będzie wynosił 0 stopni. Gdy wartość bloku OBROT przyjmie wartość 100, wtedy rolka zostanie obrócona o 360 stopni. Zmiana wartości bloku ze 100 na 0 następuje bardzo szybko, więc człowiek nie zauważy na ekranie cofnięcia obrotu rolki. Rolka będzie cały czas obracała się w jednym kierunku. Kierunek obrotu rolki można zmienić przez wprowadzenie ujemnej wartości w polu Maximum Angle of Rotation in Degrees. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 5. W oknie Rotate Expert w polu Maximum Angle of Rotation in Degrees wprowadzić wartość –360 i kliknąć przycisk OK. 6. Do procesowej bazy danych systemu iFIX wprowadzić blok typu Analog Register skonfigurowany tak, jak pokazano na rysunku poniżej. W polu I/O Address należy wprowadzić nazwę rejestru RA, w którym generowany jest przebieg narastający wolno od wartości 0 do 100 i opadający szybko do wartości 0. 7. Umieścić na rysunku przycisk Push Button, korzystając z przybornika narzędzi. Kliknąć ten przycisk dwukrotnie. W polu przycisku wpisać tekst RX. 8. Wybrać przycisk z napisem RX i kliknąć na karcie Tools grupy Tasks/Experts w menu Commands opcję Toggle Digital Tag. Rozdział 3: Generatory sygnałów 75 9. W wyświetlonym oknie Toggle Digital Point Expert w polu FIX Database Tag wprowadzić nazwę bloku RX. Po kliknięciu przycisku OK zostanie wyświetlony komunikat, który należy potwierdzić przyciskiem Yes. 10. W procesowej bazie danych wprowadzić blok RX (Digital Register). 76 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA Na karcie Advanced należy zaznaczyć pole wyboru Enable Output. W ten sposób do przycisku z napisem RX zostanie przypisany skrypt, który będzie zmieniał wartość bloku RX na wartość przeciwną, gdy zostanie kliknięty przycisk RX. 11. Obok przycisku z napisem RX należy umieścić wyświetlacz cyfrowy, który będzie przedstawiał wartość przechowywaną w rejestrze RX. W tym celu w pasku narzędzi Toolbox programu WorkSpace należy wybrać narzędzie Datalink Stamper. 12. Po wpisaniu nazwy bloku w polu Source należy skonfigurować wyświetlanie jednej cyfry na wyświetlaczu cyfrowym tak, jak pokazano na rysunku powyżej. 13. Na rysunku należy umieścić wyświetlacz cyfrowy dla bloku RY, który umożliwi zmianę prędkości obrotowej rolek taśmociągu, przez wybranie narzędzia Datalink Stamper w pasku narzędzi Toolbox programu WorkSpace. W wyświetlonym oknie dialogowym Datalink w polu Source należy wprowadzić nazwę bloku RY i określić format wyświetlania wartości tego bloku przez skonfigurowanie pól Whole Digits i Decimal, tak jak pokazano na rysunku poniżej. Rozdział 3: Generatory sygnałów 77 14. W procesowej bazie danych utworzyć blok typu Analog Register i skonfigurować go tak, jak przedstawiono na rysunku poniżej. W karcie Advanced należy zaznaczyć pole wyboru Enable Output. 15. Wybrać wyświetlacz cyfrowy dla bloku RY, kliknąć przycisk Data Entry Expert w pasku narzędzi Toolbox programu WorkSpace i skonfigurować wyświetlone okno dialogowe, tak jak pokazano na rysunku poniżej. Po kliknięciu tak skonfigurowanego wyświetlacza cyfrowego będzie można zmieniać szybkość obracania rolek taśmociągu przy pomocy suwaka. 78 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 16. Obok wyświetlacza cyfrowego pokazującego wartość w rejestrze RY umieścić etykiety (Text) RY i [cycles/hour]. 17. Przejść do trybu wykonywania programu WorkSpace, przetestować obracanie rolki taśmociągu i dobrać odpowiednią prędkość jej obracania. 18. W programie WorkSpace w trybie konfiguracji utworzyć drugą rolkę taśmociągu przez skopiowanie pierwszej rolki. Rozdział 3: Generatory sygnałów 79 C. Narysować taśmę taśmociągu i animować jej przemieszczanie: 80 1. Narysować dwie osłony taśmy oraz cztery elementy taśmy i rozmieścić je tak, jak pokazano na poniższym rysunku. Trzy pierwsze elementy taśmy należy wybrać i zgrupować. 2. Dwukrotnie kliknąć zgrupowane elementy taśmy i przypisać im właściwość animacji pozycji Position. W tym celu przy wyświetlonym oknie Position Expert, należy kliknąć trzy zgrupowane elementy taśmy i przy pomocy strzałki skierowanej w prawo przemieścić je tak, jak pokazano na poniższym rysunku. Trzeci element grupy pokrywa czwarty element taśmy. 3. Po kliknięciu przycisku Get Value w oknie Position Expert zostanie wprowadzona wartość w polu Maximum Offset. 4. Przesunąć w dół trzy zgrupowane elementy taśmy tak, aby ukryte zostały one pod dwoma osłonami, umieścić koła rolek na pierwszym planie korzystając z przycisku Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA Bring To Front w pasku narzędzi Toolbox i przetestować animację przesuwania taśmy górnej. 5. Wykonać kopię elementów taśmy i dwóch osłon oraz przemieścić te elementy do dolnej części taśmociągu. 6. Dwukrotnie kliknąć zgrupowane trzy dolne elementy taśmy i w wyświetlonym oknie przez kliknięcie pola wyboru Position otworzyć okno Position Expert. Wartość z pola Maximum Offset skopiować do pola Minimum Offset, a w polu Maximum Offset wprowadzić wartość 0. 7. Przejść do programu WorkSpace. Górna część taśmy powinna przemieszczać się w prawo, a dolna część taśmy w lewo, gdy w rejestrze RX jest przechowywana wartość 1. Rozdział 3: Generatory sygnałów 81 D. Umieścić pozostałe elementy graficzne na rysunku i zmienić odpowiednio ich kolory: 1. Narysować dwie strzałki, wprowadzić nazwę taśmociągu w postaci tekstu OHTP 15, narysować spadający z taśmociągu gips w formie czterech kółek. 2. Skopiować przycisk RX i zmienić jego etykietę na OHTP 15. Uwaga: W ćwiczeniu skorzystano z rejestru RX do uruchamiania i zatrzymywania taśmociągu. W praktyce jednak do zatrzymywania i uruchamiania taśmociągów stosuje się bloki obliczeniowe, gdyż taśmociągów jest zwykle więcej niż jeden. Sygnał piłokształtny można pomnożyć przez wartość dwustanową określającą stan pracy danego taśmociągu. W takim przypadku przycisk OHTP 15 różni się od przycisku RX. 3. 82 Zgrupować cztery kółka reprezentujące spadający gips, dwie białe strzałki, napis OHTP 15 nad taśmociągiem i gips na taśmociągu i animować ich widoczność przez dwukrotne ich kliknięcie, zaznaczenie pola wyboru Visible w oknie Basic Animation Dialog i skonfigurowanie wyświetlonego okna tak, jak pokazano na poniższym rysunku. Informacja w polu obszaru Condition Expression pojawi się po kliknięciu przycisku View Visibility Condition. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 4. Zmienić kolor tła okna rysunku przez kliknięcie wolnego obszaru rysunku prawym przyciskiem myszy, wybranie polecenia Picture... i wybranie szarego koloru po kliknięciu przycisku Background Color. 5. Zmienić kolory obiektów na rysunku (patrz rysunek po treści wykonywanego zadania – obwody rolek czerwone, szprychy czarne, obiekty dotyczące gipsu białe, taśma czerwona, osłony rolek czerwone, przestrzeń obejmowana przez taśmę żółta), korzystając z okna Color Selection, które można wyświetlić przez wybranie polecenia Color Selections w grupie Styles na karcie Format. W oknie tym należy korzystać z właściwości ForegroundColor (przykładowo żółty kolor rolek) oraz EdgeColor (przykładowo czerwony kolor taśmociągu). Rozdział 3: Generatory sygnałów 83 4 TWORZENIE I METODY ZARZĄDZANIA RYSUNKAMI Aplikacje systemu iFIX zwykle zawierają wiele rysunków, które zwykle wyświetlane są w sposób hierarchiczny. Przykładowo, stosuje się paski menu i podmenu. Przycisk na pasku menu otwiera pasek podmenu z grupą przycisków, które stosowane są do otwierania rysunków. Rysunki te w chwili ich wyświetlenia umieszczane są w pamięci komputera. W celu zabezpieczenia się przed brakiem dostępnej pamięci, na ekranie monitora nie można otwierać zbyt wielu rysunków. Dlatego też w praktyce stosuje się różne metody zarządzania otwieraniem i zamykaniem rysunków. Poniższe rysunki prezentują możliwe rozwiązania: Rozwiązanie podstawowe. Rozwiązanie udoskonalone. Rozwiązania z wieloma monitorami. o Bez wyboru monitora. o Z wyborem monitora. Rozdział 4: Tworzenie i metody zarządzania rysunkami 85 W rozwiązaniu podstawowym stosuje się trzy okna. Przyciski umieszczone na listwie dolnej umożliwiają wyświetlanie rysunków w części środkowej monitora. Otwarcie nowego rysunku usuwa z pamięci komputera rysunek poprzedni. Na ekranie monitora zawsze otwarte są tylko trzy rysunki. W rozwiązaniu udoskonalonym aplikacja otwierana jest przez wyświetlenie okna o nazwie Splash. W oknie tym znajdują się zwykle dwa przyciski. Przycisk Start umożliwia uruchomienie aplikacji, a przycisk Zakończ zamknięcie systemu. Po uruchomieniu aplikacji stosowane są cztery okna. Listwa menu głównego stosowana jest do wyświetlenia odpowiedniego rysunku podmenu, na którym umieszczone są przyciski do otwierania rysunków w części środkowej monitora. Rozwiązania z wieloma monitorami można podzielić na „Bez wyboru monitora” oraz „Z wyborem monitora”. Rozwiązanie „Bez wyboru monitora”, to rozwiązanie podstawowe stosowane na dwóch monitorach. Rozwiązanie „Z wyborem monitora”, to rozwiązanie podstawowe stosowane na dwóch monitorach, przy czym użytkownik najpierw wybiera monitor przez kliknięcie przycisku 86 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA z napisem Monitor 1 lub Monitor 2, a później wybiera rysunek, który ma być wyświetlony na wybranym monitorze. 4.1 Ćwiczenia 4.1.1 Zarządzanie rysunkami Cel: Zapoznanie się z typami rysunków i sposobami ich otwierania w aplikacjach przemysłowych. Poznanie zmiennych globalnych, skryptu wykonywanego w chwili otwierania rysunku i ekspertów służących do zarządzania rysunkami aplikacji. Zadanie: Wykonać aplikację systemu iFIX, która po kliknięciu ikony iFIX 5.0 na pulpicie systemu Windows uruchamia program WorkSpace w trybie wykonywania i otwiera trzy okna: rysunków: ListwaGorna.grf, ListwaDolna.grf i Reaktor.grf. Na rysunku ListwaDolna.grf umieszczone są dwa przyciski Reaktor i Alarmy, które umożliwiają otwarcie rysunku Reaktor.grf i AlarmyBiezace.grf w części środkowej monitora. W czasie startu systemu iFIX automatycznie otwierana jest procesowa baza danych o nazwie VIXKurs. Rozdział 4: Tworzenie i metody zarządzania rysunkami 87 Aby zrealizować powyższe zadanie, należy wykonać następujące czynności: A. Utworzyć rysunki: ListwaGorna, ListwaDolna, Reaktor i AlarmyBiezace: Listwa górna ListwaGorna.grf Okno ekranu synoptycznego Okno ekranu synoptycznego Reaktor.grf Listwa dolna 1. 88 AlarmyBiezace.grf ListwaDolna.grf Utworzyć plik rysunku listwy górnej ListwaGorna.grf: Wybrać polecenia NewPicture w menu przycisku WorkSpace Button. W wyświetlonym oknie Create Picture Wizard wybrać opcję drugą: Create a Custom Picture, tak jak pokazano na rysunku poniżej i kliknąć przycisk Next >. W drugim wyświetlonym oknie wybrać opcję WorkSpace Full Screen in Run Mode i kliknąć przycisk Next >. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA W trzecim wyświetlonym oknie wybrać opcję Use Specified Dimensions i w kolejnych polach wpisać odpowiednio: Left – 0; Top – 0; Width – 100; Height – 15. Kliknąć lewym przyciskiem myszy w polu Top, by po lewej stronie w oknie Preview Pane poprawnie zostało wyświetlone tworzone okno. Kliknąć przycisk Next >, aby przejść do następnego okna. Zaznaczyć pole wyboru, tak jak przedstawiono na poniższym rysunku. Wybrać kolor tła Szary 68 i przejść do następnego okna ( Next > ). Rozdział 4: Tworzenie i metody zarządzania rysunkami 89 Wpisać nazwę pliku ListwaGorna i przejść do kolejnego okna. W wyświetlonym oknie z podsumowaniem wykonanych operacji kliknąć przycisk Finish. 2. Utworzyć plik rysunku listwy dolnej ListwaDolna.grf w podobny sposób, jak zostało utworzone okno ListwaGorna.grf, przy czym w oknie „Define Custom Picture” kreatora należy wprowadzić: Left – 0, Top – 85, Width – 100 oraz Height - 15. 3. Utworzyć plik rysunku Reaktor.grf w podobny sposób jak został utworzony plik okna ListwaGorna.grf, przy czym w oknie „Define Custom Picture” kreatora należy wprowadzić: Left – 0; Top – 15, Width – 100 oraz Height – 70. 4. Plik okna AlarmyBiezace.grf należy utworzyć przez zapisanie pliku Reaktor.grf jako plik AlarmyBiezace.grf przy pomocy polecenia Save As w menu przycisku WorkSpace Button. 5. Na rysunku AlarmyBiezace.grf umieścić obiekt tekstowy Alarmy bieżące. B. Utworzyć zmienną globalną active_pic: 1. W oknie System Tree otworzyć folder Globals, prawym przyciskiem myszy kliknąć obiekt User i wybrać opcję Create Variable. Zostanie utworzona zmienna o domyślnej nazwie. Uwaga: W systemie iFIX istnieje kilka rodzajów zmiennych, które posiadają różny zakres stosowania. Zmienne globalne umieszczone w obiekcie User posiadają największy zakres, zapisywane są w pliku User.fxg i służą do przechowywania danych, które dostępne są na wszystkich rysunkach projektu. Dla konkretnego rysunku można stosować dodatkowo: lokalne zmienne globalne, zmienne języka 90 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA VBA lub bloki procesowej bazy danych. Kolejne rozdziały zawierają przykłady stosowania zmiennych różnego typu. 2. Zmienić nazwę zmiennej na active_pic przez wybranie w menu prawego przycisku myszy opcji Property Window... i w oknie Properties jako właściwość Name wpisać active_pic. 3. Zmienić typ utworzonej zmiennej przez zmianę właściwości Variable Type na 8 - vtString. C. W skryptach rysunków: Reaktor.grf oraz AlarmyBiezace.grf uruchamianych przy otwieraniu tych okien umieścić skrypt: Private Sub CFixPicture_Initialize() user.active_pic.CurrentValue = PictureName End Sub 1. W oknie System Tree kliknąć dwukrotnie lewym przyciskiem myszy nazwę rysunku Reaktor – otworzy się okno tego rysunku. 2. W oknie System Tree kliknąć prawym przyciskiem myszy nazwę rysunku Reaktor i wybrać opcję Edit script. 3. W lewym górnym oknie rozwijanym wybrać opcję CFixPicture, a w prawym zdarzenie Initialize. Rozdział 4: Tworzenie i metody zarządzania rysunkami 91 4. Pomiędzy liniami Private Sub CFixPicture_Initialize() i End Sub wprowadzić linię user.active_pic.CurrentValue = PictureName. Dla rysunku Reaktor.grf powstała w taki sposób procedura: Private Sub CFixPicture_Initialize() user.active_pic.CurrentValue = PictureName End Sub 5. Zaznaczyć trzy wiersze powyższej procedury i przy pomocy skrótu klawiszowego Ctrl+C umieścić ją w Schowku systemu Windows. 6. W oknie System Tree kliknąć dwukrotnie lewym przyciskiem myszy nazwę rysunku AlarmyBiezace – otworzy się okno tego rysunku. 7. W oknie System Tree kliknąć prawym przyciskiem myszy nazwę rysunku AlarmyBiezace i wybrać opcję Edit script. 8. Przy pomocy skrótu klawiszowego Ctrl+V wkleić procedurę ze schowka do rysunku AlarmyBiezace: Private Sub CFixPicture_Initialize() user.active_pic.CurrentValue = PictureName End Sub D. Określić okna, które będą otwierały się w chwili uruchamiania programu WorkSpace w trybie Run: 1. Na karcie Home, w grupie WorkSpace wybrać polecenie SettingsUser Preferences. 2. W karcie StartUp Pictures wprowadzić nazwy plików pokazane na rysunku poniżej. 3. W karcie General wybrać opcje: Start Workspace in Run mode, Full screen in Run mode. 92 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA E. W listwie dolnej umieścić 2 przyciski, które będą otwierały i zamykały okna Reaktor i AlarmyBiezace: 1. Wyświetlić okno rysunku ListwaDolna.grf przez kliknięcie ikony FullScreen w pasku narzędzi Quick Access Toolbar i aktywować to okno przez kliknięcie go lewym przyciskiem myszy. 2. Z paska narzędzi Toolbox wybrać narzędzie Push Button. 3. Na przycisku umieścić napis Reaktor przez dwukrotne kliknięcie tego przycisku. 4. Przy pomocy eksperta Replace Picture Expert po wybraniu przycisku z napisem Reaktor wpisać jako Picture to Replace: user.active_pic.CurrentValue, a jako New Picture Reaktor.grf. Rozdział 4: Tworzenie i metody zarządzania rysunkami 93 5. 94 W oknie Replace Picture Expert kliknąć przycisk OK i w wyświetlonych dwóch oknach kliknąć przycisk Yes. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 6. Przejść do edytora skryptów i usunąć cudzysłowy, by linia skryptu wyglądała tak, jak przedstawiono ją poniżej: ReplacePicture "Reaktor.grf", user.active_pic.CurrentValue 7. Podobnie jak przycisk Reaktor utworzyć przycisk z napisem Alarmy do otwierania i zamykania pliku AlarmyBiezace.grf. Linię skryptu dla przycisku z napisem Alarmy przedstawiono poniżej: ReplacePicture "AlarmyBiezace.grf", user.active_pic.CurrentValue F. Zmienić nazwy obiektów przycisk i przetestować działanie aplikacji: na PrzyciskReaktor i PrzyciskAlarmy 1. Kliknąć prawym przyciskiem myszy na rysunku ListwaDolna.grf przycisk z napisem Reaktor i w wyświetlonym menu wybrać opcję Property Window... . 2. W polu obok właściwości Name wprowadzić nazwę PrzyciskReaktor. 3. Kliknąć prawym przyciskiem myszy na rysunku ListwaDolna.grf przycisk z napisem Alarmy i w wyświetlonym menu wybrać opcję Property Window... . 4. W polu obok właściwości Name wprowadzić nazwę PrzyciskAlarmy. 5. Zamknąć program WorkSpace przez zastosowanie skrótu klawiszowego Alt+F4. W przypadku, gdy system zapyta, czy zapisać zmiany na wykonanych rysunkach potwierdzić chęć zapisania zmian na dysku twardym. 6. Uruchomić ponownie program WorkSpace, korzystając z przycisku Start systemu Windows, polecenia Wszystkie programy i grupy programów Proficy HMI SCADA iFIX 5.0. Na ekranie monitora powinny zostać otwarte trzy okna rysunków: ListwaGorna.grf, ListwaDolna.grf i Reaktor.grf. 7. Na rysunku ListwaDolna.grf kliknąć przycisk Alarmy, powinno zostać otwarte okno rysunku AlarmyBiezace.grf w części środkowej monitora. 8. Na rysunku ListwaDolna.grf kliknąć przycisk Reaktor, powinno zostać otwarte okno rysunku Reaktor.grf w części środkowej monitora. 9. Kliknąć dwa razy na przycisku Alarmy, powinno zostać wyświetlone ponownie okno rysunku AlarmyBiezace.grf i okienko z błędem. Rozdział 4: Tworzenie i metody zarządzania rysunkami 95 Uwaga: Wykonana dotychczas aplikacja posiada wadę. Otóż nie można przy jej pomocy otwierać wielokrotnie tego samego rysunku. Na ekranie monitora wyświetlany jest błąd. W celu jego wyeliminowania należy zmienić skrypty przypisane do przycisków Reaktor i Alarmy. Można wprowadzić program, który po wyświetleniu określonego ekranu będzie przyciemniał przycisk i kolejne jego kliknięcie nie spowoduje ponownego otwarcia danego ekranu. Takie rozwiązanie nie jest jednak łatwe w realizacji. Lepszym rozwiązaniem jest użycie instrukcji ReplacePicture z parametrem 2, określającym sposób obsługi błędów. Parametr 2 blokuje wyświetlanie błędów. G. Zmienić skrypty przycisków: Reaktor i Alarmy tak, aby można było wielokrotnie klikać ten sam przycisk do otwierania tego samego ekranu: Zmodyfikować instrukcję wykonywaną po kliknięciu przycisku Reaktor i Alarmy odpowiednio na: ReplacePicture "Reaktor.grf", user.active_pic.CurrentValue,,2 ReplacePicture "AlarmyBiezace.grf", user.active_pic.CurrentValue,,2 H. Na rysunek Reaktor.grf skopiować zawartość rysunku Zbiornik.grf, który został wykonany w poprzednim ćwiczeniu: 1. Otworzyć rysunek Zbiornik.grf i przy pomocy skrótu klawiszowego Ctrl+A zaznaczyć wszystkie obiekty graficzne. 2. Przy pomocy skrótu klawiszowego Ctrl+G utworzyć grupę ze wszystkich obiektów graficznych. 3. Skopiować zawartość rysunku Zbiornik.grf do Schowka systemu Windows przy pomocy skrótu klawiszowego Ctrl+C. 4. Otworzyć rysunek Reaktor.grf i wkleić na ten rysunek zawartość rysunku Zbiornik.grf przy pomocy skrótu klawiszowego Ctrl+V. Dopasować rozmiar wklejonej grupy obiektów do rozmiaru rysunku Reaktor.grf, korzystając z uchwytów grupy. 5. Kliknąć prawym przyciskiem myszy wklejoną grupę obiektów i rozgrupować ją przy pomocy skrótu klawiszowego Ctrl+R. 6. Otworzyć rysunek Zbiornik.grf, kliknąć go prawym przyciskiem myszy, wybrać polecenie Edit Script i skopiować do schowka systemu Windows poniżej przedstawioną instrukcję. Instrukcja ta nie została skopiowana wraz z obiektami graficznymi rysunku, ponieważ dotyczy ona obiektu (rysunku), który nie został skopiowany. SuwakAV2.Value = ReadValue(”Fix32.THISNODE.AV2.F_CV”) 7. Otworzyć rysunek Reaktor.grf, kliknąć go prawym przyciskiem myszy, wybrać polecenie Edit Script i skopiować ze schowka do procedury CFixPicutre_Initialize instrukcję: Private Sub CFixPicture_Initialize() user.active_pic.CurrentValue = PictureName SuwakAV2.Value = ReadValue(”Fix32.THISNODE.AV2.F_CV”) End Sub 96 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA I. Zdefiniować nazwę procesowej uruchomieniu systemu iFIX: bazy danych otwieranej przy kolejnym Uwaga: W przypadku wykonania ćwiczenia „Słupek” niniejszy punkt można pominąć. 1. W programie WorkSpace wyświetlić kartę Applications. 2. W grupie System&Security wybrać program SCU. 3. Dwukrotnie kliknąć napis ”PDB:” i w wyświetlonym oknie wprowadzić nazwę procesowej bazy danych VIXKURS, która automatycznie będzie otwierana przy kolejnym uruchomieniu systemu iFIX. 4. W menu File wybrać opcję Save as i zapisać wprowadzone zmiany do pliku z konfiguracją systemu Proficy iFIX. Domyślnie plikiem tym jest FIX.scu (Nazwa_węzła.scu). Rozdział 4: Tworzenie i metody zarządzania rysunkami 97 J. Przetestować działanie aplikacji zarządzania rysunkami: 98 1. Zamknąć program WorkSpace przez zastosowanie skrótu klawiszowego Alt+F4. W przypadku, gdy system zapyta, czy zapisać zmiany na wykonanych rysunkach potwierdzić chęć zapisania zmian na dysku twardym. 2. Uruchomić ponownie program WorkSpace, korzystając z przycisku Start systemu Windows, polecenia Wszystkie programy i grupy programów Proficy HMI SCADA iFIX 5.0. Na ekranie monitora powinny zostać otwarte trzy okna rysunków: ListwaGorna.grf, ListwaDolna.grf i Reaktor.grf. 3. Na rysunku ListwaDolna.grf kliknąć przycisk Alarmy, powinno zostać otwarte okno rysunku AlarmyBiezace.grf w części środkowej monitora. 4. Na rysunku ListwaDolna.grf kliknąć przycisk Reaktor, powinno zostać otwarte okno rysunku Reaktor.grf w części środkowej monitora. 5. Kliknąć dwa razy przycisk Alarmy, powinno zostać wyświetlone ponownie okno rysunku AlarmyBiezace.grf bez wyświetlenia okienka z błędem. 6. Zamknąć system iFIX i ponownie go uruchomić. Sprawdzić, czy automatycznie została otwarta procesowa baza danych VIXKurs przez sprawdzenie, czy działa aplikacja na rysunku Reaktor.grf przez kliknięcie lampki zaworu V5. Jeśli lampka zmieni kolor, oznacza to, że procesowa baza danych VIXKurs została otwarta poprawnie. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 5 ARCHIWIZACJA DANYCH PROCESOWYCH I ICH PREZENTACJA NA WYKRESACH Podstawowym archiwizatorem w systemie iFIX v5.0 jest Proficy Historian, który instaluje się w podczas instalacji systemu iFIX. Posiada on szereg zalet w stosunku do dotychczas stosowanego archiwizatora Classic Historian: archiwizacja zmiennych łańcuchowych (przykładowo oznaczenia wsadów), doskonała kompresja danych w dwóch etapach (kolektor, archiwum) i logika Spike, redundantne kolektory zabezpieczające przed awariami sieci, szybki zapis i odczyt ( 100 000 zapisów/odczytów na sekundę), łatwość kreślenia danych z wielu serwerów na jednym wykresie, duża dokładność stopki czasowej (do 1 milisekundy), integracja z systemem iFIX, zwiększone bezpieczeństwo danych. Dane archiwalne można zbierać na lokalnym komputerze lub korzystając z architektury przedstawionej na poniższym rysunku. Rozdział 5: Archiwizacja danych procesowych i ich prezentacja na wykresach 99 5.1 Ćwiczenia 5.1.1 Proficy Historian jako podstawowy archiwizator danych Cel: Zapoznanie się ze sposobem archiwizacji danych procesowych w systemie iFIX w przemysłowej bazie danych Proficy Historian i prezentacją tych danych w postaci wykresu typu Line Multiline Chart. Zadanie: Zapisać do bazy danych Proficy Historian wartości pochodzące z czterech bloków systemu iFIX, których wartości generowane są przy pomocy drajwera SIM (trzy sinusoidy przesunięte w fazie o 90o i wartości przypadkowe). Wyświetlić bieżące wartości wybranego bloku z bazy danych Proficy Historian przy pomocy pola danych archiwalnych. Wykreślić przebiegi czasowe omawianych czterech bloków na wykresie w sposób pokazany poniżej i zapisać przedstawione wartości do pliku tekstowego. Dodatkowo przedstawić możliwość wyboru pisaków na wykresie Line MultiLine Chart. 100 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA Aby zrealizować powyższe zadanie, należy wykonać następujące czynności: A. Uruchomić kolektor systemu iFIX: 1. Korzystając z przycisku Start systemu iFIX, grupy programów Proficy Historian 3.1 wybrać polecenie Start iFIX Collector. 2. Jako alternatywę do ręcznego uruchomienia tego kolektora wprowadzić wpis w oknie Task Configuration w programie System Configuration Utility (SCU.EXE), który można uruchomić przy pomocy Drzewa systemu w folderze System Configuration w programie WorkSpace. Wpis ten będzie automatycznie uruchamiał kolektor do zbierania danych archiwalnych ihFixCollector.exe w chwili startu programu iFIX w warunkach przemysłowych. Aby zrealizować to zadanie, należy w programie SCU.EXE wykonać następujące czynności: W menu Configure wybrać opcję Tasks..., Rozdział 5: Archiwizacja danych procesowych i ich prezentacja na wykresach 101 102 W oknie Task Configuration kliknąć przycisk z trzema kropkami obok pola FileName, odszukać w wyświetlonym oknie plik ihFixCollector.exe, wybrać go i kliknąć przycisk Otwórz. W oknie Taks Configuration kliknąć przycisk Add, a następnie przycisk strzałki skierowanej w górę, by przemieścić linię z programem Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA ihFixCollector.exe przed program WorkSpace.exe w liście Configured Tasks. W obszarze Star Up Mode kliknąć przycisk opcji Background, by program ihFixCollector.exe był uruchamiany jako zadanie działające po wylogowaniu użytkownika z systemu Windows. Obok linii z programem ihFixCollector.exe z lewej strony powinien pojawić się znak procentu (%). Program ihFixCollector.exe zbiera dane archiwalne. Gdyby użytkownik wylogował się, a tryb pracy tego programu nie był Background, wtedy w archiwum brakowało by danych, bo system Windows w chwili wylogowania użytkownika zamyka wszystkie programy z wyjątkiem programów działających w trybie Background. Zamknąć okno Task Configuration przy pomocy przycisku OK. W głównym oknie programu SCU.EXE zapisać plik konfiguracyjny przy pomocy menu File i polecenia Save as. B. Skonfigurować kolektor systemu iFIX jako kolektor domyślny: 1. Na wstążce Administration w grupie Proficy Historian kliknąć w dolnej części ikonę Configure Historian i wybrać polecenie Configure Historian Server. 2. W wyświetlonym oknie kliknąć przycisk Get Collectors. 3. W polu Collector Name pojawi się nazwa kolektora (nazwa komputera + znak podkreślenia + przyrostek iFIX). Kliknąć tę nazwę i przycisk Set Default. Rozdział 5: Archiwizacja danych procesowych i ich prezentacja na wykresach 103 4. Zamknąć okno Configure the Proficy Historian Server(s) przez kliknięcie przycisku Close. C. W procesowej bazie danych systemu iFIX skonfigurować bloki do archiwizacji: 1. 104 Do bazy danych wprowadzić blok typu AI o nazwie: SINEWAVE1, korzystający z drajwera SIM, który w polu I/O Address posiada wpis: RD. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 2. Na karcie Proficy Historian w polu Tag Description wprowadzić Blok dla Proficy Historian 1. W obszarze Collection Options kliknąć przycisk opcji Enable. 3. Do bazy danych wprowadzić blok typu AI o nazwie: SINEWAVE2, korzystający z drajwera SIM, który w polu I/O Address posiada wpis: RE. Na karcie Proficy Historian w polu Tag Description wprowadzić Blok dla Proficy Historian 2. W obszarze Collection Options kliknąć przycisk opcji Enable. 4. Do bazy danych wprowadzić blok typu AI o nazwie: SINEWAVE3, korzystający z drajwera SIM, który w polu I/O Address posiada wpis: RF. Na karcie Proficy Historian w polu Tag Description wprowadzić Blok dla Proficy Historian 3. W obszarze Collection Options kliknąć przycisk opcji Enable. 5. Do bazy danych wprowadzić blok typu AI o nazwie: RANDOM1, korzystający z drajwera SIM, który w polu I/O Address posiada wpis RG. Na karcie Proficy Historian w polu Tag Description wprowadzić Dane przypadkowe. W obszarze Collection Options kliknąć przycisk opcji Enable. W polu Collection Interval wprowadzić wartość 1000.0. Rozdział 5: Archiwizacja danych procesowych i ich prezentacja na wykresach 105 D. Wykonać synchronizację bazy danych Proficy Historian z procesową bazą danych systemu iFIX i sprawdzić archiwizację danych: 106 1. W celu synchronizacji bazy danych Proficy Historian z procesową bazą danych systemu iFIX należy zapisać procesową bazę danych VIXkurs na dysku twardym, korzystając z polecenia Save Database na wstążce w programie WorkSpace na karcie Applications. W ten sposób Proficy Historian zostanie powiadomiony, że są nowe bloki przeznaczone do archiwizacji. 2. Po chwili uruchomić program Proficy Historian Administrator, korzystając z ikony na karcie Administration. 3. W wyświetlonym oknie kliknąć w górnym pasku menu napis Tags i w drugim wierszu polecenie Search Historian Tag Database. W wyświetlonym oknie Search Historian Tag Database w polu Tag Mask wprowadzić znak *, z listy rozwijanej Collector wybrać kolektor systemu iFIX i kliknąć przycisk OK. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 4. W obszarze Tags pojawią się nazwy czterech bloków. Kliknąć przykładowo nazwę bloku SINEWAVE1 prawym przyciskiem myszy i z otwartego menu wybrać polecenie Last 10 Values. Uwaga: Gdy w obszarze Tags nie pojawią się żadne bloki, należy skorzystać z opcji Add Tags From Collector umieszczonej w górnym pasku menu. Rozdział 5: Archiwizacja danych procesowych i ich prezentacja na wykresach 107 5. W oknie Historian Trend zostaną wyświetlone ostatnio zarchiwizowane w bazie danych Proficy Historian wartości bloku SINEWAVE1. E. Na rysunku systemu iFIX dodać pole danych archiwalnych Historical Datalink dla zmiennej z bazy danych Proficy Historian: 1. Utworzyć plik rysunku WykresPHist.grf przez zapisanie na dysku twardym rysunku AlarmyBiezace i usunięcie wszystkich obiektów tego rysunku. Na listwie dolnej dołożyć przycisk z nazwą Proficy Historian i następującym skryptem: ReplacePicture "WykresPHist.grf", user.active_pic.CurrentValue 2. 108 Przełączyć aktualny dostęp do danych archiwalnych w systemie iFIX na Proficy Historian przez wybranie na wstążce Administration ikony Configure Historian i polecenia Change Historian. W wyświetlonym oknie Select Historian należy wybrać opcję Proficy Historian i kliknąć przycisk OK. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 3. W wyświetlonym oknie, pokazanym poniżej, należy kliknąć przycisk OK oraz ponownie uruchomić program WorkSpace i otworzyć rysunek WykresPHist.grf. 4. Na wstążce programu WorkSpace na karcie Insert należy kliknąć dolną część ikony Objects/Links i wybrać polecenie Historical Datalink. Rozdział 5: Archiwizacja danych procesowych i ich prezentacja na wykresach 109 110 5. W wyświetlonym oknie HistDatalink należy kliknąć przycisk z trzema kropkami obok pola Source. 6. W liście rozwijanej Servers w górnej części okna Expression Builder należy wybrać stosowany serwer Proficy Historian i na wyświetlonej liście archiwizowanych bloków kliknąć przykładowo blok SINEWAVE1. Kliknąć przycisk OK w oknie Expression Builder i oknie HistDataLink. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 7. Kliknąć obszar rysunku, by umieścić na nim tworzone pole danych archiwalnych. 8. Przejść do trybu wykonywania programu WorkSpace i zaobserwować na bieżąco odczytywane z bazy danych Proficy Historian wartości, którym towarzyszy stopka czasowa. Wartości te zmieniają się co 5 sekund. F. Wstawić na rysunek i skonfigurować wykres Line MultiLine Chart: 1. Umieścić na rysunku WykresPHist.grf obiekt Line MultiLine Chart przez kliknięcie ikony tego typu wykresu na wstążce Insert, przemieszczenie kursora myszy na rysunek i narysowanie prostokąta. 2. Dwukrotnie kliknąć obiekt Line MultiLine Chart, wybrać kartę DataSources i na listę Data Sources List wprowadzić cztery pisaki, korzytając z przycisku z trzema kropkami i okna Expression Builder, tak jak pokazano na poniższych rysunkach. Na karcie Data Sources w środkowej części zaznaczyć pole wyboru Apply To All Data Sources, otworzyć kartę Time i skontrolować jej zawartość – patrz rysunek poniżej. Wartość 00:00:10.000 w polu Time w obszarze Interval oznacza, że na wykresie będą kreślone wartości z bazy danych co 10 sekund. Rozdział 5: Archiwizacja danych procesowych i ich prezentacja na wykresach 111 112 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 3. W oknie Line Chart Customization kliknąć przycisk Apply i w wyświetlonym oknie przycisk OK w celu potwierdzenia dokonywanych ustawień dla wszystkich pisaków. 4. Na karcie DataSources wybrać pisak RANDOM1, wyczyścić pole wyboru Apply To All Data Sources i na karcie Time wprowadzić w polu Interval wartość 00:00:01.000. 5. Na karcie General zaznaczyć pole wyboru Modifiable, w polu Historical Update Rate jako okres odświeżania wykresu wprowadzić wartość 20 sekund oraz w obszarze Duration w polu Time wprowadzić wartość 00:05:00 jako przedział czasu wyświetlany na wykresie, oznaczający wartość 5 minut. Rozdział 5: Archiwizacja danych procesowych i ich prezentacja na wykresach 113 114 6. Przejść do trybu wykonywania programu WorkSpace, kliknąć lewym, a potem prawym klawiszem myszy wykres i kolejno wybrać następujące polecenia: Chart Options, Graph and/or Table oraz Both Graph and Table. 7. Ponownie kliknąć prawym klawiszem myszy wykres i kolejno wybrać następujące polecenia: Chart Options, Font Size oraz Small w celu zmniejszenia rozmiaru czcionki, by było więcej miejsca na kreślony wykres. 8. Z menu prawego przycisku myszy dla wykresu kolejno wybrać: Chart Options, Snapshot. Na całym ekranie monitora zostanie wyświetlony wykres w postaci mapy bitowej. W celu zakończenia wyświetlania wykresu w tej formie należy nacisnąć klawisz Esc. 9. Ponownie skorzystać z menu prawego przycisku myszy i kolejno wybrać: Chart Options, Plotting Method i potem Area. Zwrócić uwagę, że ukryte dane kreślone są w postaci linii przerywanej. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA G. Eksportować dane z wykresu do pliku tekstowego: 1. Z menu prawego przycisku myszy kolejno wybrać: Chart Options i Export Dialog. 2. W wyświetlonym oknie Exporting Line Chart w obszarze Export wybrać przycisk opcji Text / Data, w obszarze Export Destination przycisk opcji File, kliknąć pole obok przycisku Browse i w wyświetlonym oknie Zapisywanie jako wprowadzić w polu Nazwa pliku nazwę Dane1.txt, kliknąć przycisk Zapisz. 3. W oknie Exporting Line Chart kliknąć przycisk Export i w wyświetlonym oknie Export... Line Chart również kliknąć przycisk Export. 4. Wyświetlić zawartość pliku Dane1.txt przy pomocy programu Notatnik systemu Windows. Rozdział 5: Archiwizacja danych procesowych i ich prezentacja na wykresach 115 Uwaga: Ostatnie zmiany zostały wykonane w trybie wykonywania programu WorkSpace i zostaną utracone po przejściu do trybu konfiguracji. H. Za pomocą obiektu Line Multiline Chart wyświetlić dwa wykresy zawierające po 3 przebiegi czasowe, przy czym każdy z wykresów powinien zawierać przebiegi czasowe bloków SINEWAVE1 i SINEWAVE2: 116 1. Na karcie Subsets wybrać dwa pierwsze bloki i w obszarze Scrolling Subsets zmienić rozmiar podzbioru na 1. 2. W oknie Line Chart Customization kliknąć przycisk OK. Wyświetlić można dwa wykresy, korzystając z paska przewijania z prawej strony wykresu. Oba zawierają wybrane powyżej dwa pisaki i dodatkowo jeden z pozostałych pisaków. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA Uwaga: Aby wyświetlić tylko jeden przebieg czasowy w trybie wykonywania w programie WorkSpace, należy kliknąć wykres lewym, a później prawym przyciskiem myszy i z wyświetlonego menu wybrać polecenie Chart Configuration. W wyświetlonym oknie Line Chart Customization na karcie Subsets wybrać pisak na Rozdział 5: Archiwizacja danych procesowych i ich prezentacja na wykresach 117 liście Baseline Subsets To Graph oraz w obszarze Scrolling Subsets wprowadzić wartość 4. I. Przełączyć aktualny dostęp do danych archiwalnych w systemie iFIX na Classic Historian: Uwaga: Niniejszy punkt należy zrealizować, aby większość ćwiczeń w tym podręczniku była od siebie niezależna. 118 1. Na wstążce Administration wybrać ikonę Configure Historian i polecenie Change Historian. 2. W wyświetlonym oknie Select Historian wybrać opcję Classic Historian i kliknąć przycisk OK. 3. W wyświetlonym oknie WorkSpace Application kliknąć przycisk OK oraz ponownie uruchomić program WorkSpace. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 5.1.2 iFIX jako rejestrator danych Cel: Zapoznanie się ze sposobem rejestracji danych procesowych w systemie iFIX i prezentacją tych danych w postaci wykresu typu Standard z przyciskami do zmiany czasu na osi X wykresu. Zadanie: Zapisać do pliku bazy danych systemu iFIX wartości pochodzące z trzech suwaków, wyświetlanych po kliknięciu ich wyświetlaczy cyfrowych, umieszczonych na rysunku oraz wykreślić przebiegi czasowe tych wartości na wykresie. Aby zrealizować powyższe zadanie, należy wykonać następujące czynności: A. W procesowej bazie danych systemu iFIX utworzyć trzy bloki do archiwizacji: x1, x2 i x3: 1. Otworzyć rysunek AlarmyBiezace i zapisać go na dysku twardym jako rysunek WykresyHistoryczne przy pomocy przycisku WorkSpace Button i poleceania Save As. 2. Wybrać wszystkie obiekty na rysunku WykresyHistoryczne.grf przy pomocy skrótu klawiszowego Ctrl+A i nacisnąć przycisk Delete. Rozdział 5: Archiwizacja danych procesowych i ich prezentacja na wykresach 119 120 3. Na tym rysunku umieścić wyświetlacz cyfrowy, przy pomocy którego będzie można wprowadzać wartości do procesowej bazy danych. W tym celu należy w pasku narzędzi Toolbox wybrać ikonę Datalink Stamper. 4. W wyświetlonym oknie Datalink w polu Source wprowadzić nazwę bloku X1 i kliknąć przycisk OK. 5. W wyświetlonym oknie Connection Error kliknąć przycisk Create. 6. Do procesowej bazy danych wprowadzić blok typu Analog Register o nazwie x1 i adresie 101, korzystający z drajwera SIM. Na karcie Advanced w oknie konfiguracyjnym tego bloku należy wybrać opcję Enable Output. 7. Podpisać wyświetlacz cyfrowy dla bloku x1. 8. Kliknąć lewym przyciskiem myszy utworzony obiekt wyświetlacz cyfrowy i przypisać mu możliwość wprowadzania wartości przy pomocy suwaka przez skorzystanie z eksperta Data Entry Expert dostępnego w pasku narzędzi Toolbox. 9. Powtórzyć kroki od 2 do 8 dwa razy w celu umieszczenia na rysunku dwóch dodatkowych wyświetlaczy cyfrowych, które należy przypisać odpowiednio do bloków x2 i x3. Bloki te powinny korzystać z drajwera SIM i posiadać adresy odpowiednio 102 i 103. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA B. Dla programu HTC (Historical Trend Collect) utworzyć pliki konfiguracyjne, które określają bloki przeznaczone do archiwizacji i parametry zbierania danych: 1. Uruchomić program Historical Assignment przez kliknięcie jego nazwy w oknie Drzewa systemu programu WorkSpace w folderze Historical Configuration. 2. Skonfigurować dwie grupy bloków przez dwukrotne kliknięcie wolnych wierszy w wyświetlonym arkuszu: grupę x1 i x3, którą należy rejestrować co 1 sekundę i grupę złożoną z jednego bloku x2, który należy rejestrować co 2 sekundy. Nazwy bloków na listę Tagname wprowadza się przez ich wprowadzenie w polu Tagname i kliknięcie przycisku Add. Zwrócić należy uwagę na opcję Limit. Po wprowadzeniu nowej wartości w tym polu należy kliknąć przycisk Modify. Rozdział 5: Archiwizacja danych procesowych i ich prezentacja na wykresach 121 122 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 3. Przy pomocy Eksploratora systemu Windows w folderze C:\Program Files\GE Fanuc\Proficy FIX\Htr zauważyć utworzenie plików konfiguracyjnych używanych przez program HTC do zbierania danych. C. Uruchomić program Historical Collect (HTC.EXE): 1. Uruchomić program Mission Control, korzystając z karty Applications. 2. Na karcie HTC kliknąć przycisk Start i w wyświetlonym oknie HTC również przycisk Start bez wprowadzania żadnego parametru w polu Option Command Line. Na karcie HTC w programe Mission Control w polu Overruns powinno pojawić się 0. Liczba ta oznacza liczbę pominiętych zapisów do pliku bazy danych archiwalnych. Rozdział 5: Archiwizacja danych procesowych i ich prezentacja na wykresach 123 3. 124 Jako alternatywę do ręcznego uruchomienia tego programu wprowadzić wpis w oknie Task Configuration w programie System Configuration Utility (SCU.EXE), który można uruchomić przy pomocy Drzewa systemu i folderu System Configuration. Wpis ten będzie automatycznie uruchamiał program do zbierania danych archiwalnych HTC.exe w chwili startu programu iFIX w warunkach przemysłowych. Aby zrealizować to zadanie, należy w programie SCU.EXE wykonać następujące czynności: W menu Configure wybrać opcję Tasks..., W oknie Taks Configuration kliknąć przycisk z trzema kropkami obok pola FileName, odszukać w wyświetlonym oknie plik HTC.exe, wybrać go i kliknąć przycisk Otwórz. W oknie Task Configuration kliknąć przycisk Add, a następnie przycisk strzałki skierowanej w górę, by przemieścić linię z programem HTC.exe przed program WorkSpace.exe w liście Configured Tasks. W obszarze Star Up Mode kliknąć przycisk opcji Background, by program HTC.exe był uruchamiany jako zadanie działające po wylogowaniu użytkownika z systemu Windows. Obok linii z programem HTC.exe z lewej strony powinien pojawić się znak procentu (%). Program HTC.exe zbiera dane archiwalne. Gdyby użytkownik wylogował się, a tryb pracy tego programu nie był Background, wtedy w archiwum brakowało by danych, bo system Windows w chwili wylogowania użytkownika zamyka wszystkie programy z wyjątkiem programów działających w trybie Background. Zamknąć okno Task Configuration przy pomocy przycisku OK. W głównym oknie programu SCU.EXE zapisać plik konfiguracyjny przy pomocy menu File i polecenia Save as. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 4. Przy pomocy Eksploratora systemu Windows w folderze C:\Program Files\GE Fanuc\Proficy FIX\Htrdata\FIX zauważyć plik, w którym rejestrowane są dane. Uwaga: Program HTC czyta pliki konfiguracyjne tylko w chwili jego uruchomienia. W związku z tym, w przypadku modyfikacji plików konfiguracyjnych, należy zatrzymać program HTC i uruchomić go ponownie. W systemie iFIX w ten sposób działa również wiele innych programów. D. Dodać wykres do rysunku WykresyHistoryczne.grf i skonfigurować go: 1. Na rysunku WykresyHistoryczne.grf umieścić obiekt Dynamo z biblioteki gotowych obiektów Historical przez kliknięcie nazwy Historical w folderze Dynamo Sets umieszczonym w drzewie systemu i przeciągnięcie obiektu z wyświetlonego okna pliku Historical.fds na tworzony rysunek. Po przeciągnięciu tego obiektu z prawego dolnego okna na tworzony rysunek i zwolnieniu lewego przycisku myszy, zostanie wyświetlone okno konfiguracyjne obiektu Chart. Rozdział 5: Archiwizacja danych procesowych i ich prezentacja na wykresach 125 2. 126 Skonfigurować obiekt Chart: Wybrać kartę Chart. Nad listą Pen List kliknąć pierwszy od lewej strony przycisk w celu dodania nowego wiersza do listy Pen List. W dodanym wierszu kliknąć przycisk z trzema kropkami, w wyświetlonym edytorze Expression Builder na karcie Historical wybrać pierwszy pisak X1.F_CV i kliknąć przycisk OK. Kliknąć w okienku Pen List poniżej wprowadzonego wiersza. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA W analogiczny sposób do listy Pen List wprowadzić dwa pozostałe pisaki przez wywołanie okna Expression Builder, uaktywnienie karty Historical i wybranie odpowiednich pisaków X2 oraz X3. W oknie Chart Configuration usunąć domyślny pisak Hist.NODE.TAG.F_CV przez jego zaznaczenie i kliknięcie przycisku z czerwonym znakiem X umieszczonym z prawej strony nad listą Pen List. Skonfigurować kartę Time (patrz rysunek poniżej) dla wszystkich pisaków. W polu Duration Before Now należy wprowadzić 00:01:00 oraz skorzystać z pola wyboru Apply To All Pens, kliknąć przycisk Apply i OK. Rozdział 5: Archiwizacja danych procesowych i ich prezentacja na wykresach 127 E. Przetestować działanie aplikacji: 128 1. Przy otwartym rysunku WykresyHistoryczne.grf przejść do trybu wykonywania programu WorkSpace, korzystając ze skrótu klawiszowego Ctrl+W. 2. Kliknąć każdy z wyświetlaczy cyfrowych lewym przyciskiem myszy i w wyświetlonym oknie Slider Entry przy pomocy suwaka zmienić wartość bloku. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 3. Po upływie około minuty, klikając przyciski zmiany wyświetlanego przedziału czasu w dolnej części wykresu, wyświetlić na wykresie bieżącą chwilę czasu i sprawdzić, czy wyświetlane wartości z bazy danych archiwalnych odpowiadają wartościom wprowadzonym przy pomocy wyświetlaczy cyfrowych. Najświeższe dane z plików danych historycznych można odczytać o pełnych minutach. F. Usunąć wpis w programie System Configuration (SCU.EXE) dotyczący programu HTC.EXE: Uwaga: Niniejszy punkt należy zrealizować, aby większość ćwiczeń w tym podręczniku była od siebie niezależna. 1. Uruchomić program System Configuration przez kliknięcie w programie WorkSpace na wstążce Application ikony programu SCU w grupie programów System & Security. Rozdział 5: Archiwizacja danych procesowych i ich prezentacja na wykresach 129 130 2. W menu Configure wybrać polecenie Tasks. 3. Na liście Configured Tasks kliknąć linię zawierającą program HTC.EXE oraz w oknie Task Configuration przyciski Delete i OK. 4. W głównym oknie programu SCU.EXE zapisać plik konfiguracyjny przy pomocy menu File i polecenia Save As. 5. Uruchomić ponownie system iFIX. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 5.1.3 Wykresy bieżące – użycie bloków ETR Cel: Zapoznanie się ze sposobem prezentacji bieżących wartości zmiennych procesowych na wykresach bieżących w dłuższych okresach czasu i ze sposobem użycia bloków ETR. Zadanie: Przedstawić na wykresie bieżącym na rysunku AlarmyBiezace.grf ilość ciepła dostarczanego do zbiornika zmienianego przez stopień otwarcia zaworu analogowego AV2 i zawór V5, tak by wartości przedstawione na wykresie nie znikały po zamknięciu i ponownym otwarciu tego rysunku, tzn. rysunek powinien zawierać wartości z chwil przed otwarciem tego rysunku. Na rysunku Reaktor.grf umieścić natomiast wykres bieżący ilości ciepła dostarczanego do zbiornika zmienianego przez stopień otwarcia zaworu AV2 i zawór V5, który jest czyszczony, tzn. wartości pisaka mają być przedstawiane od nowa po każdorazowym otwarciu rysunku. Uwaga: Gdy zawór V5 jest zamknięty, wtedy ilość dostarczanego ciepła do zbiornika wynosi 0. Zawór ten powinien być otwarty, by można było zmieniać ilość dostarczanego ciepła przez zmianę stopnia otwarcia zaworu AV2. Rysunek Reaktor.grf po jego zamknięciu i otwarciu: Rysunek AlarmyBiezace.grf po jego zamknięciu i otwarciu: Rozdział 5: Archiwizacja danych procesowych i ich prezentacja na wykresach 131 Aby zrealizować powyższe zadanie, należy wykonać następujące czynności: 132 1. W procesowej bazie danych wprowadzić nowy blok PARA_CA_ETR na końcu łańcucha rozpoczynającego się blokiem AV2_AI przez wprowadzenie nazwy PARA_CA_ETR w polu Next w bloku PARA_CA. Blok PARA_CA został utworzony w ćwiczeniu „Animacja rurociągu pary”. 2. Na rysunku Reaktor.grf umieścić obiekt Chart z paska narzędzi Toolbox i do listy pisaków tego obiektu wprowadzić: FIX32.THISNODE.PARA_CA.F_CV. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 3. Na rysunku AlarmyBiezace.grf umieścić obiekt Chart z paska narzędzi Toolbox i do listy pisaków tego obiektu wprowadzić: FIX32.THISNODE.PARA_CA_ETR.T_DATA. Uwaga: Aby wprowadzić nazwę bloku z polem T_DATA przy pomocy okna Expression Builder, należy skorzystać z listy rozwijanej obok przycisku z napisem F. W liście tej należy wybrać znak * i kliknąć potem przycisk z napisem F. Wtedy na liście Field Names pojawi się nazwa pola T_DATA. 4. Na rysunku Reaktor otworzyć zawór V5 i zmieniać stopień otwarcia zaworu AV2. Stopień otwarcia tego zaworu powinien być widoczny na wykresie bieżącym umieszczonym obok schematu reaktora. 5. W listwie dolnej kliknąć przycisk Alarmy i zauważyć, że na wykresie na tym rysunku również przedstawione są dokonane zmiany stopnia otwarcia zaworu AV2. 6. W listwie dolnej kliknąć przycisk Reaktor i zauważyć, że na wykresie obok reaktora wszystkie wcześniej obserwowane wartości stopnia otwarcia zaworu AV2 zniknęły. Wykres jest rysowany od początku. Rozdział 5: Archiwizacja danych procesowych i ich prezentacja na wykresach 133 7. Zmienić ponownie wartość stopnia otwarcia zaworu AV2 i zaobserwować, klikając kolejno w Listwie dolnej przyciski: Reaktor i Alarmy, że przebieg czasowy na wykresie na rysunku Reaktor.grf jest zawsze kreślony od nowa przy otwieraniu tego rysunku. Zjawisko to nie występuje natomiast na rysunku AlarmyBiezace.grf. Uwaga: Należy zwrócić uwagę, że wartości bloku PARA_CA zależą nie tylko od wartości bloku AV2_AI, lecz także od wartości bloku V5. Gdy zawór V5 jest zamknięty wtedy na wykresie kreślona jest wartość 0, gdyż w bloku obliczeniowym PARA_CA wtedy realizowane jest mnożenie przez 0. Blok ETR umożliwia zapamiętanie 600 wartości bloku, który go poprzedza w łańcuchu. Gdy poprzedzający go blok skanowany jest przykładowo co 1 sekundę, wtedy blok ETR umożliwia zapamiętanie wartości z ostatnich 10 min. 134 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 6 SKRÓTY KLAWISZOWE W warunkach przemysłowych stosowanie myszy do obsługi aplikacji jest czasami utrudnione lub nawet niemożliwe, szczególnie gdy operatorzy korzystają z aplikacji w warunkach dużego zapylenia lub podwyższonej wilgotności. W takim przypadku często stosuje się foliowaną klawiaturę i do obsługi aplikacji korzysta się ze skrótów klawiszowych. Skróty klawiszowe można zastosować m.in. do: wyświetlania poszczególnych rysunków, automatyzowania często powtarzających się zadań, wykonywania operacji na plikach, sterowania blokami procesowej bazy danych, automatycznego uruchamiania innych aplikacji systemu Windows, obsługiwania alarmów i komunikatów operatora. Skróty klawiszowe przypisane mogą być do obiektu graficznego na rysunku, samego rysunku lub mogą obowiązywać dla całej aplikacji. W przypadku użycia tego samego skrótu klawiszowego do obiektu graficznego na rysunku, rysunku i całej aplikacji skrót klawiszowy przypisany do obiektu graficznego ma wyższy priorytet niż skrót klawiszowy przypisany do rysunku lub całej aplikacji, a skrót klawiszowy przypisany do rysunku ma wyższy priorytet niż skrót klawiszowy przypisany do całej aplikacji. Priorytety skrótów klawiszowych obowiązują pod warunkiem, że dany obiekt jest obiektem aktywnym. Przykładowo, gdy wybranym obiektem na rysunku jest obiekt graficzny (objęty jest on wtedy czarnym prostokątem – w oknie Animacje podstawowe tego obiektu zaznaczone jest pole wyboru Enable Select), wtedy zostanie wykonana procedura skrótu klawiszowego, przykładowo F5 przypisana do obiektu graficznego, a nie procedura przypisana do skrótu klawiszowego F5 dla rysunku, na którym jest umieszczony omawiany obiekt. Object Level Picture Level Global Level Rozdział 6: Skróty klawiszowe 135 6.1 Ćwiczenia 6.1.1 Przełączanie okien przy pomocy klawiszy funkcyjnych Cel: Zapoznanie się ze sposobem oprogramowywania skrótów klawiszowych przy pomocy edytora Key Macro Editor. Zadanie: Przełączać się pomiędzy dwoma rysunkami REAKTOR i ALARMY korzystając odpowiednio z klawiszy funkcyjnych: F1 i F8. Możliwość korzystania z tych skrótów klawiszowych przedstawić w listwie dolnej w postaci etykiet F1 i F8 na przyciskach Reaktor i Alarmy. Aby zrealizować powyższe zadanie, należy wykonać następujące czynności: A. W oknie rysunku ListwaDolna.grf wprowadzić dwa obiekty tekstowe F1 i F8 na przycisku odpowiednio Rektor i Alarmy. B. Uruchomić program Key Macro Editor i przy jego pomocy napisać program, który po kliknięciu przycisku F1 będzie otwierał rysunek Reaktor.grf, a po kliknięciu przycisku F8 rysunek Alarmy: 1. 136 Kliknąć ikonę programu Key Macro Editor na karcie Applications. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 2. W polu Key Macros Apply To wprowadzić wartość User przez kliknięcie przycisku Global Key Macros z ikoną kuli ziemskiej. 3. Kliknąć przycisk w pierwszym wierszu i pierwszej kolumnie arkusza z napisem <NONE> i kliknąć klawisz F1 na wyświetlonej klawiaturze. Rozdział 6: Skróty klawiszowe 137 4. Zamknąć okno Keyboard przez kliknięcie przycisku OK. 5. Kliknąć przycisk VB Editor w pierwszym wierszu arkusza. Wtedy zostanie otwarte okno Edytora VBA. 6. Uzupełnić wygenerowaną procedurę o linię: ReplacePicture "Reaktor.grf", user.active_pic.CurrentValue,,2 7. Zamknąć okno Edytora VBA. Wtedy zostanie ponownie otwarte okno programu Key Macro Editor. 8. Kliknąć dwa razy komórkę z napisem <NONE> w drugim wierszu w kolumnie Key Combination i wprowadzić skrót klawiszowy F8 przez kliknięcie klawisza F8 na wyświetlonej klawiaturze i przycisku OK. 9. Kliknąć przycisk VB Editor. Wtedy zostanie otwarte okno Edytora VBA. 10. Uzupełnić wygenerowaną procedurę o linię: ReplacePicture "AlarmyBiezace.grf", user.active_pic.CurrentValue,,2 11. Zamknąć okno Edytora VBA. Wtedy zostanie ponownie otwarte okno programu Key Macro Editor. W oknie tym kliknąć przycisk OK. C. Przetestować działanie skrótów klawiszowych F1 i F8: 138 1. Uruchomić system iFIX w trybie wykonywania i nacisnąć klawisz funkcyjny F1. Powinien otworzyć się rysunek Reaktor.grf. 2. Nacisnąć klawisz funkcyjny F8. Powinien otworzyć się rysunek AlarmyBiezace.grf. 3. Ponownie kliknąć F1 i F8. Kolejno powinny otworzyć się okna omawianych rysunków. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 7 TECHNOLOGIA GRUP BLOKÓW Technologia ta jest często stosowana w przypadku, gdy proces przemysłowy składa się z wielu takich samych urządzeń, instalacji lub linii produkcyjnych. Przykładowo w rafinerii ropy naftowej zwykle znajduje się wiele takich samych zbiorników, które są tak samo oprzyrządowane. W takim przypadku nie wykonuje się dla każdego zbiornika osobnego rysunku, lecz przygotowuje się tylko jeden rysunek, zwany wzorcem, z zestawem symboli, któremu kolejno przypisuje się zestawy wartości bloków dotyczące poszczególnych zbiorników. W ten sposób do wyświetlania informacji i sterowania często dziesiątkami zbiorników korzysta się tylko z jednego rysunku. Dzięki temu oszczędza się ilość miejsca zajętego na twardym dysku, aplikacja jest łatwiejsza w zarządzaniu, a rysunek umieszczony w pamięci podręcznej komputera otwiera się znacznie szybciej. Technologia ta jest także bardzo często stosowana przy strojeniu regulatorów i przy tworzeniu wykresów bieżących. Jeden rysunek płyty czołowej regulatora jest wykorzystywany do modyfikowania parametrów wielu regulatorów. Jeden rysunek wykresu umożliwia przedstawienie przebiegów czasowych parametrów kolejno dla wielu urządzeń tego samego typu. Korzystając z tej technologii można także uwzględniać niewielkie różnice pomiędzy poszczególnymi obiektami. W tym celu często wykorzystuje się właściwość widzialności obiektów graficznych na rysunku. W przypadku niewielkiej liczby tych samych urządzeń technologia ta korzysta tylko z jednego rysunku, który można nazwać WZORZEC. Przyciski służące do wyświetlania danych dla kolejnych urządzeń są umieszczone na tym rysunku. W przeciwnym przypadku, gdy liczba przycisków jest znaczna i przeszkadzają one na rysunku WZORZEC, korzysta się z drugiego rysunku PRZEGLAD. Wybranie odpowiedniego przycisku umieszczonego na rysunku PRZEGLAD umożliwia wyświetlenie danych konkretnego urządzenia na rysunku WZORZEC. Ideę tę ilustrują pierwsze dwa rysunki w ćwiczeniu 7.1.1. Aby skorzystać z omawianej technologii, należy wykonać następujące czynności: Przygotować procesową bazę danych dla wszystkich urządzeń. Utworzyć rysunek WZORZEC, na którym połączenia do bloków w procesowej bazie danych zastąpione są przez symbole, tzn. nazwy rozpoczynające się od znaku @ i kończące się tym znakiem. Sporządzić w edytorze Tag Group Editor dla każdego urządzenia plik o rozszerzeniu .tgd, który zawiera informację, jaki blok procesowej bazy danych należy podpiąć pod określony symbol zastosowany na rysunku WZORZEC. Umieścić na rysunku WZORZEC przyciski lub w przypadku bardzo dużej liczby urządzeń utworzyć plik PRZEGLAD z przyciskami. Przyciski te w programie WorkSpace umożliwiają otwieranie rysunku WZORZEC z parametrem, którym jest plik .tgd określający, jaki zestaw bloków procesowej bazy danych należy zastosować w czasie zastępowania symboli na rysunku WZORZEC. Uwaga: Symbole grup bloków można stosować także w skryptach rysunku WZORZEC. Są one zastępowane w chwili otwierania tego rysunku przez bloki procesowej bazy danych określone w pliku o rozszerzeniu .tgd. Rozdział 7: Technologia Grup Bloków 139 7.1 Ćwiczenia 7.1.1 Piece Cel: Zapoznanie się z technologią Tag Group i jej zastosowaniem w aplikacjach przemysłowych. Poznanie edytora Tag Group Editor. Zadanie: Przy pomocy jednego wyświetlacza cyfrowego wyświetlić kolejno wartość zadaną temperatury dla dwóch pieców: Pieca 1 i Pieca 2. Wyświetlacz ten umieścić na rysunku Wzorzec.grf. Na rysunku PiecePrzeglad.grf umieścić dwa przyciski z etykietami Piec 1 oraz Piec 2. Kliknięcie przycisku Piec 1 powinno otworzyć rysunek Wzorzec.grf z wartością zadaną temperatury dla pieca 1, a kliknięcie przycisku Piec 2 powinno otworzyć ten sam rysunek z wartością zadaną temperatury dla pieca 2. W listwie dolnej umieścić przycisk z etykietą Piece do otwierania rysunku PiecePrzeglad.grf. Aby zrealizować powyższe zadanie, należy wykonać następujące czynności: A. W procesowej bazie danych utworzyć nowe bloki typu AI (Analog Input): AI1 o adresie SIM 1 oraz AI2 o adresie SIM 2 z możliwością zmiany wartości tych bloków – należy pamiętać o zaznaczeniu opcji Enable Output na karcie Advanced w oknach konfiguracyjnych tworzonych bloków. B. Przygotować plik rysunku Wzorzec.grf: 140 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 1. Zapisać plik AlarmyBiezace.grf jako plik Wzorzec.grf. 2. Usunąć wszystkie obiekty z pliku Wzorzec.grf przez wybranie na karcie Home w grupie Editing polecenia Delete. 3. Przy pomocy narzędzia Text z paska narzędzi Toolbox wprowadzić tytuł: Ekran TG. 4. Przy pomocy obiektu Datalink Stamper z paska narzędzi Toolbox na ekranie Wzorzec.grf utworzyć wyświetlacz cyfrowy, który należy podpiąć do symbolu @ai@ wpisując go w polu Source okna dialogowego Datalink. W obszarze Formatting w polu Type należy wybrać typ Numeric. 5. Po wybraniu lewym przyciskiem myszy wyświetlacza cyfrowego należy użyć narzędzia Data Entry Expert w celu umożliwienia wprowadzania wartości do procesowej bazy danych przy pomocy suwaka. 6. Zapisać rysunek Wzorzec.grf na dysku twardym przy pomocy polecenia Save w menu przycisku WorkSpace Button. Rozdział 7: Technologia Grup Bloków 141 C. Sporządzić dwa pliki Piec1.tgd i Piec2.tgd, które będą definiować symbole @ai@ w chwili otwierania okna Wzorzec.grf: 142 1. Uruchomić edytor Tag Group Editor przy pomocy ikony na karcie Applications, gdy aktywnym rysunkiem jest rysunek Wzorzec.grf. 2. Przy pomocy opcji Get Symbols From Picture odczytać symbole zastosowane na rysunku Wzorzec.grf. W przypadku niniejszego ćwiczenia jest to jeden symbol ai. 3. W kolumnie Substitution w wierszu, gdzie został wpisany symbol ai należy wpisać nazwę bloku AI1 i kliknąć przycisk Get Full Name, znajdujący się obok tego pola po prawej stronie. W ten sposób nazwa bloku zostanie uzupełniona o nazwę serwera OPC, nazwę węzła i nazwę pola. 4. Utworzony plik należy zapisać jako Piec1.tgd np. przez wybranie opcji Save As... w menu File. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 5. W sposób analogiczny należy utworzyć plik Piec2.tgd. Zamiast nazwy AI1 należy podać nazwę AI2. D. Utworzyć plik PiecePrzeglad.grf: 1. Zapisać plik AlarmyBiezace.grf jako plik PiecePrzeglad.grf. 2. Usunąć wszystkie obiekty z pliku PiecePrzeglad.grf przez wybranie na karcie Home w grupie Editing polecenia Select All oraz Delete. 3. Przy pomocy narzędzia Text z paska narzędzi Toolbox wprowadzić tytuł: Piece i sformatować go używając rozmiaru czcionki: 52. Kolor tekstu powinien być czerwony. W tym celu należy kliknąć prawym przyciskiem myszy na formatowany tekst i użyć opcji Font... oraz Color. 4. Na rysunku umieścić dwa przyciski, którym należy przypisać etykiety Piec 1 oraz Piec 2 przez ich dwukrotne kliknięcie. 5. Przy pomocy eksperta Replace Picture Expert na pasku narzędzi Toolbox przypisać przyciskowi Piec 1 skrypt, wprowadzając w oknie dialogowym tego przycisku w polu Picture to Replace: user.active_pic.CurrentValue, w polu New Picture: Wzorzec.grf, a w polu Tag Group File: Piec1.tgd. Po wyświetleniu okna ostrzegawczego należy zaakceptować brak takiego rysunku i potem w Edytorze VBA zmodyfikować utworzony skrypt na: ReplaceTGDPicture ”Wzorzec.grf”, ”Piec1.tgd” 6. Przy pomocy eksperta Replace Picture Expert na pasku narzędzi Toolbox przypisać przyciskowi Piec 2 skrypt, wprowadzając w oknie dialogowym tego przycisku w polu Picture to Replace: user.active_pic.CurrentValue, w polu New Picture: Wzorzec.grf, a w polu Tag Group File: Piec2.tgd. Po wyświetleniu okna ostrzegawczego należy zaakceptować brak takiego rysunku i potem w Edytorze VBA zmodyfikować utworzony skrypt na: Rozdział 7: Technologia Grup Bloków 143 ReplaceTGDPicture ”Wzorzec.grf”, ”Piec2.tgd” 7. W listwie dolnej umieścić przycisk z etykietą Piece i przy pomocy eksperta Replace Picture Expert przypisać przyciskowi Piece skrypt, wprowadzając w oknie dialogowym tego przycisku w polu Picture to Replace: user.active_pic.CurrentValue, w polu New Picture: PiecePrzeglad. Zaakceptować brak rysunku w wyświetlonym oknie ostrzegawczym. 8. Zmodyfikować skrypt przycisku z etykietą Piece w listwie dolnej na: ReplacePicture "PiecePrzeglad.grf", user.active_pic.CurrentValue,,2 E. Przetestować działanie aplikacji. 1. Uruchomić program WorkSpace i otworzyć rysunek PiecePrzeglad.grf przez kliknięcie przycisku z etykietą Piece w listwie dolnej. 2. Kliknąć przycisk z etykietą Piec 1. 3. Po otwarciu rysunku Wzorzec.grf przy pomocy pola danych wprowadzić wartość zadaną dla pieca 1, przykładowo: 10. 4. W listwie dolnej kliknąć przycisk z etykietą Piece. 5. Na wyświetlonym rysunku PiecePrzeglad.grf kliknąć przycisk Piec 2. 6. Po otwarciu rysunku Wzorzec.grf przy pomocy pola danych wprowadzić wartość zadaną dla pieca 2, przykładowo: 20. 7. W listwie dolnej kliknąć przycisk z etykietą Piece. 8. Ponownie wybrać przycisk Piec 1 i sprawdzić, czy pole danych na rysunku Wzorzec.grf zawiera wartość 10. 9. W listwie dolnej kliknąć przycisk z etykietą Piece. 10. Ponownie wybrać przycisk Piec 2 i sprawdzić, czy pole danych na rysunku Wzorzec.grf zawiera wartość 20. 144 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 8 OBSŁUGA ZDARZEŃ PRZY POMOCY HARMONOGRAMOWANIA 8.1 Ćwiczenia 8.1.1 Mieszadło reaktora Cel: Zapoznanie się z działaniem i konfigurowaniem aplikacji Scheduler. Zadanie: Mieszadło w reaktorze powinno włączać się automatycznie po osiągnięciu 75% maksymalnego poziomu w zbiorniku oraz wyłączać przy obniżeniu poziomu poniżej 25% maksymalnego poziomu w zbiorniku. Zawór V1 powinien włączać się i wyłączać co 10 sekund. Uwaga: Niniejsze ćwiczenie jest kontynuacją ćwiczeń Animacja rurociągu pary oraz Zarządzanie rysunkami. Ćwiczenie to można jednak wykonać niezależnie, ale w takim przypadku rysunek instalacji nie będzie kompletny. Rozdział 8: Obsługa zdarzeń przy pomocy harmonogramowania 145 Aby zrealizować to zadanie, należy wykonać następujące czynności: A. Uzupełnić rysunek Reaktor.grf w sposób opisany poniżej o następujące obiekty: rurociąg dopływu surowca z zaworem V1, mieszadło, wyświetlacz aktualnego czasu, słupkowy wskaźnik poziomu w reaktorze i wyświetlacz aktualnego poziomu płynu w reaktorze: 1. Utworzyć zawór V1: Skopiować zgrupowany zawór V5. Obrócić skopiowany zawór V5 o 90 stopni niezgodnie ze wskazówkami zegara. Zastosować do obróconego obiektu narzędzie umieszczone na karcie Format w grupie Arrange o nazwie Flip Horizontal. Zmodyfikować właściwość Caption trzech obiektów tekstowych odpowiednio na Q1, V1 i PA. Zmodyfikować animację lampki zaworu: o Dwukrotnie kliknąć lampkę zaworu i w wyświetlonym oknie Basic Animation Dialog w obszarze Color kliknąć przycisk obok pola wyboru Foreground. o W wyświetlonym oknie Foreground Color Expert w polu Data Source wprowadzić nazwę bloku V1 i kliknąć przycisk OK. Uwaga: Jeśli w procesowej bazie danych nie został wcześniej utworzony blok V1 (patrz ćwiczenie Generowanie bloków w procesowej bazie danych), to należy go utworzyć przy pomocy dodatkowo wyświetlanych okien jako blok Digital Register V1 o adresie SIM 10:0 i opisie: Sterowanie dopływem produktu PA. o W oknie Basic Animation Dialog wyczyścić w obszarze Command pole wyboru Click. o Zmienić zwrot strzałki obok napisu PA przy pomocy narzędzia Flip Horizontal. 2. Do rysunku zaworu dodać rurociąg dopływu produktu PA: 146 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA Na schemacie instalacji reaktora chemicznego narysować linię poziomą i pionową rurociągu dopływu produktu PA tak jak pokazano na powyższym rysunku. 3. Narysować i animować schemat mieszadła: Utworzyć górną część mieszadła (bez wirnika mieszadła – patrz rysunek poniżej): o skopiować obiekty zaworu V1 i dodać potrzebne obiekty graficzne. o Dwukrotnie kliknąć lampkę mieszadła M skopiowaną z zaworu V1, w oknie Basic Animation Dialog kliknąć w obszarze Color przycisk obok pola wyboru Foreground, w oknie Foreground Color Expert w polu Data Source zamiast bloku V1 wpisać nazwę M_DR i kliknąć przycisk OK. o Przy pomocy kolejnych wyświetlanych okien w procesowej bazie danych założyć blok Digital Register o nazwie M_DR, o adresie SIM 10:5 i opisie: Sterowanie mieszadłem, na karcie Advanced zaznaczyć pole wyboru Enable Output. Wykonać wirnik mieszadła: o Narysować dwa obiekty: czarny prostokąt i grupę złożoną z kilkunastu lub kilku szarych prostokątów: o Dwukrotnie kliknąć pierwszy obiekt – prostokąt, w oknie Basic Animation Dialog kliknąć przycisk w obszarze Color obok pola wyboru Foreground, w wyświetlonym oknie w polu Data Source wprowadzić M_DR i zmodyfikować obszar Foreground Color Threshold tak jak pokazano na poniższym rysunku, stosując w tabeli kolor czarny i szary. Rozdział 8: Obsługa zdarzeń przy pomocy harmonogramowania 147 o Dwukrotnie kliknąć drugi obiekt – grupę prostokątów, w oknie Basic Animation Dialog kliknąć przycisk w obszarze Color obok pola wyboru Foreground, w wyświetlonym oknie w polu Data Source wprowadzić M_DR i zmodyfikować obszar Foreground Color Threshold tak jak pokazano na poniższym rysunku, stosując w tabeli kolor czarny i szary. o Przesunąć drugi obiekt – grupę prostokątów nad pierwszy obiekt wirnika mieszadła – czarny prostokąt i umieścić wirnik w odpowiednim miejscu na schemacie mieszadła. 4. Na rysunku umieścić Wyświetlacz aktualnego czasu przy pomocy narzędzia Time, które umieszczone jest w pasku narzędzi Toolbox. 148 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 5. Utworzyć słupkowy wskaźnik poziomu płynu w reaktorze: Narysować prostokąt i wybrać go. W pasku narzędzi Toolbox kliknąć narzędzie Fill Expert, w wyświetlonym oknie w polu Data Source wprowadzić nazwę bloku H1 i kliknąć przycisk OK. Przy pomocy kolejno wyświetlanych okien do procesowej bazy danych wprowadzić blok Analog Register H1 o adresie SIM 4, opisie Poziom aktualny w reaktorze oraz na karcie Advanced tego bloku zaznaczyć opcję Enable Output. 6. Nad słupkowym wskaźnikiem poziomu płynu w reaktorze utworzyć wyświetlacz poziomu płynu w reaktorze: W pasku narzędzi Toolbox kliknąć ikonę narzędzia Datalink Stamper. W oknie Datalink w polu Source wprowadzić nazwę bloku H1. Umieścić utworzone pole danych nad słupkowym wskaźnikiem poziomu. W pasku narzędzi Toolbox wybrać ikonę narzędzia Data Entry Expert. W wyświetlonym oknie zaznaczyć opcję Slider Entry, a potem pole wyboru Write Continuously. Rozdział 8: Obsługa zdarzeń przy pomocy harmonogramowania 149 B. Utworzyć nowy plik z harmonogramami: 1. W menu przycisku WorkSpace Button wybrać opcję New, a następnie Schedule. 2. Zapisać plik z harmonogramami jako Mieszadlo.evs. C. Wygenerować skrypt, który będzie włączał mieszadło Q6, gdy poziom cieczy w zbiorniku będzie > niż 75% jego maksymalnego poziomu. W tym celu należy: 1. Dwukrotnie kliknąć pierwszy wiersz arkusza wyświetlanego po wybraniu karty Event Based Entries. 2. W wyświetlonym oknie dialogowym Add Event Entry należy wprowadzić wartości przedstawione poniżej. Uwaga: Wprowadzając nierówność w polu Data Source należy skorzystać z przycisków umieszczonych w prawej części okna edytora wyrażeń Expression Builder, który jest uruchamiany po kliknięciu przycisku z trzema kropkami obok pola Data Source. 150 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 3. W oknie Add Event Entry w obszarze Action Info należy kliknąć przycisk Run Wizard i w wyświetlonym oknie Multiple Command Script Wizard z listy rozwijanej wybrać polecenie Close Digital Tag. 4. W oknie Close Digital Point Expert w polu FIX Database Tag wprowadzić M_DR i kliknąć przycisk OK. Rozdział 8: Obsługa zdarzeń przy pomocy harmonogramowania 151 5. Zamknąć okno Add Event Entry przez kliknięcie przycisku OK. D. Wygenerować skrypt, który będzie wyłączał mieszadło M, gdy poziom cieczy w zbiorniku będzie mniejszy niż 25% jego maksymalnego poziomu. W tym celu należy: 1. Dwukrotnie kliknąć drugi wiersz arkusza wyświetlanego po wybraniu karty Event Based Entries. 2. W wyświetlonym oknie dialogowym Add Event Entry należy wprowadzić wartości przedstawione poniżej. Uwaga: Wprowadzając nierówność w polu Data Source należy skorzystać z przycisków umieszczonych w prawej części okna edytora wyrażeń Expression Builder, który jest uruchamiany po kliknięciu przycisku z trzema kropkami obok pola Data Source. 152 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 3. W oknie Add Event Entry w obszarze Action Info należy kliknąć przycisk Run Wizard i w wyświetlonym oknie Multiple Command Script Wizard z listy rozwijanej wybrać polecenie Open Digital Tag 4. W wyświetlonym oknie Open Digital Expert w polu FIX Database Tag wprowadzić M_DR. 5. Zamknąć okno Add Event Entry przez kliknięcie przycisku OK. E. Wygenerować skrypt, który będzie otwierał i zamykał zawór V1 co 10 sekund. W tym celu należy: 1. Dwukrotnie kliknąć pierwszy wiersz arkusza wyświetlanego po wybraniu karty Time Based Entries. 2. W wyświetlonym oknie dialogowym Add Timer Entry w polu Name należy wprowadzić Dopływ, w polu Description tekst Przełączanie zaworu V1 co 10 sekund, w polu Interval 0:00:10 i w obszarze Trigger Info kliknąć przycisk opcji Continuous. Rozdział 8: Obsługa zdarzeń przy pomocy harmonogramowania 153 154 3. W oknie Add Timer Entry w obszarze Action Info należy kliknąć przycisk Run Wizard i w wyświetlonym oknie Multiple Command Script Wizard z listy rozwijanej wybrać polecenie Toggle Digital Tag. 4. W wyświetlonym oknie Toggle Digital Point Expert w polu FIX Database Tag wprowadzić V1. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 5. Zamknąć okno Add Event Entry przez kliknięcie przycisku OK. F. Uruchomić program Scheduler w trybie Foreground: 1. Sprawdzić, czy w lewym górnym rogu arkusza programu Scheduler wyświetlana jest litera F. Uwaga 1: Jeśli zamiast litery F wyświetlana jest litera B, należy kliknąć ją prawym przyciskiem myszy i wybrać opcję Scheduler Properties w wyświetlonym menu prawego przycisku myszy. Następnie należy kliknąć opcję Run in Foreground i zamknąć aktywne okno dialogowe. Uwaga 2: Jeśli okno programu Scheduler nie będzie widoczne na ekranie, należy dwukrotnie kliknąć nazwę arkusza programu Scheduler w drzewie systemu. 2. Kliknąć dowolną komórkę arkusza programu Scheduler i nacisnąć skrót klawiszowy Ctrl+W. Rozdział 8: Obsługa zdarzeń przy pomocy harmonogramowania 155 G. Przetestować działanie wygenerowanych skryptów w programie WorkSpace w trybie Run: 1. Zmienić rozmiary okna programu Scheduler przy pomocy myszy, by jednocześnie wyświetlić okno tworzonej aplikacji i zaobserwować, czy miga lampka zaworu V1, tak jak pokazano na poniższym rysunku. 2. W oknie programu Scheduler kliknąć przycisk Fire Now i zaobserwować natychmiastową zmianę stanu zaworu V1. Uwaga: Skrypt przycisku V1 można uruchomić lub zatrzymać, korzystając z przycisku w kolumnie Start/Stop. 156 3. W programie WorkSpace w trybie wykonywania zmienić wartość poziomu w zbiorniku na 90. 4. Przejść do trybu konfiguracji przy pomocy skrótu klawiszowego Ctrl+W, wyświetlić okno programu Scheduler, karta Event Based Entries i nacisnąć ponownie skrót klawiszowy Ctrl+W. Zmienić rozmiary okna programu Scheduler, by zobaczyć, czy pracuje mieszadło w zbiorniku. 5. Kliknąć przycisk Fire Now w drugim wierszu arkusza programu Scheduler. Mieszadło powinno zatrzymać się. 6. Kliknąć przycisk Fire Now w pierwszym wierszu arkusza programu Scheduler. Mieszadło powinno rozpocząć pracę. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 7. W programie WorkSpace w trybie wykonywania zmienić wartość poziomu w zbiorniku na 10. Mieszadło powinno zatrzymać się. H. Skonfigurować działanie skryptów programu Scheduler do pracy w trybie Run in Background: 1. W górnym, lewym rogu arkusza programu Scheduler kliknąć prawym przyciskiem myszy literę F i w wyświetlonym menu wybrać polecenie Scheduler Properties. 2. W wyświetlonym oknie kliknąć opcję Run in Background i przycisk OK. 3. Jeśli plik harmonogramu po modyfikacjach nie został zapisany na dysku twardym zostanie wyświetlone poniżej przedstawione okno, w którym należy kliknąć przycisk Tak. 4. Zostanie wyświetlone okno FixSchedulerServer, w którym ponownie należy kliknąć przycisk Tak. Uwaga: Na karcie Backgroud StartUp w oknie User Preferences zostanie wpisany na listę automatycznie plik Mieszadlo.evs. Plik ten zostanie wykorzystany przez program FixBackgroundServer przy uruchomieniu systemu iFIX. Rozdział 8: Obsługa zdarzeń przy pomocy harmonogramowania 157 5. Ponownie zostanie wyświetlone okno FixSchedulerServer, w którym należy kliknąć przycisk Nie. 6. Uruchomić aplikację SCU i dodać do programów uruchamianych przy starcie pakietu iFIX program FIXBACKGROUNDSERVER.EXE: 7. 158 W menu Configure kliknąć polecenie Tasks. W oknie Tasks Configuration (patrz rysunek poniżej) wybrać omawiany program przy pomocy przycisku z trzema kropkami obok pola Filename. Program FIXBACKGROUNDSERVER.EXE umieścić na liście Configured Tasks przed programem WORKSPACE.EXE przy pomocy przycisku Add i przycisków ze strzałkami obok listy Configured Tasks. W obszarze Start Up Mode kliknąć przycisk opcji Background. Program FIXBACKGROUNSERVER.EXE zostanie poprzedzony znakiem %. Zapisać konfigurację systemu do pliku FIX.SCU przy pomocy menu File i polecenia Save As. Zamknąć program iFIX i uruchomić go ponownie, by przetestować działanie skryptów uruchamianych w sposób automatyczny przy pomocy programu Scheduler. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA I. Przetestować działanie skryptów programu Scheduler w trybie Run in Background: 1. Otworzyć rysunek Reaktor.grf. 2. Sprawdzić, czy zawór V1 włącza się i wyłącza co 10 sekund. 3. Kliknąć lewym przyciskiem myszy wyświetlacz cyfrowy nad wskaźnikiem słupkowym poziomu w zbiorniku i przy pomocy wyświetlonego suwaka zasymulować poziom w zbiorniku ok. 90%. Mieszadło powinno włączyć się. Czarne prostokąty powinny zmieniać się na szare, a szare prostokąty na czarne. 4. Kliknąć lewym przyciskiem myszy wyświetlacz cyfrowy nad wskaźnikiem słupkowym poziomu w zbiorniku i przy pomocy wyświetlonego suwaka zasymulować poziom w zbiorniku ok. 10%. Mieszadło powinno wyłączyć się. J. Wyłączyć działanie skryptów uruchamianych automatycznie: 1. 2. W oknie User Preferences w polu karty Background StartUp usunąć nazwę pliku Mieszadło.evs. Wyświetlić okno User Preferences przez kliknięcie polecenia Settings na karcie Home. Na karcie Background StartUp usunąć nazwę pliku Mieszadlo.evs przy pomocy przycisku z czerwonym znakiem X umieszczonym w prawym górnym rogu nad listą, po zaznaczeniu usuwanej nazwy. Ustawić opcję programu Scheduler – Run in Foreground: W drzewie systemu w folderze Schelules dwukrotnie kliknąć nazwę pliku Mieszadlo. W lewym górnym rogu wyświetlonego arkusza kliknąć prawym przyciskiem myszy przycisk z literą B i w wyświetlonym menu wybrać polecenie Scheduler Properties. Rozdział 8: Obsługa zdarzeń przy pomocy harmonogramowania 159 160 W wyświetlonym oknie kliknąć opcję Run in Foreground i przycisk OK. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 9 WIELOPOZIOMOWY SYSTEM OCHRONY Konfigurację systemu ochrony rozpoczyna się od utworzenia kont grup użytkowników (ang. Group Accounts), którym przypisuje się obszary ochrony (ang. Security Areas) oraz programy, które dana grupa może uruchamiać. Oprócz programów można także przydzielać funkcje realizowane przez poszczególne programy (ang. Application Features). Głównym celem przypisywania obszarów ochrony jest określenie grup użytkowników, którzy mogą zmieniać wartości bloków procesowej bazy danych, a w konsekwencji przykładowo uruchamiać lub wyłączać urządzenia produkcyjne. W czasie definiowania bloków w procesowej bazie danych, przypisuje się je do obszarów ochrony. Tylko osoby, którym będzie przydzielony ten sam obszar ochrony będą mogły modyfikować wartości poszczególnych bloków w procesowej bazie danych. Po skonfigurowaniu kont grup użytkowników konfiguruje się konta poszczególnych użytkowników (ang. User Accounts) przez przydzielenie ich do zdefiniowanych wcześniej grup użytkowników. Wtedy posiadają oni uprawnienia grupy użytkowników, do której zostali oni przypisani. Ponadto indywidualnym osobom można przydzielić dodatkowe uprawnienia. Taka hierarchiczna struktura przydzielania uprawnień jest wygodna dla administratora systemu. Zmiana w jednym miejscu uprawnień grupy powoduje zmianę uprawnień wielu użytkowników. Rozdział 9: Wielopoziomowy system ochrony 161 Proces konfiguracji systemu ochrony kończy się odblokowaniem systemu ochrony przez skorzystanie z przycisku z ikoną kluczyka w przyborniku narzędzi w oknie Security Configuration. Kłódka na ekranie monitora zamyka się. W przypadku działania systemu ochrony systemu iFIX użytkownicy mogą logować się przy pomocy polecenia Login, które dostępne jest przy pomocy przycisku Start systemu Windows w grupie programów Proficy HMI SCADA – iFIX 5.0. Użytkownik ADMIN posiada hasło admin i dysponuje wszystkimi uprawnieniami. Ma on możliwość konfigurowania systemu ochrony. Poniżej przedstawiono zadania, które należy wykonać, by w pełni zaimplementować system ochrony. 162 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 9.1 Ćwiczenia 9.1.1 Aplikacja ”Rysunki i zadania” Cel: Zapoznanie się z działaniem systemu ochrony systemu iFIX, a w szczególności z ochroną rysunków, zmian wartości w procesowej bazie danych i zabezpieczeniem przed uruchamianiem programów. Zadanie: Skonfigurować system ochrony i zmodyfikować aplikację w taki sposób, aby w systemie iFIX był automatycznie logowany użytkownik GUEST, który może otworzyć tylko rysunki: Reaktor.grf, HTA.grf i Security.grf. Użytkownik ADAM NOWAK powinien należeć do grupy mistrzów FOREMAN i w przeciwieństwie do użytkownika GUEST powinien posiadać następujące możliwości: otwieranie chronionego rysunku wyświetlanego przyciskiem Alarmy, uruchamianie chronionego programu HTA.EXE na rysunku HTA.grf i zmienianie chronionej wartości dwustanowej V5 na rysunku Reaktor.grf. Użytkownik GUEST powinien posiadać hasło guest. Użytkownik ANOWAK powinien posiadać hasło an. Na listwie górnej powinien być umieszczony przycisk umożliwiający logowanie użytkowników do systemu. Po przetestowaniu systemu ochrony należy go wyłączyć. Na następnej stronie przedstawiono rysunek, który należy zastosować do realizacji niniejszego zadania. Rozdział 9: Wielopoziomowy system ochrony 163 164 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA Aby zrealizować to zadanie, należy wykonać następujące czynności: A. Założyć konto grupy użytkowników FOREMEN, którym należy przypisać obszar ochrony G i MIXER1 oraz uprawnienia do uruchamiania programu WorkSpace w trybie wykonywania i programu HTA.EXE: 1. Uruchomić program SCU, przykładowo korzystając z ikony SCU na karcie Applications w grupie System&Security w programie WorkSpace. 2. W wyświetlonym oknie SCU – FIX w menu Configure wybrać polecenie Security. 3. W wyświetlonym oknie Security Configuration wybrać w menu Edit polecenie Security Areas, aby dodać do bazy danych obszar ochrony MIXER1. 4. W wyświetlonym oknie Security Area Naming wybrać pierwszy wolny wiersz po literze P i kliknąć przycisk Modify... . Rozdział 9: Wielopoziomowy system ochrony 165 166 5. W oknie Edit Security Area w polu Name wpisać nazwę dodawanego do bazy danych obszaru ochrony MIXER1 i kliknąć dwa razy przycisk OK w kolejno wyświetlanych oknach. 6. W wyświetlonym oknie Security Configuration w menu Edit wybrać polecenie Group Accounts i korzystając z przycisku Add... utworzyć konto grupy użytkowników FOREMEN. 7. W wyświetlonym oknie Group Profile wpisać nazwę grupy FOREMEN w polu Group Name i kliknąć przycisk Modify... znajdujący się pod listą Security Areas. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 8. W oknie Security Area Selection w liście dostępnych obszarów ochrony o nazwie Available zaznaczyć wiersz z literą G i kliknąć przycisk Add oraz zaznaczyć wiersz z obszarem ochrony MIXER1 i kliknąć przycisk Add, by umieścić obszar ochrony G i MIXER1 na liście Authorized. Zamknąć konfigurowane okno przez kliknięcie przycisku OK. 9. Podobnie kliknąć przycisk Modify umieszczony pod listą funkcji aplikacji Application Features, z listy dostępnych funkcji wybrać możliwość uruchamiania programu WorkSpace w trybie wykonywania – WorkSpace Runtime oraz programu do definiowania danych archiwalnych Historical Trend Assign. B. Założyć konto dla użytkownika ADAM NOWAK i przydzielić go do grupy użytkowników FOREMEN: 1. W głównym oknie programu Security Configuration w menu Edit wybrać polecenie User Accounts, kliknąć przycisk Add... i wyświetlone okno User Profile skonfigurować tak, jak pokazano na rysunku poniżej. W polu Password należy wprowadzić hasło dla tego użytkownika, an. Hasło na ekranie monitora wyświetlane jest w postaci kropek. Przypisanie użytkownika Adam Nowak do grupy FOREMEN należy zrealizować przez kliknięcie przycisku Modify..., który umieszczony jest pod listą Group Membership i wybranie odpowiedniej grupy. Rozdział 9: Wielopoziomowy system ochrony 167 Uwaga: Pole Login Timeout stosowane jest do określenia przedziału czasu, po upływie którego użytkownik jest automatycznie wylogowywany z systemu. Opcja ta zmusza operatorów do logowania się w systemie. W takim przypadku istnieje większe prawdopodobieństwo, że prawidłowo są wpisywane nazwiska operatorów w plikach śledzących logowanych użytkowników. Pliki te przechowywane są w katalogu ALM i posiadają rozszerzenie .log. Poniższy rysunek przedstawia przykładową zawartość takiego pliku. Po kliknięciu przycisku OK w oknie User Profile zostanie wyświetlone okno potwierdzania hasła Password Confirmation. W oknie tym należy wpisać ponownie hasło przypisywane użytkownikowi ADAM NOWAK (an). 168 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA C. Zmodyfikować konto użytkownika GUEST tak, aby mógł on wyświetlać rysunki należące do obszaru ochrony G, by było możliwe logowanie się innych użytkowników w programie iFIX WorkSpace oraz by ten użytkownik był logowany automatycznie po restarcie systemu iFIX: 1. W głównym oknie programu Configuration Security wybrać polecenie User Accounts w menu Edit i w wyświetlonym oknie User Accounts wybrać użytkownika GUEST i kliknąć przycisk Modify... . 2. W oknie User Profile należy kliknąć przycisk Modify... umieszczony pod listą Security Areas i przypisać obszar ochrony G do użytkownika GUEST. Do tego obszaru będzie także przypisany rysunek Reaktor.grf i HTC.grf. Użytkownik GUEST ma uruchamiać program WorkSpace w trybie wykonywania, więc na liście Application Features należy umieścić uprawnienie WorkSpace Runtime. W polu Password należy wprowadzić hasło dla tego użytkownika: guest. Hasło na ekranie monitora wyświetlane jest w postaci kresek. Kliknąć przycisk OK. Rozdział 9: Wielopoziomowy system ochrony 169 3. W głównym oknie programu Security Configuration wybrać polecenie Autologin... w menu Edit i w wyświetlonym oknie Automatic Login at Startup kliknąć przycisk Add.... 4. W wyświetlonym oknie Automatic Login Node wprowadzić w polu Node nazwę swojego węzła, np. FIX, a w polu Application User nazwę użytkownika aplikacji, który będzie automatycznie logowany w systemie: GUEST. Uwaga: Pole System User przewidziane jest do stosowania tylko w przypadku korzystania z programu Security Synchronizer. 5. Zamknąć dwa otwarte okna: Automatic Login Node oraz Automatic Login at Startup, korzystając z przycisków OK. D. Zmodyfikować aplikację do korzystania z systemu ochrony: 1. W programie iFIX WorkSpace otworzyć rysunek Reaktor.grf i w menu prawego przycisku myszy wybrać polecenie Property Window... . W wyświetlonym oknie Properties w polu Security Area wprowadzić literę G. Wtedy użytkownik GUEST będzie mógł wyświetlać ten rysunek. 170 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 2. Utworzyć plik rysunku HTA.grf przez zapisanie na dysku rysunku AlarmyBiezace.grf jako HTA.grf, zaznaczenie wszystkich obiektów i ich usunięcie. Dodatkowo na tym rysunku należy umieścić przycisk z napisem HTA i skryptem: Private Sub CommandButton1_Click() Dim RetVal RetVal = Shell("hta.EXE", 1) End Sub 3. Przypisać plik rysunku HTA.grf, który umożliwia definiowanie rejestrowanych danych, do obszaru ochrony G. Użytkownik GUEST nie będzie mógł jednak uruchomić aplikacji Historical Assignment (HTA.EXE), ponieważ nie ma on przydzielonych odpowiednich uprawnień. Rejestrowane dane będzie mógł definiować użytkownik ADAM NOWAK. 4. Utworzyć przycisk z napisem HTA, tym razem na listwie dolnej, do otwierania rysunku HTA w sposób analogiczny jak wykonano przyciski Reaktor i Alarmy, korzystając z instrukcji: ReplacePicture "HTA.grf", user.active_pic.CurrentValue,,2 5. W programie WorkSpace otworzyć rysunek AlarmyBiezace.grf i w menu prawego przycisku myszy wybrać polecenie Property Window... . W wyświetlonym oknie w polu Security Area wprowadzić MIXER1. Wtedy użytkownik ADAM NOWAK przypisany do grupy FOREMEN będzie mógł wyświetlić ten rysunek. Grupa FOREMEN przypisana jest bowiem do obszaru ochrony MIXER1. 6. Pozostałe rysunki wykonywanej aplikacji szkoleniowej za wyjątkiem dwóch rysunków: ListwaGorna.grf i ListwaDolna.grf przypisać do obszaru ochrony B. Dostęp do nich będzie posiadał Administrator. Jeśli rysunek nie jest przypisany do żadnego obszaru ochrony, to jest dostępny dla wszystkich użytkowników. Rozdział 9: Wielopoziomowy system ochrony 171 7. Na listwie górnej w prawym górnym rogu umieścić przycisk z napisem LOGIN, który umożliwi logowanie użytkowników do systemu. Opcjonalnie można wykonać przycisk z mapą bitową przedstawioną na poniższym rysunku. Dla przycisku wprowadzić następujący skrypt: Shell "C:\Program Files\GE Fanuc\Proficy iFIX\Login.exe -m", vbNormalFocus 8. Sprawdzić poprawność działania skryptu utworzonego przycisku przez przejście do trybu WorkSpace Runtime, korzystając ze skrótu klawiszowego Ctrl+W oraz kliknięcie utworzonego przycisku. Powinno wyświetlić się poniżej przedstawione okno. W przeciwnym przypadku należy poprawić wprowadzony skrypt. 9. Przejść do trybu WorkSpace Configure przy pomocy skrótu Ctrl+W i korzystając z przycisków Date i Time, które znajdują się w pasku narzędzi Toolbox programu iFIX WorkSpace, umieścić na rysunku ListwaGorna.grf obiekty aktualnej daty i czasu systemowego. 10. W procesowej bazie danych przypisać blok V5 do obszaru ochrony MIXER1 przez dwukrotne kliknięcie napisu NONE w liście Security Areas w oknie konfiguracyjnym bloku V5 i wpisanie nazwy MIXER1. Wtedy użytkownik GUEST nie będzie mógł zmienić wartości tego bloku w przeciwieństwie do użytkownika ANOWAK. 172 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA E. Włączyć system ochrony: 1. Uruchomić program SCU i w oknie Security Configuration wybrać polecenie Configuration... w menu Edit. W wyświetlonym oknie kliknąć przycisk opcji Enabled, który załączy system ochrony. W polach Security Path i Backup Path należy podać nazwy folderów, gdzie będą umieszczone pliki konfiguracyjne dotyczące systemu ochrony: pliki podstawowe i pliki zapasowe (C:\Program Files\GE Fanuc\Proficy iFIX\Local). 2. W oknie System Configuration na ekranie wyświetlanego monitora pojawi się ikona zamkniętej kłódki oznaczająca, że system ochrony został włączony. Wybrać polecenie Exit z menu File. Rozdział 9: Wielopoziomowy system ochrony 173 174 3. Zostanie wyświetlone okno Security, w którym należy kliknąć przycisk YES, aby zapisać konfigurację systemu ochrony w pliku dyskowym. 4. Spróbować zamknąć system iFIX przez kliknięcie przycisku Proficy iFIX Startup w pasku zadań systemu Windows i wybranie polecenia Shutdown iFIX w menu Options. 5. Zamknięcie systemu iFIX będzie niemożliwe. Zostanie wyświetlone okno pokazane poniżej informujące o braku uprawnień do zamknięcia systemu iFIX. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 6. Aby zamknąć system iFIX, należy zalogować się jako Administrator. W tym celu należy uruchomić program do logowania przez wybranie w menu przycisku Start systemu Windows poleceń Wszystkie programy, Proficy HMI SCADA iFIX 5.0 oraz Login. 7. W polu Name należy wprowadzić admin, a polu Password hasło: admin. W czasie wprowadzania hasła będą wyświetlane gwiazdki. Wielkość czcionki nie jest uwzględniana. 8. Kliknąć przycisk Login. Zostanie wtedy o pomyślnym zalogowaniu Administratora. 9. Zamknąć system iFIX przez wybranie przycisku Proficy iFIX Startup w pasku zadań systemu Windows i wybranie polecenia Shutdown iFIX w menu Options. wyświetlone okno informujące F. Przetestować działanie aplikacji: 1. Uruchomić system iFIX. 2. Po wyświetleniu aplikacji szkoleniowej w listwie dolnej kliknąć przycisk Alarmy. Zostanie wyświetlone okno informujące o braku odpowiednich uprawnień do otwarcia tego okna. Uwaga: W systemie aktualnie zalogowany jest użytkownik GUEST. Użytkownik ten może jedynie wyświetlać rysunki Reaktor.grf i HTA.grf, z którego uruchamia się program do definiowania rejestrowanych danych. 3. Kliknąć przycisk HTA i spróbować uruchomić program do definiowania danych archiwalnych. Program ten nie zostanie uruchomiony. Rozdział 9: Wielopoziomowy system ochrony 175 4. Kliknąć zawór V5 na rysunku Reaktor.grf. Użytkownik GUEST nie może zmienić wartości tego bloku w procesowej bazie danych, gdyż nie jest przypisany do obszaru ochrony MIXER1. 5. Zalogować się w systemie jako użytkownik ANOWAK. W tym celu kliknąć przycisk umożliwiający logowanie użytkowników w systemie. Przycisk ten umieszczony jest w listwie górnej. W wyświetlonym oknie Login najpierw kliknąć przycisk Logout. 6. Po kliknięciu przycisku OK w oknie Login zostanie wyświetlone kolejne okno Login, w którym w polu Name wpisać nazwę użytkownika ANOWAK, a w polu Password wprowadzić hasło: an. 7. Kliknąć przycisk Login. Wyświetlone zostanie okno pokazane poniżej. Próba otwarcia pliku AlarmyBiezace.grf przez kliknięcie przycisku Alarmy w listwie dolnej zakończy się tym razem sukcesem. Użytkownikowi Adam Nowak przypisano obszar ochrony MIXER1 i rysunek AlarmyBiezace.grf też należy do obszaru ochrony MIXER1. 176 8. Kliknąć przycisk HTA i spróbować uruchomić program do definiowania danych archiwalnych Historical Assignment HTA.EXE. Program ten zostanie uruchomiony. Użytkownik Adam Nowak posiada uprawnienie do definiowania rejestrowania danych, a użytkownik GUEST nie posiada tego uprawnienia. 9. Kliknąć zawór V5 na rysunku Reaktor.grf. Użytkownik Adam Nowak może zmienić wartość tego bloku w procesowej bazie danych, gdyż jest przypisany do obszaru ochrony MIXER1. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA G. Zablokować system ochrony: 1. Uruchomić program Login korzystając z wcześniej utworzonego przycisku do logowania i zalogować się do systemu jako użytkownik ADMIN, który posiada domyślne hasło: admin. 2. Przejść do programu SCU, uruchomić program do konfiguracji systemu ochrony i zablokować system ochrony. Uwaga: Tylko użytkownik ADMIN posiada uprawnienia do modyfikowania kont użytkowników. Domyślne hasło użytkownika ADMIN należy zmienić w chwili przekazania aplikacji do codziennej eksploatacji. H. W listwie dolnej ListwaDolna.grf umieścić przycisk z napisem System ochrony. W skrypcie tego przycisku należy umieścić instrukcję: ReplacePicture "security.grf", User.active_pic.CurrentValue, , 2 I. Utworzyć rysunek SECURITY.grf dotyczący systemu ochrony: 1. Otworzyć rysunek AlarmyBiezace.grf, usunąć z niego wszystkie obiekty i zapisać go jako SECURITY.grf. 2. Umieścić na rysunku SECURITY.grf obiekty tekstowe przedstawione na pierwszym rysunku w niniejszym ćwiczeniu. 3. Umieścić na rysunku SECURITY.grf przyciski przedstawione na pierwszym rysunku w niniejszym rozdziale przez skopiowanie ich z listwy dolnej. Rozdział 9: Wielopoziomowy system ochrony 177 10 KOMUNIKACJA ZE STEROWNIKAMI PLC Sterowniki PLC odbierają sygnały pomiarowe z czujników i sterują elementami wykonawczymi. System iFIX dysponuje oprogramowaniem dla sterowników PLC umożliwiającym odczytywanie i zapis danych do odpowiednich rejestrów sterowników PLC. Oprogramowanie to znane jest pod nazwą drajwery We/Wy. Firma GE Intelligent Platforms dostarcza wiele drajwerów We/Wy o wysokiej wydajności, które obsługują zarówno najbardziej popularne, jak i specjalizowane urządzenia We/Wy. Drajwery We/Wy zapewniają: automatyczne wykrywanie błędów i nawiązywanie komunikacji, raportowanie, możliwość śledzenia przepływających danych z dokładnością do poszczególnych bitów w oknie o nazwie DataScope, a także obsługę redundancji komunikacji. Każdy drajwer We/Wy służy do obsługi specyficznego sprzętu i towarzyszy mu dedykowana instrukcja obsługi. W celu uzyskania szczegółowych informacji dotyczących funkcji i możliwości konkretnego drajwera należy zapoznać się z odpowiednim podręcznikiem dostarczanym z konkretnym drajwerem. W czasie konfiguracji drajwerów korzysta się jednak z wielu pojęć, które są wspólne dla wszystkich drajwerów. Warto więc zapoznać się szczegółowo z jednym z drajwerów. Później poznawanie innych drajwerów okaże się znacznie prostsze i łatwiejsze. 10.1 Konfiguracja węzła SCADA Komputer, który połączony jest z jednym lub wieloma sterownikami PLC nazywany jest węzłem SCADA. Aby skonfigurować węzeł SCADA należy wykonać następujące czynności: 1. Uruchomić program do konfiguracji systemu iFIX System Configuration (SCU.EXE). Zadanie to można wykonać, stosując jeden z poniżej podanych sposobów: Wybrać polecenie Wszystkie programy z menu przycisku Start, a następnie grupę programów Proficy HMI SCADA – iFIX 5.0 i program System Configuration. W programie WorkSpace w drzewie systemu w folderze System Configuration wybrać polecenie System Configuration Utility. W programie WorkSpace na wstążce Application kliknąć ikonę programu SCU w grupie programów System & Security. Kliknąć ikonę programu System Configuration na pulpicie systemu Windows, o ile taka została przygotowana przez użytkownika. Uwaga: Program System Configuration można uruchomić przed uruchomieniem systemu iFIX. 2. Z menu Configure wybrać polecenie SCADA... lub też kliknąć czwarty przycisk od lewej w przyborniku narzędzi programu System Configuration. Pojawi się wtedy okno o nazwie SCADA Configuration. Wygląd tego okna może różnić się od pokazanego poniżej w zależności od sposobu instalowania systemu iFIX. Rozdział 10: Komunikacja ze sterownikami PLC 179 Użytkownik może zainstalować drajwery do różnych sterowników i komputer może być skonfigurowany jako węzeł iClient, który stosowany jest przez operatora do obserwacji oraz sterowania procesem poprzez sieć. 180 3. Jeśli w obszarze SCADA Support nie jest wybrana opcja Enable, należy kliknąć ten przycisk opcji. 4. Wpisać nazwę stosowanej procesowej bazy danych w polu Database Name. 5. W przypadku, gdy został zainstalowany drajwer do określonego typu sterowników PLC i nie jest on wyświetlany w liście skonfigurowanych drajwerów Configured I/O Drivers, należy kliknąć przycisk z trzema kropkami obok pola I/O Driver Name. Wtedy zostanie wyświetlona lista dostępnych drajwerów podobna do listy przedstawionej poniżej. 6. Wybrać drajwer, który należy zastosować, a następnie kliknąć przycisk OK. Wybrany drajwer pojawi się w polu I/O Driver Name w oknie SCADA Configuration. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 7. Kliknąć przycisk Add, aby dodać wybrany drajwer do listy aktywnych drajwerów Configured /O Drivers. 8. Wybrać polecenie Tasks... w menu Configure i sprawdzić, czy na liście zadań umieszczone jest zadanie: C:\Program Files\GE Fanuc\Proficy iFIX\IOCNTRL.EXE /a Jeśli go nie ma, należy dodać go przez kliknięcie przycisku z trzema kropkami obok pola Filename, odszukanie programu IOCNTRL.EXE w folderze C:\Program Files\GE Fanuc\Proficy iFIX, wpisanie w polu Command Line parametru /a uruchamiającego wszystkie drajwery i kliknięcie przycisku Add. Zadanie IOCNTRL powinno być wykonywane jako zadanie typu Background, jeśli operatorzy logują się kolejno do systemu Windows. Wtedy drajwer będzie realizował swoje zadania po wylogowaniu się operatora z systemu operacyjnego, jeśli oczywiście nie zostanie wyłączone zasilanie komputera. Aby zmienić typ zadania, należy kliknąć odpowiedni przycisk opcji w obszarze Start Up Mode i kliknąć przycisk Change. Zadania typu Minimized w liście skonfigurowanych zadań poprzedzone są znakiem *, a zadania typu Background znakiem %. Kolejność zadań w liście skonfigurowanych zadań jest w większości przypadków dowolna. Program WorkSpace można jednak uruchamiać jako ostatnie zadanie, wtedy otwarcie okna programu WorkSpace sygnalizuje użytkownikowi, że wszystkie zadania są już uruchomione i można ewentualnie przystąpić do usuwania nieprawidłowości w systemie. 9. Kliknąć przycisk OK w oknie Task Configuration i zapisać do pliku konfigurację systemu iFIX, korzystając z polecenia Save as... w menu File. Po zakończeniu działania programu System Configuration i ponownym uruchomieniu systemu iFIX zostaną także uruchomione wybrane drajwery. Rozdział 10: Komunikacja ze sterownikami PLC 181 10.2 Konfiguracja drajwera 6.x Sposób konfiguracji drajwera w wersji 6.x zostanie przedstawiony na przykładzie drajwera G90 - GE SERIES 90 COM. Przed przystąpieniem do konfiguracji tego drajwera należy sprawdzić, czy ikona tego drajwera wyświetlana jest w panelu zainstalowanych drajwerów w programie System Configuration oraz czy w liście zadań wykonywanych przy starcie systemu iFIX umieszczone jest zadanie: C:\PROGRAM FILES\GE FANUC\PROFICY IFIX\IOCNTRL.EXE /a. Jeśli którykolwiek z powyższych dwóch warunków nie jest spełniony, należy zapoznać się z pierwszym punktem niniejszego rozdziału. Aby skonfigurować drajwer G90, należy wykonać następujące czynności: A. Uruchomić program System Configuration i dwukrotnie kliknąć ikonę drajwera G90 w panelu zainstalowanych drajwerów w systemie iFIX. Wtedy zostanie wyświetlone okno do konfiguracji drajwera G90. Uwaga: W przypadku, gdy został zainstalowany drajwer G90 i nie jest on wyświetlany w powyżej przedstawionym panelu, należy w programie System Configuration w menu Configure wybrać polecenie SCADA i kliknąć przycisk z trzema kropkami obok pola I/O Driver Name. Wtedy zostanie wyświetlona lista zainstalowanych drajwerów podobna do listy przedstawionej poniżej. Trzeba wybrać drajwer, który należy zastosować, a następnie kliknąć przycisk OK. Wybrany drajwer pojawi się w polu I/O Driver Name w oknie SCADA Configuration. W oknie SCADA Configuration należy kliknąć przycisk Add i przycisk OK, aby dodać wybrany drajwer do powyżej przedstawionego panelu. 182 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA B. Skonfigurować kanał komunikacyjny: 1. W oknie konfiguracji drajwera kliknąć przycisk Channel 1, a następnie przycisk Setup. Pojawi się następujące okno. 2. Ustawić parametry transmisji takie, jak pokazano na powyższym rysunku i kliknąć przycisk OK. Uwaga: Jeśli użytkownik korzysta z innego portu szeregowego w komputerze PC, to powinien odpowiednio skorygować wartość w polu Port. Przedstawione parametry Rozdział 10: Komunikacja ze sterownikami PLC 183 transmisji szeregowej są parametrami domyślnymi dla sterowników GE Intelligent Platforms. Jeśli jednak w sterowniku PLC, z którym należy nawiązać komunikację korzysta się z innych parametrów, należy odpowiednio skorygować ustawienia w polach Baud Rate, Data Bits, Stop Bits, Parity i Flow Control. C. Skonfigurować urządzenie: 1. W oknie konfiguracji drajwera wprowadzić identyfikator sterownika, przykładowo 16 w polu Station w obszarze Primary. Identyfikator ten jest widoczny w trzeciej od dołu linii statusu w programie Logic Master 90. Program ten jest stosowany do programowania sterowników GE Intelligent Platforms serii 90-30. 2. Do bardziej szczegółowego zdefiniowania urządzenia opcjonalnie zastosować następujące pola: Station w obszarze Backup – określa identyfikator opcjonalnego sterownika, Hasło w obszarze Backup – określa hasło dostępu do sterownika opcjonalnego, Device Name – określa nazwę urządzenia. Domyślnie stosowana jest następująca konwencja nazewnictwa: D jest pierwszą literą nazwy Device, druga cyfra w nazwie urządzenia oznacza numer urządzenia w kanale określonym przez pierwszą cyfrę. Przykładowo, nazwa D21 oznacza urządzenie pierwsze w drugim kanale. Poprzez kanał należy rozumieć fizyczne połączenie komputera ze sterownikiem. Kanał może być realizowany z zastosowaniem portu szeregowego COM1, COM2, karty sieciowej Ethernet lub karty do określonej sieci obiektowej sterowników np. SA85 do sieci Modbus Plus. Domyślną nazwę można zmienić. Po wprowadzeniu nazwy w polu Device Name, należy kliknąć nazwę w liście Device. Wtedy wprowadzona nazwa w polu Device Name zostanie wpisana na listę urządzeń Device. Description – umożliwia wprowadzenie komentarza dla urządzenia, PLC Type – definiuje CPU sterownika. Informacja z tego pola stosowana jest do kontroli wprowadzanych zakresów rejestrów w sterowniku. D. Skonfigurować transmitowane bloki danych: 1. 184 W oknie konfiguracji drajwera w obszarze I/O Blocks kliknąć dowolne pole w pierwszym pustym wierszu wyświetlanego arkusza. Pojawi się następujące okno. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 2. Wpisać przykładowo R1 w polu Start Address i R10 w polu End Address (pole Length zostanie automatycznie uaktualnione) lub 10 w polu długości bloku danych Length (pole End Address zostanie automatycznie uaktualnione). 3. Wybrać z listy rozwijanej typ danych Unsigned w polu Data Type. 4. Access Time ustawić na 300 (wartość domyślna). 5. Ustawić Exception Type na Disabled i kliknąć przycisk OK. 6. Analogicznie jak w punktach 1..5 skonfigurować drugi rekord dla wejść binarnych I1 – I16. E. Zapisać konfigurację do pliku na dysku twardym: 1. W menu File wybrać polecenie Save as - pojawi się standardowe okno Zapisywanie jako. 2. Upewnić się, że nazwa pliku odpowiada nazwie węzła systemu iFIX i kliknąć przycisk OK. System iFIX dodaje automatycznie rozszerzenie, które jest takie samo jak nazwa drajwera. 3. Wybrać polecenie Exit w menu File. System zapyta, czy zapisać konfigurację drajwera i czy przeładować konfigurację drajwera. Druga opcja jest aktywna w przypadku, gdy uruchomiony jest system iFIX. Rozdział 10: Komunikacja ze sterownikami PLC 185 4. Po kliknięciu przycisku OK zostanie wyświetlone okno z ostrzeżeniem o chwilowym zatrzymaniu programu SAC, w którym należy kliknąć przycisk Tak. 5. W oknie z informacją o zakończeniu procesu przeładowania konfiguracji drajwera kliknąć przycisk OK. 6. W oknie programu System Configuration zapisać plik konfiguracyjny systemu iFIX z rozszerzeniem .SCU przez wybranie polecenia Save as... w menu File. 10.3 Konfiguracja drajwera 7.x Drajwer GE9 w wersji 7.x został napisany w technologii OPC (OLE For Process Control). OPC jest standardem przemysłowym opracowanym przez OPC Fundation. Specyfikacja OPC definiuje standardowe typy obiektów, ich zachowania i właściwości umożliwiające współpracę w czasie rzeczywistym aplikacji sterowania procesami przemysłowymi ze sprzętem automatyki. Wymagania te określają: standardowe sposoby dostępu do danych w sprzęcie lub systemach automatyki, sposoby efektywnego transferu danych pomiędzy sprzętem a aplikacją oraz możliwości jednoczesnej współpracy oprogramowania klienta z wieloma serwerami danych. Uwaga: Drajwer GE9 instaluje się z dodatkowej płyty CD: I/O Drivers and OPC Servers. Po zainstalowaniu drajwera należy go skonfigurować. Konfiguracja drajwera GE9 w wersji 7.x została szczegółowo przedstawiona w części z ćwiczeniami do niniejszego rozdziału. 186 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 10.4 Udostępnianie transmitowanych danych w systemie iFIX Aby wyświetlić operatorom wartości transmitowanych danych lub umożliwić im sterowanie urządzeniami przy pomocy drajwerów We/Wy, należy w programie Database Manager utworzyć bloki odpowiednich typów i na rysunkach w systemie iFIX umieścić wyświetlacze cyfrowe dla tych bloków, korzystając z narzędzia Datalink Stamper z paska narzędzi Toolbox. Przykładowo do wyświetlenia danych analogowych można zastosować blok typu Analog Input. Blok ten należy skonfigurować przykładowo tak, jak pokazano na poniższym rysunku. Do pola Driver należy wprowadzić, przy pomocy przycisku ze strzałką skierowaną w dół, nazwę stosowanego drajwera: np. GE9. W polu I/O Address należy wpisać adres danych, korzystając z następującej konwencji: Nazwa_urządzenia:Adres_danej_w_sterowniku_PLC np. PLC1:R1, gdzie PLC1 to nazwa urządzenia określona w czasie konfiguracji drajwera, a R1 to adres rejestru sterownika zadeklarowany w jednym z transmitowanych bloków danych. Uwaga: Adresy We/Wy dla różnych sterowników PLC są zwykle inne. Informacji na temat postaci adresu danych dla konkretnego sterownika PLC należy szukać w systemie pomocy stosowanego drajwera. Rozdział 10: Komunikacja ze sterownikami PLC 187 Dodatkowo można zdefiniować skalowanie przez wprowadzenie odpowiedniego kodu skalowania w polu Signal Conditioning (kod 15AL oznacza skalowanie liniowe) lub skorzystać z obszaru Linear Scaling. 10.5 Zastosowanie „przesunięć” (OFFSET) do odczytu danych procesowych Wiele wartości komórek pamięci drajwera We/Wy dostępnych przy pomocy bloku Analog Register lub Digital Register może być wyświetlonych przez obliczenie offsetu w stosunku do adresu bazowego. Uwaga: Nie wszystkie drajwery mogą korzystać z tej funkcjonalności, przykładowo drajwer MB1. Offset określa liczbę elementów po adresie bazowym i podawany jest w polu I/O Address w oknie konfiguracji bloku. Przykładowo technologię offset można zastosować do wyświetlenia wartości rejestru R3, gdy w procesowej bazie danych utworzono blok dla rejestru R2, w sposób opisany poniżej. W procesowej bazie danych systemu iFIX utworzono blok AR2 typu Analog Register odwołujący się do rejestru R2. Przyjmując rejestr R2 jako adres bazowy, odwołania do kolejnych rejestrów można uzyskać przez podanie odpowiedniego offsetu. Offset dla rejestru R3 w takim przypadku wynosi 1, jak pokazano na poniższym rysunku. 188 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA Aby wyświetlić zawartość rejestru R3 w systemie iFIX, korzystając z technologii OFFSET, należy na rysunku umieścić wyświetlacz cyfrowy odwołujący się do adresu: Fix32.Thisnode.AR2.F_01. W konfiguracji drajwera We/Wy transmitowany jest blok danych DataBlock1 od rejestru R1 do rejestru R100. W takim przypadku maksymalna wartość zastosowanego offsetu może wynosić 99. Rozdział 10: Komunikacja ze sterownikami PLC 189 10.6 Ćwiczenia 10.6.1 Lampki – technologia OFFSET – drajwer GE9 Cel: Zapoznanie się z konfiguracją komunikacji ze sterownikiem GE-FANUC serii 90-30, wyświetlaniem informacji na rysunkach z tego sterownika i stosowaniem technologii OFFSET. Zadanie: Zmieniając przełącznik I1 na symulatorze wejść binarnych sterownika GE-Fanuc zmieniać kolor lampki wyświetlanej na rysunku. Do wyświetlania kolejnych dwóch wejść sterownika zastosować technologię OFFSET. Aby zrealizować powyższe zadanie, należy wykonać następujące czynności: A. Przygotować sterownik PLC firmy GE Intelligent Platforms do współpracy z systemem iFIX: 1. Skonfigurować sterownik, by można było korzystać z symulatora wejść binarnych (zmiana położenia przełącznika I1 na symulatorze wpisuje 0 lub 1 do komórki I1 sterownika PLC). 2. Połączyć lokalny komputer ze sterownikiem PLC przy pomocy sieci LAN i przypisać sterownikowi adres IP (przykładowo: 192.168.1.50). 3. Ustawić sterownik PLC w tryb Run (domyślnie w trybie STOP zablokowane są wejścia/wyjścia sterownika). B. Skonfigurować plik Hosts: 1. Otworzyć w programie Notatnik plik: C:\WINDOWS\SYSTEM32\DRIVERS\ETC\HOSTS 3. 190 Wprowadzić adres IP modułu CMM 321 do komunikacji w sieci Ethernet przez wprowadzenie, przykładowo, następującej linii: Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 192.168.1.50 3. PLC Zapisać plik Hosts na dysku twardym. Należy zwrócić uwagę, że plik ten nie posiada żadnego rozszerzenia. C. Zainstalować drajwer GE9 z płyty CD: I/O Drivers and OPC Servers: 1. Umieścić płytę CD I/O Drivers and OPC Servers w napędzie CD. 2. Przejść do folderu /7X/GE9 i uruchomić program Setup.exe. 3. Zainstalować drajwer GE9 stosując domyślne ustawienia, przy czym w oknie I/O Server Setup kliknąć przycisk opcji Server. D. Skonfigurować drajwer GE9: 1. Uruchomić program SCU i sprawdzić, czy w oknie SCU - FIX w panelu zainstalowanych drajwerów znajduje się drajwer GE9. Uwaga: W przypadku braku tego drajwera w menu Configure wybrać polecenie SCADA... . Otworzy się okno SCADA Configuration, lecz na liście Configured I/O Drivers nie będzie drajwera GE9. Aby ten drajwer dodać w wyświetlonym oknie należy kliknąć przycisk z trzema kropkami obok pola I/O Driver Name. Rozdział 10: Komunikacja ze sterownikami PLC 191 Wtedy zostanie wyświetlona lista zainstalowanych drajwerów podobna do listy przedstawionej poniżej: 192 2. Wybrać drajwer, który należy zastosować, a następnie kliknąć przycisk OK. Wybrany drajwer pojawi się w polu I/O Driver Name w oknie SCADA Configuration. 3. Kliknąć przycisk Add, aby dodać wybrany drajwer do listy aktywnych drajwerów Configured I/O Drivers. 4. W oknie głównym programu SCU w panelu zainstalowanych drajwerów dwukrotnie kliknąć nazwę GE9. Wtedy zostanie uruchomiony program Power Tool do konfiguracji tego drajwera. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 5. W wyświetlonym oknie dialogowym I/O Driver Server Connection należy kliknąć przycisk opcji Use Local Server, a następnie kliknąć przycisk Connect. Rozdział 10: Komunikacja ze sterownikami PLC 193 194 6. W wyświetlonym oknie głównym aplikacji Power Tool wybrać polecenie Setup w menu Options. 7. W polu Default configuration file name wpisać nazwę pliku, w którym będzie przechowywana konfiguracja drajwera GE9. Nazwa ta składa się z nazwy węzła aplikacji FIX i rozszerzenia, którym jest nazwa drajwera. W polu Default path for configuration file znajduje się ścieżka do folderu, w którym zostanie umieszczony plik fix.ge9. Kliknąć przycisk OK. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 8. Na karcie Advanced kliknąć przycisk On dla opcji Auto Start. 9. Zapisać plik konfiguracyjny na dysk twardy, zakończyć pracę programu Power Tool, a następnie ponownie uruchomić ten program klikając dwukrotnie w programie SCU nazwę drajwera GE9 w panelu zainstalowanych drajwerów. Powinien otworzyć się domyślny plik konfiguracyjny FIX.GE9. Jego nazwa wraz ze ścieżką wyświetlana jest w pasku tytułu okna programu Power Tool. 10. Dodać kanał Channel0, wybierając polecenie i zaznaczyć pole wyboru Enable. Add Channel w menu Edit 11. Dodać urządzenie PLC1, wybierając polecenie Add Device w menu Edit, w polu Device Name wpisać PLC1, w polu Primary IP Address wpisać PLC i zaznaczyć pole wyboru Enable. Rozdział 10: Komunikacja ze sterownikami PLC 195 Uwaga: Do definiowania urządzenia stosowane są następujące pola: Device Name – nazwa urządzenia, Enable – zezwolenie na działanie urządzenia, IP Address – adres IP sterownika lub nazwa zastępcza stosowanego modułu CMM 321 do komunikacji w sieci Ethernet. Nazwę tę definiuje się w pliku C:\WINDOWS\SYSTEM32\DRIVERS\ETC\HOSTS przez wprowadzenie następującej linii: 192.168.1.50 PLC gdzie: 192.168.1.50 jest przykładowym adresem IP sterownika, a PLC jest nazwą sterownika w sieci. Reply Timeout – czas, po jakim nastąpi powtórne wysłanie danych do sterownika, Retries – liczba powtórzeń, Delay Time – czas, w którym dana paczka nie będzie odpytywana, gdy nastąpi utrata komunikacji. Opcje w ramce Primary Device dotyczą sterownika podstawowego, natomiast w ramce Backup Device - rezerwowego. Do każdego kanału można dołączyć wiele urządzeń. Oznacza to, że przez dany kanał można łączyć się z wieloma sterownikami. Do każdego urządzenia można dodać wiele bloków danych, co pozwoli na czytanie wielu różnych paczek ze sterownika. 12. Dodać blok danych, który należy transmitować pomiędzy sterownikiem PLC, a lokalnym komputerem, wybierając polecenie Add DataBlock w menu Edit. W wyświetlonym oknie w obszarze I/O Address Setup w polu Starting Address wpisać I1, Ending Address wpisać I16 lub w polu Address Length wpisać 16. Zaznaczyć pole wyboru Enable. 196 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA Uwaga: Do definiowania bloków danych stosowane są następujące pola: Enable – zezwolenie na transmisję danego bloku danych, Starting Address – adres początkowy bloku danych, zależny od drajwera, Ending Address – adres końcowy bloku danych, zależny od drajwera, Address Length – długość bloku danych, Deadband – strefa martwa, Latch Data – zatrzaskiwanie ostatnich poprawnych danych przy utracie komunikacji ze sterownikiem, Disable Outputs – zakaz zapisu do bloku danych, Enable Block Writes – zezwolenie na blokowy zapis danych (wszystkie dane z danego bloku danych są uaktualniane podczas zapisu nawet tylko jednej wartości), Primary Rate – podstawowy okres odpytywania bloku danych (od 1 sekundy do 6:23:59:59); wartość Disable oznacza, że blok danych nigdy nie będzie czytany; 0 oznacza, że blok danych będzie odpytywany z maksymalną częstotliwością, Secondary Rate – częstotliwość odpytywania po upływie czasu Access Time, Phase – przesunięcie odczytu w czasie dla bloku danych, Access Time – czas, po upływie którego blok danych przestanie być odpytywany z częstotliwością Primary Rate i zacznie być czytany z częstotliwością Secondary Rate. Sytuacja taka wystąpi, gdy system iFIX nie będzie korzystał z danych z tego bloku (np. gdy dane te nie będą wyświetalane na rysunkach, nie będą zapisywane do plików itp. przez okres czasu zdefiniowany przez parametr Access Time), Data Type – typ danych bloku danych. Rozdział 10: Komunikacja ze sterownikami PLC 197 E. Sprawdzić poprawność działania skonfigurowanego drajwera GE9: W menu Display Mode wybrać dwa polecenia: Stats Mode oraz Start lub kliknąć przycisk Start oraz Statistics w pasku narzędzi umieszonym pod paskiem menu. Wartości w polach Transmits oraz Receives powinny być takie same i zwiększać się co sekundę. Uwaga: Aby przejść do trybu konfiguracji drajwera, w menu Display Mode należy wybrać polecenie Config Mode lub kliknąć siódmy przycisk od prawej strony w pasku narzędzi pod paskiem menu. F. Założyć w bazie danych blok GE9_DR1: 1. W programie Database Manager dodać do bazy danych blok GE9_DR1 typu DR Digital Register. 2. W polu Driver wprowadzić, przy pomocy przycisku ze strzałką skierowaną w dół, nazwę stosowanego drajwera: GE9. Uwaga: W przypadku, gdy drajwer GE9 działa poprawnie, ale nie można wybrać go z listy Driver w oknie konfiguracyjnym bloku, należy zainstalować drajwer ten ponownie z ustawieniami domyślnymi. Problem spowodowany jest zmianą nazwy węzła. 3. W polu I/O Address wpisać adres danych PLC1:I1, stosując następującą konwencję: Nazwa_urządzenia:Adres_danej_w_sterowniku_PLC Kliknąć inne pole, przykładowo Description. W przypadku błędnego adresu I/O Address zostanie wyświetlony program do konfiguracji drajwera GE9. 4. 198 W karcie Advanced zaznaczyć pole wyboru Enable Output. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA G. Wykonać aplikację w systemie iFIX dla wejścia I1 i przetestować ją: 1. Utworzyć nowy rysunek i umieścić na nim obiekt dynamo – rysunek lampki sygnalizacyjnej. W tym celu w drzewie systemu programu WorkSpace w folderze Dynamo Sets wybrać zestaw obiektów Dynamo o nazwie PilotLightsLarge. 2. Na rysunek przeciągnąć z okna pliku PilotLightsLarge.fds trzecią lampkę i skonfigurować ją tak, jak pokazano na rysunku poniżej. Rozdział 10: Komunikacja ze sterownikami PLC 199 3. Przejść do trybu Run programu WorkSpace i zmienić położenie przełącznika I1 na symulatorze wejść dwustanowych sterownika PLC. Kolor lampki powinien się zmienić. H. Zastosować technologię OFFSET: 1. Skopiować wykonaną lampkę dwa razy. 2. Dwukrotnie kliknąć pierwszą ze skopiowanych lampek i w polu Pilot Light Data Source wprowadzić: Fix32.THISNODE.GE9_DR1.F_01. 3. Dwukrotnie kliknąć drugą ze skopiowanych lampek i w polu Pilot Light Data Source wprowadzić: Fix32.THISNODE.GE9_DR1.F_02. Uwaga: W ten sposób można odwołać się do kilku komórek z przestrzeni adresowej sterownika PLC, deklarując tylko jeden blok w procesowej bazie danych systemu iFIX. 200 4. Po przejściu do trybu Run programu WorkSpace zmieniać położenie przełączników I1, I2 i I3 na symulatorze wejść binarnych sterownika GE Intelligent Platforms i zaobserwować odpowiednią zmianę koloru lampek wyświetlanych na rysunku. 5. Opisać lampki tak, jak pokazano na poniższym rysunku. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 11 ALARMY – DEFINIOWANIE, PREZENTACJA, OBSŁUGA, POTWIERDZANIE, PRZEGLĄDANIE ORAZ ZAPIS Alarm, to stan bloku wskazujący na to, że wartość procesowa przekroczyła predefiniowane ograniczenie i wymaga interwencji. Typowy alarm ostrzega operatora, że wartość procesowa lub stan procesu zmienił się w sposób mogący prowadzić do problemów w działaniu automatyzowanego systemu. Użytkownik musi jednak skonfigurować alarm w taki sposób, aby pojawiał się tylko wtedy, gdy jest to uzasadnione i potrzebne. Przykładowo, użytkownik może skonfigurować blok procesowej bazy danych w taki sposób, aby generował on alarm w sytuacji, gdy poziom płynu w zbiorniku jest zbyt wysoki lub zbyt niski. System wyświetla taki alarm przy pomocy obiektu, który nazywa się Zestawienie alarmów. Wygenerowany alarm zostanie usunięty z tego zestawienia, gdy poziom płynu wróci do stanu normalnego i operator potwierdzi przyjęcie alarmu. Alarmy można podzielić na trzy grupy: alarmy dwustanowe, alarmy analogowe, alarmy statystyczne. Do alarmów dwustanowych zalicza się następujące typy alarmów: alarmy generowane przy załączeniu (przejście z 0 na 1) bloku, alarmy generowane przy wyłączeniu bloku, alarmy generowane przy zmianie stanu bloku. Do alarmów analogowych zalicza się następujące typy alarmów: alarmy zakresowe: o alarm bardzo wysoki, o alarm wysoki, o alarm niski, o alarm bardzo niski. alarmy szybkościowe, alarmy odchyleniowe. Rozdział 11: Alarmy – definiowanie, prezentacja, obsługa, potwierdzanie, przeglądanie oraz zapis 201 Poniżej przedstawiono zadania, które należy wykonać, by w pełni zaimplementować system alarmowania. 202 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 11.1 Ćwiczenia 11.1.1 Aplikacja: Brak zasilania Cel: Zapoznanie się z obsługą alarmów dwustanowych, graficznym przedstawianiem alarmów oraz z zastosowaniem obiektu zestawienia alarmów Alarm Summary. Zadanie: Animować czerwoną lampkę w przypadku braku zasilania w stacji FKS2 (Fabryka Kwasu Siarkowego – stacja nr 2). Gdy w stacji FKS2 brak jest zasilania i wygenerowany alarm nie został potwierdzony, lampka powinna migać na zmianę kolorem czerwonym i pomarańczowym. Gdy w stacji FKS2 brak jest zasilania i alarm wygenerowany z tego powodu został potwierdzony, wtedy lampka powinna świecić światłem ciągłym czerwonym. We wszystkich pozostałych przypadkach lampka powinna być niewidoczna na ekranie. Potwierdzanie alarmu powinno być zrealizowane przez kliknięcie lampki. Oprócz lampki na rysunku należy umieścić przełącznik do symulacji zaniku napięcia. Wyświetlacz cyfrowy umieszczony obok tego przycisku powinien pokazywać wartość 1, gdy brak napięcia zasilania i 0, gdy stacja FKS2 jest zasilana. Dodatkowy wyświetlacz cyfrowy powinien informować o potwierdzeniu alarmu: 0 - alarm został potwierdzony, 1 – alarm jest niepotwierdzony. Wygenerowany alarm powinien być wyświetlany w oknie zestawienia alarmów. Rozdział 11: Alarmy – definiowanie, prezentacja, obsługa, potwierdzanie, przeglądanie oraz zapis 203 Aby zrealizować powyższe zadanie, należy wykonać następujące czynności: 204 1. Otworzyć rysunek AlarmyBiezace.grf. 2. W systemie iFIX narysować przełącznik w stanie otwartym (0) i w stanie zamkniętym (1). Każdy z przełączników wykonać jako obiekt zgrupowany i korzystając z polecenia Copy as Bitmap na karcie Home w grupie Clipboard zamienić na mapę bitową. 3. Wybrać mapę bitową przełącznika w stanie otwartym i korzystając z eksperta Toggle Digital Point Expert przypisać jej skrypt zmieniający wartość bloku U_DI na przeciwny. Okno eksperta Toggle Digital Point Expert można wyświetlić przez wybranie na karcie Tools w menu Commands w grupie Tasks/Experts polecenia Toggle Digital Tag. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 4. Kliknąć przycisk OK i po wyświetleniu informacji, że w procesowej bazie danych nie ma takiego bloku, utworzyć blok typu Digital Input. Potem skonfigurować go tak, jak pokazano na rysunku poniżej. 5. Na karcie Advanced zaznaczyć pola wyboru Enable Output oraz Invert Output. Rozdział 11: Alarmy – definiowanie, prezentacja, obsługa, potwierdzanie, przeglądanie oraz zapis 205 206 6. Na karcie Alarms określić typ generowanego alarmu, tak jak pokazano na poniższym rysunku. 7. Kliknąć przycisk Text w pasku narzędzi Toolbox i wprowadzić dwa obiekty tekstowe: Brak napięcia: oraz Alarm niepotwierdzony. 8. Kliknąć przycisk Datalink Stamper w pasku narzędzi Toolbox i umieścić wyświetlacz cyfrowy obok przełącznika. W wyświetlonym oknie w polu Source wprowadzić nazwę bloku: U_DI. 9. W powyżej przedstawionym oknie kliknąć przycisk modyfikacji bloku U_DI. Przycisk ten znajduje się po prawej stronie pola Source za przyciskiem z trzema kropkami. W wyświetlonym oknie konfiguracyjnym bloku U_DI w polu Next wpisać U_CA. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 10. Kliknąć przycisk ze strzałką skierowaną w górę i utworzyć blok obliczeniowy CA (Calculation) U_CA. Skonfigurować ten blok tak, jak pokazano na poniższym rysunku. Należy zwrócić uwagę, że w polu B trzeba wprowadzić: U_DI.F_NALM. Pole F_NALM przyjmuje wartość 1, gdy wygenerowany przez blok alarm jest niepotwierdzony lub 0, gdy wygenerowany przez blok alarm jest potwierdzony. Rozdział 11: Alarmy – definiowanie, prezentacja, obsługa, potwierdzanie, przeglądanie oraz zapis 207 11. Kliknąć przycisk Datalink Stamper w pasku narzędzi Toolbox i umieścić wyświetlacz cyfrowy obok napisu Alarm niepotwierdzony. W wyświetlonym oknie w polu Source wprowadzić nazwę Fix32.THISNODE.U_DI.F_NALM i potem kliknąć przycisk OK. 12. Wybrać mapę bitową przełącznika w stanie zamkniętym (dźwignia w położeniu górnym) i korzystając z eksperta widzialności Visibility Expert uczynić ją widoczną, gdy wartość bloku U_DI jest równa 1. W polu Condition Value należy wprowadzić wartość 0.5. Wartość dziesiętną należy wprowadzić jako 0,5 (z przecinkiem) w przypadku korzystania z systemu Windows w języku polskim. 13. Kliknąć przycisk Oval w pasku narzędzi Toolbox i narysować koło przy pomocy klawisza Ctrl. 14. Dwukrotnie kliknąć narysowany obiekt lampkę i wybrać pole wyboru właściwości dynamicznej Visible. Skonfigurować tę właściwość tak, jak pokazano na rysunku poniżej. 208 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 15. Zamknąć okno konfiguracji właściwości dynamicznej Visible i wybrać pole wyboru instrukcji wykonywanych w chwili kliknięcia obiektu w obszarze Command. Rozdział 11: Alarmy – definiowanie, prezentacja, obsługa, potwierdzanie, przeglądanie oraz zapis 209 16. W wyświetlonym oknie Multiple Command Script Wizard w menu rozwijanym kliknąć instrukcję eksperta potwierdzania alarmów Acknowledge Alarm i następnie w polu FIX Database Tag wprowadzić nazwę bloku U_DI. 17. Zamknąć okno eksperta Acknowledge Alarm Expert oraz okno kreatora Multiple Command Script Wizard i w oknie Basic Animation Dialog dla obiektu lampki zaznaczyć pole wyboru Foreground w obszarze Color. Skonfigurować wyświetlone okno eksperta koloru pierwszoplanowego Foreground Color Expert tak, jak pokazano na rysunku poniżej, przy czym czasami należy w kolumnie Value wprowadzić wartości liczbowe 0 i 1 zamiast OPEN i CLOSE. W kolumnie Color należy dwa razy wybrać kolor czerwony, a w kolumnie Blink To kolor pomarańczowy przez dwukrotne kliknięcie odpowiedniego pola. 210 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 18. Kliknąć przycisk Alarm Summary w pasku narzędzi Toolbox i umieścić na rysunku AlarmyBiezace.grf obiekt Alarm Summary. Zmienić rozmiary tego obiektu, jak pokazano na pierwszym rysunku w niniejszym rozdziale. Rozdział 11: Alarmy – definiowanie, prezentacja, obsługa, potwierdzanie, przeglądanie oraz zapis 211 19. Przeładować procesową bazę danych i ponownie uruchomić program WorkSpace. 20. Przetestować działanie aplikacji zgodnie z opisem podanym w treści zadania. 212 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 12 ROZWIĄZANIA SIECIOWE Projektowanie sieci według firmy GE Intelligent Platforms jest oparte na dwóch podstawowych zasadach: w pełni rozproszone sterowanie i transfer danych na żądanie. Przetwarzanie rozproszone W sieci z przetwarzaniem rozproszonym każdy węzeł niezależnie wykonuje przypisane mu zadania. Jedną z korzyści wynikających z takiej architektury jest to, że węzły można wyłączać z pracy w trybie on-line bez konieczności wyłączania całej sieci. Kiedy inny węzeł poszukuje danych w węźle, który jest w trybie off-line, oprogramowanie sieciowe iFIX powiadamia węzeł żądający informacji o jej czasowej niedostępności, co pozwala węzłowi żądającemu danych na bezkolizyjne wycofanie się z oczekiwania na dane. Pomimo tego, że każdy węzeł tworzy całość jako niezależna stacja w sieci, węzły mogą również poszukiwać dostępu do danych w innych częściach sieci. Przykładowo: węzeł iClient może wyświetlać rysunek z wyświetlaczami cyfrowymi do wielu innych węzłów SCADA. Sesje Każdy węzeł może uzyskać dostęp do danych pochodzących z dowolnego innego węzła SCADA w sieci. Użytkownik selektywnie konfiguruje, które węzły sieci komunikują się z węzłami SCADA. Połączenie komunikacyjne pomiędzy dwoma węzłami w sieci jest nazywane sesją. Kiedy węzeł ustanowi sesję z węzłem SCADA, to możliwe staje się przekazywanie danych i alarmów pomiędzy tymi węzłami. Dynamiczne połączenia Możliwe jest również takie skonfigurowanie węzła, aby połączenia do zdalnego węzła SCADA, które nie są jawnie skonfigurowane, były wykonywane automatycznie. Takie połączenia zwane są połączeniami dynamicznymi. Połączenie wychodzące Oznaczane jest strzałką skierowaną w prawo: -->. Określa możliwość modyfikowania wartości w procesowej bazie danych na zdalnym serwerze SCADA. Połączenie przychodzące Oznaczane jest strzałką skierowaną w lewo: <--. Umożliwia określenie, który zdalny serwer SCADA ma możliwość zmian wartości w lokalnej procesowej bazie danych. Połączenie przychodzące i wychodzące Oznaczanie jest strzałką z dwoma grotami: <-->. Realizuje funkcję połączenia wychodzącego i przychodzącego. Rozdział 12: Rozwiązania sieciowe 213 12.1 Ćwiczenia 12.1.1 Sterowanie w sieci Cel: Zapoznanie się z wyświetlaniem i zmianą informacji w procesowych bazach danych sieciowych serwerów SCADA. Zadanie: Wykonać aplikację sieciową, która umożliwia zmianę wartości zadanej poziomu w zbiornikach. Każdy ze zbiorników powinien być wizualizowany i sterowany przez lokalny serwer SCADA. Aplikacja sieciowa przy pomocy rysunku NetworkStatusDisplay.grf powinna prezentować różne typy połączeń serwerów SCADA: połączenia wychodzące, połączenia przychodzące, połączenia przychodzące i wychodzące Ponadto należy pokazać brak połączenia z wyłączonym serwerem SCADA. Uwaga: W niniejszym ćwiczeniu zastosowano cztery serwery SCADA: FIX0, FIX1, FIX2 i FIX3. W przypadku ich analogicznej konfiguracji pokazano dane dla serwera FIX2. 214 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA Aby zrealizować powyższe zadanie, należy wykonać następujące czynności: A. W celu skonfigurowania do pracy w sieci w każdym z czterech komputerów zrealizować zadania opisane w niniejszym punkcie: 1. W pliku C:\Windows\system32\drivers\etc\Hosts dodać następujące wiersze: 192.168.1.40 192.168.1.41 192.168.1.42 192.168.1.43 2. FIX0 FIX1 FIX2 FIX3 Skonfigurować TCP/IP. W Panelu sterowania kliknąć prawym klawiszem myszy ikonę Połączenia sieciowe i w wyświetlonym menu wybrać polecenie Właściwości. W oknie Właściwości: Połączenie lokalne kliknąć Protokół internetowy (TCP/IP) i przycisk Właściwości. Rozdział 12: Rozwiązania sieciowe 215 W oknie Właściwości: Protokół internetowy (TCP/IP) na karcie Konfiguracja alternatywna wprowadzić odpowiedni adres IP i maskę podsieci zgodnie z wpisem w pliku Hosts. 3. Wyłączyć zaporę systemu Windows w Panelu sterowania tak, jak przedstawiono na rysunku poniżej. 4. Zainstalować klucz sprzętowy systemu iFIX. Uwaga: Wersja Demo systemu iFIX nie obsługuje połączeń sieciowych. B. Połączyć komputery w sieć przy pomocy węzła komunikacyjnego (ang. Hub) tak, jak pokazano na poniższym rysunku: C. Na każdym z czterech serwerów SCADA utworzyć w bazie danych o nazwie VIXkurs blok AI1 typu Wejście analogowe z zaznaczonym polem Output Enable. 216 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA D. Na wszystkich serwerach SCADA wykonać rysunek aplikacji różniący się jedynie napisem Current Node: 1. Na rysunku umieścić cztery pola danych odwołujące się do bloków AI1 na poszczególnych serwerach SCADA. Pola danych powinny umożliwiać zmianę wartości w bazie danych. W tym celu należy dwukrotnie kliknąć pole danych lewym przyciskiem myszy i w wyświetlonym oknie Datalink w obszarze Data Entry wybrać z listy rozwijanej polecenie In Place. 2. Na rysunku umieścić cztery zbiorniki - obiekty Dynamo. Obiekty te należy pobrać z pliku TankAnim2.fds i przypisać je do bloku AI1 z odpowiednich serwerów SCADA. Rozdział 12: Rozwiązania sieciowe 217 3. Każdy obiekt Dynamo wraz z polem danych objąć prostokątną ramką przez narysowanie prostokąta, kliknięcie go prawym przyciskiem myszy, wybranie menu Fill Style i polecenia Hollow. 4. Na rysunku umieścić obiekty tekstowe pokazane na pierwszym rysunku w niniejszym ćwiczeniu za wyjątkiem napisu Current Node. Napis ten należy umieścić obok nazwy węzła odpowiednio dla każdego serwera SCADA. Przykładowo, na rysunku aplikacji dla serwera o nazwie FIX2 napis Current Node (Węzeł bieżący) powinien pojawić się obok nazwy FIX2. E. Określić nazwę każdego z czterech serwerów SCADA (FIX0, FIX1, FIX2 i FIX3) i bazę danych ładowaną przy starcie systemu iFIX: 218 1. Uruchomić na każdym z serwerów program System Configuration. 2. Dwukrotnie kliknąć nazwę węzła na ekranie monitora w oknie SCU i w wyświetlonym oknie Local Startup Definition w polu Local Node Name oraz w polu Local Logical Name wprowadzić odpowiednią nazwę serwera SCADA. Na poniższym rysunku przedstawiono przykład dla serwera SCADA o nazwie FIX2. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 3. Dwukrotnie kliknąć nazwę bazy danych na ekranie monitora w oknie SCU i w wyświetlonym oknie Database Definition w polu Database Name wprowadzić nazwę bazy danych VIXkurs. F. Na serwerach SCADA skonfigurować odpowiednio okno Network Configuration w programie System Configuration: 1. W programie System Configuration wybrać polecenie Network w menu Configure i skonfigurować wyświetlone okno Network Configuration dla poszczególnych serwerów. Rozdział 12: Rozwiązania sieciowe 219 FIX0: FIX1: 220 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA FIX2: FIX3: 2. Na poszczególnych serwerach SCADA zapisać konfigurację systemu iFIX do pliku odpowiednio: FIX0.scu, FIX1.scu, FIX2.scu oraz FIX3.scu przy pomocy polecenia Save As i ewentualnie potwierdzić zmianę w rejestrze systemu Windows. Rozdział 12: Rozwiązania sieciowe 221 G. Przetestować działanie aplikacji: 1. Uruchomić ponownie wszystkie serwery SCADA za wyjątkiem serwera FIX0. W tym celu należy skorzystać z ikony instalacyjnej systemu iFIX o nazwie iFIX 5.0 znajdującej się na pulpicie systemu Windows. W wyświetlonym oknie Proficy iFIX Startup w polu Nazwa węzła należy podać nazwę uruchamianego serwera SCADA, a w polu Plik SCU odpowiedni plik konfiguracyjny .SCU. Poniżej przedstawiono okno dla serwera FIX2. 2. Na każdym z uruchomionych serwerów SCADA otworzyć przygotowany rysunek dla aplikacji Sterowanie w sieci i domyślny rysunek NetworkStatusDisplay.grf. Uwaga: W dalszej części niniejszego ćwiczenia przedstawiono wygląd rysunków aplikacji wraz z informacją z rysunku NetworkStatusDisplay.grf dla poszczególnych serwerów. 222 3. Kliknąć dowolne pole danych, dla którego wyświetlane są wartości liczbowe i sprawdzić, że stosując to pole danych można zmienić wartość zadaną dla poziomu w zbiorniku na określonym serwerze. 4. Zaobserwować, że serwer FIX1 nie otrzymuje danych z serwera FIX3, gdyż nie został on wpisany na listę Configured Remote Nodes w oknie Network Configuration dla serwera FIX1. Z analogicznej przyczyny serwer FIX2 nie otrzymuje danych z FIX3. 5. Zauważyć, że operator na serwerze FIX1 jest informowany, że blok w jego bazie danych może być modyfikowany z serwera FIX3, gdyż pokazano połączenie przychodzące FIX3 <- FIX1 z serwera FIX3 (Ostatnia linia w Statusie wyświetlania sieci (ang. Network Status Display)). Natomiast on nie może modyfikować wartości Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA w procesowej bazie danych na serwerze FIX3. Pole danych dla serwera FIX3 nie zawiera wartości liczbowych. 6. Spostrzec, że na serwerze FIX2 pokazano połączenie przychodzące i wychodzące FIX1 <-> FIX2. Procesowa baza danych na serwerze FIX2 może być modyfikowana z serwera FIX1 i operator z serwera FIX2 może modyfikować wartości w procesowej bazie danych na serwerze FIX1. 7. Zaobserwować, że na serwerze FIX3 pokazano połączenie wychodzące FIX2 -> FIX3 na serwer FIX2 (Ostatnia linia w Statusie wyświetlania sieci (ang. Network Status Display)). Ten typ połączenia umożliwia operatorowi na serwerze FIX3 modyfikowanie wartości w procesowej bazie danych na serwerze FIX2. 8. W przypadku wyłączenia serwera FIX0 na pozostałych serwerach SCADA na rysunku Network Status Display powinna zostać wyświetlona linia: Connection NOT established with node. Rozdział 12: Rozwiązania sieciowe 223 224 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA Rozdział 12: Rozwiązania sieciowe 225 226 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 13 PROTOKÓŁ KOMUNIKACYJNY DDE Mechanizm DDE (ang. Dynamic Data Exchange) umożliwia automatyczną wymianę danych między aplikacjami pracującymi w środowisku MS WINDOWS. DDE opiera się na znormalizowanym protokole komunikacji, obowiązującym w całym systemie Windows. Dzięki temu możliwa jest wymiana danych między aplikacjami pochodzącymi od różnych producentów. Protokół DDE oparty jest na koncepcji serwera i klienta. Serwerem jest aplikacja, która udostępnia swoje dane innym aplikacjom - klientom. Klientem jest aplikacja, która otrzymuje dane w ramach protokołu DDE. Aplikacja może równocześnie funkcjonować jako serwer oraz jako klient. Większość aplikacji pracujących w środowisku MS Windows, takich jak Excel, Word, FIX32, iFIX oraz wiele innych programów jest wyposażona w interfejs DDE. 13.1 DDE Client DDE Client umożliwia pobieranie danych przez system iFIX z innych współpracujących aplikacji. DDE Client umożliwia odczytywanie danych za pośrednictwem bloków procesowej bazy danych systemu iFIX. 13.1.1 Konfiguracja Drajwer DDE trzeba udostępnić w systemie iFIX. W tym celu należy dodać go do listy Configured I/O Drivers w oknie SCADA Configuration. Okno to można wyświetlić w programie System Configuration po wybraniu w menu Configure polecenia SCADA. Drajwer DDE należy dodać do listy przy pomocy przycisku z trzema kropkami obok pola I/O Driver Name i kliknięcie przycisku Add. Potem w oknie SCADA Configuration należy kliknąć przycisk OK. Rozdział 13: Protokół komunikacyjny DDE 227 Po uruchomieniu systemu iFIX uruchamia się zadanie klienta DDE. Jeżeli użytkownik skonfiguruje korzystanie z drajwera DDE w oknie SCADA Configuration, gdy system iFIX jest uruchomiony, wtedy należy system ten zamknąć i ponownie uruchomić. Program System Configuration służy bowiem do tworzenia pliku konfiguracyjnego, który jest odczytywany jedynie w czasie uruchamiania systemu iFIX. Okno klienta DDE pokazane poniżej służy do obserwacji oraz kontroli połączeń DDE z innymi aplikacjami. Można je wyświetlić przez kliknięcie odpowiedniego przycisku na pasku zadań systemu Windows. 228 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 13.1.2 Adresowanie Składnia adresu DDE wygląda następująco: NAZWA_SERWERA_DDE|TEMAT_ROZMOWY!OBIEKT Przykład: Następujący adres DDE: EXCEL|[ZESZYT1.XLS]ARKUSZ1!W1K1 gdzie: EXCEL - nazwa serwera DDE [ZESZYT1.XLS]ARKUSZ1 - temat rozmowy W1K1 – obiekt, z którego należy czytać dane odwołuje się do obiektu będącego komórką znajdującą się w pierwszym wierszu i pierwszej kolumnie arkusza pierwszego w zeszycie pierwszym. Z adresu typu ”W1K1” (wiersz pierwszy, kolumna pierwsza) należy korzystać tylko w czasie stosowania polskiej wersji programu Excel, w wersji angielskiej należy używać adresu typu ”R1C1” (Row 1, Column 1). Komórce arkusza programu Excel można nadać nazwę. W takim przypadku zamiast adresu typu ”W1K1” można podać nazwę komórki. W aplikacji Excel korzysta się także z innego sposobu adresowania komórek. Kolejnym kolumnom arkusza przypisuje się litery alfabetu. Komórce W1K1 odpowiada adres A1. W ćwiczeniu laboratoryjnym dotyczącym DDE przedstawiono konfigurację bloku DDE_AR typu Analog Register, który łączy się z komórką „A1” zeszytu „Kurs.xls” arkusza „Arkusz1”. Jeżeli dodatkowo umożliwi się zapis do bloku DDE_AR zaznaczając pole wyboru Enable Output można wpisywać dane do komórki arkusza programu Excel. 13.2 Serwer DDE Serwer DDE umożliwia przesyłanie danych z systemu iFIX do innych aplikacji pracujących w środowisku MS Windows, przykładowo do programu Excel. Proces DDE Server DDE Client Excel Rozdział 13: Protokół komunikacyjny DDE 229 13.2.1 Konfiguracja Aby korzystać z usługi serwera DDE należy dodać zadanie uruchamiane podczas startu systemu iFIX. W tym celu należy uruchomić program System Configuration, a następnie wybrać polecenie Tasks... z menu Configure. W polu Filename należy wpisać nazwę pliku dmdde.exe wraz ze ścieżką i kliknąć przycisk Add. Plik Dmdde.exe jest standardowo instalowany w folderze C:\Program Files\GE Fanuc\Proficy iFIX podczas instalacji systemu iFIX. Podczas startu systemu iFIX zostanie uruchomiony serwer DDE. Okno tego programu można otworzyć po kliknięciu odpowiedniego przycisku w pasku zadań systemu Windows. Naciśnięcie klawisza <Spacja>, gdy jest aktywne okno serwera DDE powoduje wyświetlenie pomocy podręcznej. 13.2.2 Adresowanie Wyświetlenie w komórce programu Excel wartości określonego bloku polega na wprowadzeniu formuły o następującej składni: =DMDDE|DATA!WĘZEŁ.AR1.A_CV gdzie: DMDDE - nazwa serwera iFIX, DATA – temat rozmowy, 230 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA WĘZEŁ.AR1.A_CV – przykładowy blok procesowej bazy danych systemu iFIX. 13.3 Ćwiczenia 13.3.1 Wyświetlanie informacji z komórki programu Excel przy pomocy klienta DDE Cel: Zapoznanie się ze sposobem wymiany danych pomiędzy aplikacją Excel i iFIX przy pomocy klienta DDE. Zadanie: Korzystając z klienta DDE wyświetlić na rysunku zawartość komórki A1 arkusza aplikacji Excel za pośrednictwem bloku systemu iFIX. Zmodyfikować zawartość komórki A1 arkusza aplikacji Excel przy pomocy bloku systemu iFIX. Wartości z komórki A1 arkusza programu Excel przedstawić w postaci animowanego słupka. Rozdział 13: Protokół komunikacyjny DDE 231 Aby zrealizować powyższe zadanie, należy wykonać następujące czynności: A. Utworzyć nowy rysunek DDE.grf i przycisk w listwie dolnej z napisem DDE do wyświetlania tego rysunku: 1. Otworzyć rysunek AlarmyBiezace.grf i zapisać go jako plik DDE.grf. 2. Usunąć wszystkie obiekty z rysunku DDE.grf. 3. Otworzyć rysunek ListwaDolna.grf. Skopiować przycisk z etykietą Reaktor. Zmienić tytuł tego przycisku na DDE i skrypt przypisany do tego przycisku, tak aby otwierał on rysunek DDE.grf. B. Uruchomić klienta DDE – DDECLNT.EXE: 1. Uruchomić program System Configuration. 2. Wybrać polecenie Tasks... w menu Configure i upewnić się, czy lista zadań do uruchomienia w oknie Task Configuration zawiera program DDECLNT.EXE. 3. W przypadku braku tego zadania należy dodać je do listy zadań w oknie Task Configuration i ponownie uruchomić system iFIX. Uwaga: Opcjonalnie można także wybrać polecenie Uruchom z menu przycisku Start, wpisać linię: C:\PROGRAM FILES\GE FANUC\PROFICY IFIX\DDECLNT.EXE, kliknąć przycisk OK i w ten sposób uruchomić klienta DDE. C. Uruchomić aplikację Excel i utworzyć plik KURS.XLS: 1. Uruchomić program Excel, korzystając przykładowo z polecenia Wszystkie programy w menu przycisku Start. 2. Utworzyć plik o nazwie KURS.XLS. W tym celu należy skorzystać z polecenia Zapisz jako... w menu Plik. W zapisanym dokumencie powinien znajdować się arkusz o nazwie Arkusz1. 3. Do komórki o adresie A1 wpisać dowolną wartość liczbową z przedziału od 0 do 100. D. Wykonać aplikację w systemie iFIX: 1. Uruchomić program Database Manager i dodać blok typu Analog Register – AR o nazwie DDE_AR. W polu I/O Address należy wprowadzić następujący adres DDE: =EXCEL|[KURS.XLS]Arkusz1!W1K1 Uwaga: W niektórych przypadkach w adresie DDE należy pominąć znak równości (=). 232 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 2. Na rysunku DDE.grf umieścić wyświetlacz cyfrowy. W wyświetlonym oknie dialogowym w polu Source wprowadzić: DDE_AR. W obszarze wprowadzania danych z listy rozwijanej wybrać pozycję In Place. 3. Narysować prostokąt i animować stopień jego wypełnienia. W tym celu dwukrotnie kliknąć ten obiekt i zaznaczyć pole wyboru Fill Percentage. W wyświetlonym oknie dialogowym w polu Data Source wprowadzić: DDE_AR. 4. Do tworzonej aplikacji wprowadzić obiekty tekstowe przedstawione na rysunku prezentującym zadanie do wykonania. W tym celu należy skorzystać z przycisku Text w pasku narzędzi Toolbox. E. Przetestować działanie aplikacji. Do komórki A1 arkusza aplikacji Excel wprowadzić wartość 50. Na rysunku DDE.grf na wyświetlaczu cyfrowym powinna pojawić się wartość 50 i słupek powinien być w połowie wypełniony. Rozdział 13: Protokół komunikacyjny DDE 233 234 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 13.3.2 Wyświetlanie w komórce programu Excel wartości bloku systemu iFIX przy pomocy serwera DDE Cel: Zapoznanie się ze sposobem wymiany danych pomiędzy aplikacją Excel i iFIX przy pomocy serwera DDE. Zadanie: Korzystając z serwera DDE wyświetlać w komórce A2 arkusza aplikacji Excel wartości bieżące bloku DDE_AR1 typu Analog Register z procesowej bazy danych systemu iFIX. Wartości bloku DDE_AR1 zmieniać przy pomocy suwaka wyświetlanego po kliknięciu wyświetlacza cyfrowego. Aby zrealizować powyższe zadanie, należy wykonać następujące czynności: A. Uruchomić serwer DDE – DMDDE.EXE: 1. Uruchomić program System Configuration. 2. Wybrać polecenie Tasks... w menu Configure i upewnić się, czy lista zadań do uruchomienia w oknie Task Configuration zawiera program DMDDE.EXE. Uwaga: W przypadku braku tego zadania należy dodać je do listy zadań i ponownie uruchomić system iFIX. Opcjonalnie można także wybrać polecenie Uruchom... z menu przycisku Start, wpisać polecenie: C:\Program Files\GE Fanuc\Proficy iFIX\DMDDE.EXE i kliknąć przycisk OK. B. Uruchomić aplikację MS EXCEL i utworzyć formułę w komórce A2 w arkuszu Arkusz1 skoroszytu KURS.XLS: 1. Uruchomić program MS Excel, korzystając przykładowo z polecenia Wszystkie programy w menu przycisku Start i otworzyć plik o nazwie KURS.XLS utworzony w czasie realizacji wcześniejszego ćwiczenia. W tym celu należy skorzystać z polecenia Otwórz ... w menu Plik. Rozdział 13: Protokół komunikacyjny DDE 235 2. Do komórki o adresie A2 wpisać następującą formułę: =DMDDE|DATA!FIX.DDE_AR1.A_CV C. Wykonać aplikację w systemie iFIX: 236 1. Na rysunku DDE.grf umieścić wyświetlacz cyfrowy. W polu Source wyświetlonego okna dialogowego Datalink wprowadzić: DDE_AR1. 2. Kliknąć przycisk OK i w procesowej bazie danych wprowadzić blok typu Analog Register o nazwie DDE_AR1. Skonfigurować go tak, jak przedstawiono na poniższym rysunku (na karcie Advanced zaznaczyć pole wyboru Enable Output): 3. Po wybraniu wyświetlacza cyfrowego dla DDE_AR1 skorzystać z eksperta Data Entry Expert w pasku narzędzi Toolbox, by umożliwić zmianę wartości bloku DDE_AR1 przy pomocy suwaka. 4. Do tworzonej aplikacji wprowadzić obiekty tekstowe przedstawione na rysunku prezentującym zadanie do wykonania. W tym celu należy skorzystać z przycisku Text z paska narzędzi Toolbox. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA D. Przetestować działanie aplikacji. 1. Do bloku DDE_AR1 wprowadzić wartość 79 przy pomocy suwaka wyświetlanego po kliknięciu jego wyświetlacza cyfrowego. 2. W komórce A2 arkusza kalkulacyjnego zaobserwować pojawienie się wartości 79. Rozdział 13: Protokół komunikacyjny DDE 237 14 KONFIGUROWANIE SYSTEMU IFIX System iFIX uruchamia się przy pomocy pliku Launch.exe. Program ten w przypadku uruchomienia go bez żadnego parametru korzysta z ustawień w rejestrach systemu Windows. Uruchamia on więc system iFIX w takiej konfiguracji, jaka była zastosowana przy poprzednim uruchomieniu tego systemu. Najczęściej jednak program Launch.exe uruchamiany jest z parametrem – nazwą pliku konfiguracyjnego, który określa sposób lokalnej konfiguracji węzła. Plik ten zawiera informacje dotyczące opcji i programów, które mają być uruchomione w lokalnym węźle, włączając w to następujące dane: gdzie znaleźć pliki aktualnie otwieranego projektu, jak obsługiwać alarmy, z którymi węzłami w sieci nawiązać połączenie, jakie drajwery We/Wy załadować, jakie programy uruchomić przy starcie systemu, w jaki sposób korzystać z systemu ochrony, z jakimi systemami baz danych się łączyć, które opcje SCADA zastosować, którą procesową bazę danych załadować. W celu utworzenia takiego pliku konfiguracyjnego o rozszerzeniu .scu korzysta się z programu Konfigurowanie systemu – SCU.EXE, który można uruchomić, stosując jeden z poniżej podanych sposobów: Wybrać polecenie Programy z menu przycisku Start, a następnie grupę programów Proficy HMI SCADA – iFIX 5.0 i program Konfiguracja systemu. W programie WorkSpace w drzewie systemu w folderze Konfiguracja systemu wybrać polecenie Konfigurowanie systemu. W programie WorkSpace na wstążce Aplikacje kliknąć ikonę programu SCU w grupie programów System i ochrona. Kliknąć ikonę programu Konfigurowanie systemu na pulpicie systemu Windows, o ile taka została przygotowana przez użytkownika. Uwaga: Program Konfigurowanie systemu można uruchomić przed uruchomieniem systemu iFIX. W praktyce na jednym komputerze umieszcza się więcej jak jedną aplikację – projekt systemu iFIX. Systemy do wizualizacji i sterowania procesami przemysłowymi są ciągle modyfikowane. W związku z tym często na pulpicie systemu Windows umieszcza się dwie ikony programu Launch.exe. Jedna z nich uruchamia poprzednią wersję projektu, już przetestowanego w ciągu długiego okresu eksploatacji oraz ikonę aplikacji zmodyfikowanej. W przypadku niepoprawnego działania nowej wersji oprogramowania operator ma możliwość szybkiego przełączenia się na poprzednią wersję. Rozdział 14: Konfigurowanie systemu iFIX 239 Często też zdarza się, że programista pracuje nad kilkoma projektami i potrzebuje na jednym komputerze uruchamiać kolejno różne aplikacje systemu iFIX. W takiej sytuacji projekty powinny być przechowywane w oddzielnych folderach i uruchamiane przy pomocy odpowiednich ikon na pulpicie systemu Windows. 240 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 14.1 Ćwiczenia 14.1.1 Zarządzanie dwoma projektami systemu iFIX na tym samym komputerze Cel: Zapoznanie się ze sposobem konfigurowania systemu iFIX w celu uruchomienia na jednym komputerze kilku projektów systemu iFIX. Zadanie: Utworzyć nowy projekt systemu iFIX w folderze C:\Aplika\Cw_iFIX. Umieścić na pulpicie dwie ikony do uruchamiania wersji standardowej systemu iFIX i nowo-utworzonego projektu oraz przy pomocy tych ikon kolejno uruchomić te projekty. Aby zrealizować powyższe zadanie, należy wykonać następujące czynności: A. Utworzyć foldery nowego projektu z domyślnymi plikami: 1. Przy zamkniętym systemie iFIX uruchomić program System Configuration przez wybranie polecenia Programy z menu przycisku Start, grupy programów Proficy HMI SCADA – iFIX 5.0 i polecenia System Configuration. 2. W programie System Configuration w menu Configure wybrać polecenie Paths. Rozdział 14: Konfigurowanie systemu iFIX 241 3. W wyświetlonym oknie Path Configuration w polu Project wprowadzić: C:\APLIKA\CW_IFIX i kliknąć przycisk Change Project. 242 4. Wyświetlone zostanie okno przedstawione poniżej. W tym oknie należy kliknąć przycisk Yes w celu wygenerowania domyślnych plików w nowym projekcie. 5. W oknie Path Configuration należy kliknąć przycisk OK i w wyświetlonym oknie SCU kliknąć przycisk Create All. Przycisk ten stosowany jest do utworzenia odpowiednich folderów i później skopiowania do nich odpowiednich plików. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 6. W kolejnym wyświetlonym oknie SCU należy kliknąć przycisk kontynuacji Proceed. Uwaga: Plikowi bazy danych z rozszerzeniem .PDB systemu iFIX towarzyszy plik stref alarmowania AlarmAreas.AAD. Gdy użytkownik przeniesie bazę danych systemu iFIX na inny komputer bez pliku towarzyszącego AlarmAreas.AAD system iFIX przy starcie będzie wyświetlał informację o błędzie. W takim przypadku należy wyeksportować bazę danych i dwukrotnie ją zaimportować w programie Database Manager do pustej bazy danych. Następnie bazie tej można nadać nową nazwę. Po usunięciu pliku starej bazy danych z dysku twardego można zmienić nazwę utworzonej bazy danych na nazwę starej bazy danych. 7. Przy pomocy programu Eksplorator systemu Windows sprawdzić, czy został utworzony folder C:\Aplika\Cw_iFIX, a w nim foldery tworzonego projektu. Folder Local powinien zawierać domyślne pliki projektu. Uwaga: W przypadku problemów, należy przekopiować do folderu C:\Aplika\CW_IFIX z folderu C:\Program Files\GE Fanuc\Proficy iFIX, gdzie domyślnie instalowany jest system iFIX, następujące foldery: Local, który zawiera pliki konfiguracyjne, Htr, który przechowuje pliki konfiguracyjne dotyczące wykresów historycznych, HtrData, który zawiera pliki z danymi historycznymi, PIC, który stosowany jest do przechowywania plików rysunków, PDB, który zawiera plik procesowej bazy danych systemu iFIX. W większości przypadków pozostałych folderów nie trzeba kopiować. 8. Zapisać ustawienia skonfigurowane przy pomocy programu System Configuration do pliku C:\Aplika\Cw_iFIX\LOCAL\FIX.SCU przez wybranie polecenia Save As... w menu File oraz w ewentualnie wyświetlonym oknie SCU informującym, że kliknięcie przycisku Yes zmodyfikuje rejestry systemu Windows, wybrać przycisk Yes. 9. W głównym oknie programu System Configuration w wyświetlonym monitorze dwukrotnie kliknąć nazwę VIXKURS umieszczoną po etykiecie PDB. Rozdział 14: Konfigurowanie systemu iFIX 243 10. W wyświetlonym oknie Database Definition wprowadzić domyślną nazwę procesowej bazy danych DATABASE i kliknąć przycisk OK. 11. W oknie SCU kliknąć przycisk Yes. 12. W głównym oknie programu System Configuration w wyświetlonym monitorze dwukrotnie kliknąć nazwę FIX umieszczoną po etykiecie NODE. 244 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 13. Skonfigurować uruchamianie systemu iFIX zgodnie z danymi przedstawionymi w oknie Local Startup Definition. W polu Configuration File wprowadzić nazwę pliku konfiguracyjnego wraz z podaniem jego lokalizacji przy pomocy przycisku z trzema kropkami. Kliknąć przycisk OK. Uwaga 1: W przypadku wprowadzenia nazwy pliku konfiguracyjnego, który jest aktualnie tworzony i jeszcze nie istnieje na dysku twardym w wyświetlonym oknie ostrzegawczym w odpowiedzi na pytanie: Proceed anyway? należy kliknąć przycisk Yes. Uwaga 2: Nazwa Local Logical Name stosowana jest w przypadku konfiguracji serwerów SCADA pracujących w redundancji. 14. Zapisać wprowadzone zmiany do pliku konfiguracyjnego przy pomocy polecenia Save As w menu File i zamknąć program System Configuration. B. Na pulpicie systemu Windows utworzyć ikonę dla zainstalowanego systemu iFIX: 1. Przy zamkniętym systemie iFIX kliknąć ikonę iFIX 5.0. 2. W otwartym oknie Proficy iFIX Startup w polu Node Name wprowadzić nazwę węzła FIX, a w polu SCU File przy pomocy przycisku z trzema kropkami obok tego pola nazwę pliku konfiguracyjnego wraz ze ścieżką określającą miejsce zainstalowania systemu iFIX, domyślnie: C:\Program Files\GE Fanuc\Proficy iFIX\Local\FIX.SCU. Rozdział 14: Konfigurowanie systemu iFIX 245 3. W oknie Proficy iFIX Startup w obszarze Desktop Shortcut kliknąć przycisk przedstawiony na poniższym rysunku w celu utworzenia na pulpicie skrótu umożliwiającego otwarcie projektu systemu iFIX z domyślnymi folderami. 4. W wyświetlonym oknie wprowadzić nazwę dla tworzonego skrótu i kliknąć przycisk z napisem Create. Na pulpicie systemu Windows zostanie utworzona następująca ikona skrótu. 246 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA 5. Kliknąć ikonę prawym przyciskiem myszy i wybrać polecenie Właściwości. Wybrać kartę Skrót i zwrócić uwagę na informację w polu Element docelowy: "C:\Program Files\GE Fanuc\Proficy iFIX\launch.exe" /sC:\PROGRA~1\GEFANU~1\PROFIC~2\LOCAL\FIX.SCU /nFIX /lFIX Konfigurowana ikona będzie uruchamiać program Launch.EXE umieszczony w folderze C:\Program Files\GE Fanuc\Proficy iFIX. Program Launch.EXE wywoływany jest z trzema parametrami: /s /n oraz /l. Pierwszy z tych parametrów określa nazwę pliku konfiguracyjnego systemu iFIX wraz z określeniem jego lokalizacji, drugi nazwę węzła, a trzeci logiczną nazwę węzła stosowaną w redundancji. C. Na pulpicie systemu Windows utworzyć ikonę dla nowego projektu: 1. W oknie Proficy iFIX Startup w polu Node Name wprowadzić nazwę węzła FIX, a w polu SCU File przy pomocy przycisku z trzema kropkami obok tego pola nazwę pliku konfiguracyjnego dla nowego projektu: C:\Aplika\Cw_iFIX\Local\FIX.SCU. Rozdział 14: Konfigurowanie systemu iFIX 247 2. W oknie Proficy iFIX Startup w obszarze Desktop Shortcut kliknąć przycisk przedstawiony na poniższym rysunku w celu utworzenia na pulpicie skrótu umożliwiającego otwarcie nowego projektu. 3. W wyświetlonym oknie wprowadzić nazwę dla tworzonego skrótu i kliknąć przycisk z napisem Create. Na pulpicie systemu Windows zostanie utworzona następująca ikona skrótu. D. Przetestować działanie obu utworzonych ikon: 248 1. Kliknąć ikonę iFIX 5.0 Standard – powinien zostać uruchomiony system iFIX z domyślnymi, instalacyjnymi ścieżkami do folderów. Ścieżki te można wyświetlić w programie System Configuration po wybraniu w menu Configure polecenia Paths. 2. Po zamknięciu systemu iFIX kliknąć ikonę Ćwiczenia iFIX – powinien zostać uruchomiony projekt system iFIX ze ścieżką projektu C:\Aplika\CW_IFIX. 3. Ponowne kliknięcie ikony iFIX 5.0 Standard powinno uruchomić system iFIX z domyślnymi, instalacyjnymi ścieżkami do folderów. Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA OD AUTORA Gratuluję wszystkim Czytelnikom, którzy dotarli do tej strony i polecam kolejny mój podręcznik „Zagadnienia zaawansowane systemów SCADA – Proficy HMI/SCADA iFIX 5.0 EN” i dalsze samokształcenie przez zapoznanie się z Podręcznikami elektronicznymi i Systemem pomocy pakietu Proficy HMI/SCADA iFIX. Jestem przekonany, że po przerobieniu ćwiczeń z niniejszego podręcznika poznanie obszernej dokumentacji technicznej systemu iFIX będzie znacznie łatwiejsze. Systemy SCADA rozwijają się bardzo dynamicznie i oferują coraz więcej funkcji, które pomagają w sterowaniu procesami przemysłowymi. Ze względu na ograniczoną objętość podręcznika przedstawiłem tylko najbardziej istotne zagadnienia z punktu widzenia praktyki inżynierskiej, jak również nauczania systemów SCADA. W poniższych dwóch załącznikach opisałem w skrócie aplikację REAKTOR i podałem parę informacji o przemysłowej bazie danych PROFICY HISTORIAN, z której może korzystać system iFIX. Przemysłowa baza danych PROFICY HISTORIAN sprawdziła się w wielu aplikacjach sieciowych przez szybkie udostępnianie danych w Internecie, integralność danych i ich duże upakowanie. Na zakończenie życzę wszystkim Czytelnikom niniejszego podręcznika sukcesów i zadowolenia w tworzeniu przemysłowych aplikacji SCADA. Rozdział 14: Konfigurowanie systemu iFIX 249 ZAŁĄCZNIK 1: APLIKACJA REAKTOR Reaktor chemiczny jest powszechnie stosowanym urządzeniem, szczególnie w przemyśle chemicznym. Jest to zbiornik służący do przeprowadzenia reakcji chemicznej lub mieszania dwóch płynów. Z reguły płyny trudno wchodzą w reakcje w niskich temperaturach, więc konieczne jest ich podgrzanie wewnątrz reaktora według wcześniej ustalonego profilu temperatury, utrzymanie temperatury przez zadany okres czasu, a następnie schłodzenie do temperatury początkowej. Oprogramowanie VIXKurs umożliwia symulację statycznych i dynamicznych własności procesów zachodzących w przykładowym reaktorze oraz jego sterowanie. 1. OPIS REAKTORA Wewnątrz reaktora znajdują się następujące elementy: czujnik pomiaru aktualnego poziomu płynu w reaktorze – H, dający sygnał wyjściowy panelu oznaczony symbolem AI1, czujnik pomiaru aktualnej wartości temperatury płynu w reaktorze – T, dający sygnał wyjściowy panelu oznaczony symbolem AI2, mieszadło wprawiane w ruch przez silnik M załączany sygnałem Q6. Mieszadło Q6 Płyn PA Płyn PB M Q1 V1 Q2 V2 PA PB AI1 AI2 Aktualny poziom w reaktorze H Aktualna temp. w reaktorze T V5 AV2 V3 AV1 V4 Odpływ medium grzewczego Dopływ medium grzewczego HI CI CO PC HO Dopływ medium chłodzącego Odpływ medium chłodzącego AQ2 Q3 AQ1 Q4 Q5 Odpływ produktu Rys. 1.1 Schemat ideowy reaktora Załącznik 1: Aplikacja Reaktor 251 Doprowadzenie płynów do reaktora odbywa się przy pomocy dwóch zaworów dwupołożeniowych: zawór V1 (sygnał sterujący Q1) - doprowadzenie płynu PA, zawór V2 (sygnał sterujący Q2) - doprowadzenie płynu PB. Temperatura płynów dopływających do reaktora jest stała i wynosi 5oC. Odprowadzenie produktu końcowego (oznaczenie PC) odbywa się przez otwarcie zaworu AV1 (sygnał sterujący AQ1). Jest to zawór analogowy umożliwiający płynną (ciągłą) zmianę przepływu odprowadzanego produktu końcowego. Reaktor chemiczny otoczony jest płaszczem umożliwiającym ogrzewanie lub chłodzenie płynów znajdujących się w reaktorze poprzez włączenie układu doprowadzającego do płaszcza odpowiednio czynnik grzewczy lub chłodzący. Przepływ medium grzewczego odbywa się tylko i wyłącznie, gdy otwarte są jednocześnie dwa zawory: zawór analogowy AV2 na dopływie (sygnał sterujący AQ2) i zawór dwupołożeniowy V5 na odpływie (sygnał sterujący Q5). Zawór AV2 umożliwia płynną (ciągłą) regulację ilości medium grzewczego przepływającego przez płaszcz reaktora. Dopływ medium grzewczego oznaczono symbolem HI, a odpływ HO. Przepływ medium chłodzącego odbywa się tylko wtedy, gdy otwarte są równocześnie zawory dwupołożeniowe V3 na dopływie (sygnał sterujący Q3) i V4 na odpływie (sygnał sterujący Q4). Dopływ medium chłodzącego oznaczono symbolem CI, a wypływ CO. 2 ZADANIE STEROWANIA Program sterujący powinien umożliwiać realizację kolejnych faz procesu w następującej kolejności: Napełnianie reaktora – Faza 1 Zbiornik należy napełnić dwoma płynami (PA i PB). W tym celu należy otworzyć zawory V1 i V2 oraz zamknąć zawór AV1. Po osiągnięciu przez poziom wartości zadanej oba zawory napełniające należy zamknąć. Grzanie i stabilizacja temperatury płynu w reaktorze – Faza 2 W celu umożliwienia podgrzania zawartości reaktora należy otworzyć zawór V5. Wtedy zmiana temperatury płynu w reaktorze odbywa się przy pomocy zaworu analogowego AV2, który umożliwia płynną zmianę przepływu medium grzewczego. Temperatura produktu powinna zmieniać się zgodnie z zadaną krzywą, aż do osiągnięcia temperatury zadanej Tzad , a następnie powinna być stabilizowana przez określony czas tr. Grzanie i stabilizację temperatury w reaktorze należy zrealizować z zastosowaniem regulatora PID o nastawach dobranych metodą odpowiedzi skokowej dla reguł Zieglera – Nicholsa. W fazie tej powinno pracować również mieszadło. 252 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA H(t) Hzad T(t) t tr Tzad zadana krzywa Faza 1 Faza2 Faza3 Faza4 t Rys. 2.1 Przebieg czasowy poziomu i temperatury w reaktorze Chłodzenie produktu – Faza 3 Po upłynięciu zadanego czasu stabilizacji temperatury należy zamknąć zawory na przepływie medium grzewczego oraz otworzyć zawory V3 i V4 na przepływie medium chłodzącego. Faza chłodzenia powinna kończyć się z chwilą osiągnięcia przez produkt temperatury jaką miał on przed podgrzaniem. Opróżnianie reaktora – Faza 4 Opróżnianie reaktora odbywa się przez otwarcie zaworu analogowego AV1. Należy przewidzieć możliwość pracy systemu w jednym z trzech trybów: Praca krokowa - kolejne fazy procesu wykonywane są przez uaktywnienie odpowiedniego wejścia sterownika I1 - I4; Jeden cykl - w przypadku, gdy uaktywnione zostanie wejście I5, wszystkie cztery fazy zostaną wykonane jeden raz w odpowiedniej kolejności; Praca automatyczna - w przypadku, gdy uaktywnione zostanie wejście I6, wszystkie fazy procesu wykonywane są po kolei i po zakończeniu ostatniej fazy, tj. fazy opróżniania program automatycznie przechodzi do fazy napełniania. Pracę w trybie automatycznym można przerwać przez naciśnięcie przycisku STOP, gdy wartość sygnału I6 wynosi zero. Załącznik 1: Aplikacja Reaktor 253 3 OBSŁUGA EKRANU REAKTOR Rys. 3.1 Panel symulatora reaktora Reaktor w trybie pracy Symulator umożliwia demonstrację pracy panelu dydaktycznego ET722. Model reaktora i proces sterowania jest realizowany przy pomocy skryptów pakietu iFIX. W trybie pracy Symulator proces uruchamiany jest w cyklu automatycznym. Reaktor jest cyklicznie napełniany, grzany, chłodzony i opróżniany. Użytkownik może w każdej chwili zatrzymać proces przez kliknięcie przycisku STOP i sterować reaktorem przy pomocy dostępnych przycisków. Przyciski N, G, C i O służą do uruchamiania kolejnych faz pracy reaktora: N – Napełnianie, G – Grzanie i stabilizacja temperatury, C – Chłodzenie, O – Opróżnianie. Przycisk CYKL umożliwia wykonanie czterech faz pracy reaktora po jednokrotnym kliknięciu tego przycisku. 254 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA Przycisk AUTO włącza tryb pracy automatycznej. Fazy wykonywane są kolejno, a po wykonaniu ostatniej fazy realizowana jest faza pierwsza. Do zatrzymania procesu należy użyć przycisku STOP. Gdy proces jest zatrzymany, to wtedy użytkownik może otwierać lub zamykać zawory dwustanowe przez kliknięcie przyciskiem myszy na symbolu zaworu (od V1 do V5). Podobny efekt uzyskuje się przez kliknięcie symbolu zaworu (zielone kółko). Zielony kolor oznacza, że zawór jest otwarty. Czarny kolor kółka w symbolu zaworu oznacza, że zawór jest zamknięty. Kliknięcie symbolu M powoduje włączenie lub wyłączenie Mieszadła. Stopień otwarcia zaworu AV1 lub AV2 można zmieniać przy pomocy suwaków umieszczonych obok tych zaworów analogowych. Dwukrotne kliknięcie wyświetlacza cyfrowego nad słupkiem przedstawiającym stopień otwarcia zaworu AV1 lub AV2 umożliwia również ręczne sterowanie stopniem otwarcia tych zaworów analogowych. Wartość zadaną poziomu płynu w reaktorze Hzad określa się przy pomocy suwaka lub przez wprowadzenie wartości liczbowej po szybkim dwukrotnym kliknięciu wyświetlacza cyfrowego umieszczonego nad słupkiem przedstawiającym aktualną wartość zadaną poziomu. Wartość zadaną temperatury płynu w reaktorze Tzad określa się przy pomocy suwaka lub przez wprowadzenie wartości liczbowej po szybkim dwukrotnym kliknięciu wyświetlacza cyfrowego umieszczonego nad słupkiem przedstawiającym aktualną wartość zadaną temperatury. Przycisk RESET zamyka wszystkie zawory, przerywa wykonywanie wszystkich faz, opróżnia reaktor i ustawia na zero aktualną temperaturę w reaktorze. Kliknięcie napisu Inputs PLC wyświetla nazwy wszystkich sygnałów wejściowych dla algorytmów sterowania, kliknięcie napisu Outputs PLC wyświetla nazwy wszystkich sygnałów wyjściowych algorytmów sterowania. Napis Markers PLC umożliwia wyświetlenie aktualnej fazy, w której znajduje się reaktor. U dołu ekranu umieszczono dwa wiersze przycisków, które przy pomocy innych ekranów umożliwiają dokładne śledzenie procesów zachodzących w reaktorze oraz obsługę aplikacji. 4 LISTA ZMIENNYCH Poniższa tabela zawiera nazwy zmiennych użytych w aplikacji VIXKurs: TAG DESCRIPTION BLOCK I/O DEVICE TYPE AI1 AI2 AV1_AI AV2_AI FKS2_SO2 H_AI HZAD_AI T_AI Zmienna testowa Zmienna testowa Stopień otwarcia zaworu spustu AV1 Stopień otwarcia zaworu grzania AV2 Emisja SO2 Poziom aktualny w reaktorze Wartość zadana poziomu Temperatura aktualna w reaktorze AI AI AI AI AI AI AI AI I/O ADDRESS SIM SIM SIM SIM SIM SIM SIM SIM Załącznik 1: Aplikacja Reaktor 200 201 2 3 14 4 6 5 255 TZAD_AI ALARMY_NIEPOTW ALARMY_POTW AR1 AV1 AV2 H HZAD NRPROGPLC T TZAD DI1 U FKS2_POZAR REJ_REAK W_PUSTY G REJESTRUJDANE ST_C V5 V4 V3 AUTO C CYKL M M_START M_START_POTW M_STOP M_STOP_POTW N O V1 V2 ST_AUTO STOP ST_O ST_STOP ST_CYKL ST_G ST_N W_V1 W_V2 W_V3 256 Wartość zadana temperatury Stopień otwarcia zaworu spustu AV1 Stopień otwarcia zaworu grzania AV2 Poziom aktualny w reaktorze Wartość zadana poziomu Numer programu w sterowniku Temperatura aktualna w reaktorze Wartość zadana temperatury Brak napięcia w stacji FKS2 Pożar w stacji FKS2 Rejestruje dane z Reaktora Chemicznego Zmienna do wykresów historycznych Włączenie grzania i stabiliz. temp. Rejestruje dane do wykresów historycznych Faza chłodzenia Sterowanie na odpływie medium grzejącego Sterow. na odpływie medium chłodzącego Sterow. na dopływie medium chłodzącego Włączenie pracy automatycznej Włączenie fazy chłodzenia Włączenie jednego pełnego cyklu Sterowanie mieszadłem Włączenie fazy napełniania Włączenie fazy opróżniania Sterowanie dopływem produktu PA Sterowanie dopływem produktu PB Praca automatyczna Wyłączenie faz i zaworów Faza opróżniania Wyłączanie faz i zaworów Wykonywanie cyklu Faza grzania i stabiliz. temp. Faza napełniania Sterowanie dopływem produktu PA Sterowanie dopływem produktu PB Sterow. na dopływie medium chłodzącego Ryszard Jakuszewski: AI AR AR AR AR AR AR AR AR AR AR DI DI DI DI SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM 7 C:UTOT C:ATOT 200 2 3 4 6 12 5 7 202:00:00 13:09 13:10 00:01 DI DR DR SIM SIM SIM 00:00 10:09 00:01 DR DR SIM SIM 08:02 10:04 DR SIM 10:03 DR SIM 10:02 DR DR DR DR DR DR DR DR DR DR DR DR DR DR DR DR DR DR DR CA CA CA SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM V1.F_CV V2.F_CV V3.F_CV 10:13 10:10 10:12 10:05 10:06 11:00 10:07 11:01 10:08 10:11 10:00 10:01 08:05 10:14 08:03 08:06 08:04 08:01 08:00 10 10 10 Podstawy Programowania Systemów SCADA W_V4 PARA_CA W_V5 W_M HZAD_ETR H_ETR TZAD_ETR T_ETR AV2_ETR AV1_ETR W_V1_ETR W_V2_ETR W_V3_ETR W_V4_ETR W_V5_ETR W_M_ETR PG_GRAJ_ALARM S1 SA1 SB1 SC1 Sterow. na odpływie medium chłodzącego Sterowanie na odpływie medium grzejącego Sterowanie mieszadłem Odtwarza plik dźwiękowy CA V4.F_CV 10 CA CA V5.F_CV V5.F_CV 10 CA ETR ETR ETR ETR ETR ETR ETR ETR ETR ETR ETR ETR PG DR DR DR DR GE9 GE9 GE9 GE9 Załącznik 1: Aplikacja Reaktor PLC1:S1 PLC1:SA1 PLC1:SB1 PLC1:SC1 257 ZAŁĄCZNIK 2: PRZEMYSŁOWA BAZA DANYCH – PROFICY HISTORIAN Załącznik 2: Przemysłowa baza... 259 260 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA Załącznik 2: Przemysłowa baza... 261 262 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA Załącznik 2: Przemysłowa baza... 263 264 Ryszard Jakuszewski: Podstawy Programowania Systemów SCADA Ryszard JAKUSZEWSKI Zagadnienia Zaawansowane Programowania Systemów SCADA SUPERVISORY CONTROL AND DATA ACQUISITION Proficy HMI/SCADA iFIX 5.0 EN Skrócony spis treści podręcznika ”Zagadnienia Zaawansowane Programowania Systemów SCADA” 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Diagnostyka systemu iFIX System ochrony Windows, a iFIX Receptury systemu iFIX Obiekty VisiconX Archiwizacja alarmów i zdarzeń w relacyjnej bazie danych - Usługa Alarm ODBC Podpisy elektroniczne Zagadnienia związane z kontrolkami ActiveX Serwery OPC i klient OPC w systemie iFIX Aplikacja - Lokalizator odwołań Optymalizacja wyświetlania rysunków Narzędzia dodane do ostatnich wersji iFIX Elementy FIX Desktop i jego współpraca z iFIX Zaawansowane bloki bazy danych – SQT i SQD Raportowanie produkcji przy pomocy języka VBA z baz danych poprzez drajwery ODBC Rozwiązania sieciowe - (redundancja serwerów SCADA, serwer terminali, zabezpieczenia sieciowe) Visual Basic for Applications NOTATKI: …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... 271 NOTATKI: …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... 272 NOTATKI: …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... 273 NOTATKI: …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... 274 NOTATKI: …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... 275 NOTATKI: …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... 276 NOTATKI: …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... 277 NOTATKI: …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... …………………………………………………………………………………………………... 278