23
Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Kierunek: Automatyka i Robotyka –rok 1 2013/2014 ____________________________________ Projekt: Wielopoziomowe struktury sterowania i systemy SCADA Temat: System Batch w SCADa - zenon _____________________________________ Piotr Smaroń Jerzy Lasyk Rafał Płatek Prowadzący: Prof. dr hab. inż Witold Byrski Mgr. inż Andrzej Latocha Kraków, styczeń 2014

System Batch w SCADa Zenon

Embed Size (px)

DESCRIPTION

Sprawozdanie

Citation preview

Page 1: System Batch w SCADa Zenon

Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej

Kierunek: Automatyka i Robotyka –rok 1 2013/2014

____________________________________Projekt: Wielopoziomowe struktury

sterowania i systemy SCADA

Temat: System Batch w SCADa - zenon _____________________________________ Piotr Smaroń

Jerzy Lasyk

Rafał Płatek

Prowadzący:

Prof. dr hab. inż Witold ByrskiMgr. inż Andrzej Latocha

Kraków, styczeń 2014

Dante
Note
za minusem spacja
Dante
Note
to by się przydało do jednej linijki zmieścić
Page 2: System Batch w SCADa Zenon

1. Cel projektuPodstawowym celem projektu jest wykonanie w oprogramowaniu zenon aplikacji

przedstawiającej sterowanie produkcją z wykorzystaniem systemu zarządzania recepturami.

Wykonana aplikacja powinna w pełni wykorzystywać dostępne w programie zenon narzędzia,

służące do pracy z recepturami. Poza aplikacją efektem projektu powinno być także

dokumentacja dzięki, której inni użytkownicy tego oprogramowania będą mogli zdobyć

potrzebą wiedzę do budowy własnych aplikacji. W ramach projektu przedstawiona zostanie

także strona teoretyczna związana z produkcją wsadową (batch production).

2. Produkcja wsadowa (Batch Production) W procesie produkcji wsadowej (Batch production) obiekt będący przedmiotem

produkcji jest tworzony krok po kroku na rożnych stacjach

roboczych, istnieje możliwość wykorzystania różnych

receptur wykonywania produktu [1]. Produkcja batchowa

jest jedną z trzech głównych metod produkcji obok produkcji

masowej (ciągłej) oraz indywidualnej.

Rodzaje produkcji [3]: *zródła rysunku wikipedia

− Produkcja indywidualna (Job production) – każdy produkt jest wykonywany

indywidualnie. Przed rozpoczęciem produkcji kolejnego produktu wykonanie

poprzedniego musi być ukończone.

− Produkcja wsadowa (Batch production) – w tym przypadku grupa produktów jest

wytwarzana w tym samym czasie. Przykładem jest piekarnia wykonująca partię

chlebów. Wszystkie wchodzące w skład tej jednej partii są wykonywane jednocześnie

i według tej samej receptury.

− Produkcja ciągła – jest to produkcja identycznych produktów z wykorzystaniem linii

produkcyjnej. Pracownicy w tym przypadku mają bardzo wyspecjalizowane zadania

polegające na wykonaniu tych samych czynności na każdym produkowanym obiekcie.

Produkcja wsadowa (batch production) jest często spotykanym sposobem produkcji

w wielu gałęziach przemysłu (chemicznym, spożywczym czy farmaceutycznym) [2].

Podstawą tego rodzaju produkcji jest właściwie dozowanie składników produktu (najczęściej

do mieszalnika, reaktora lub innego zbiornika). Dodawanie składników może odbywać się

Dante
Note
przecinek przed "dzięki"
Dante
Note
3 razy powtarzasz to samo - zostaw Batch Production tylko w tytule 2 rozdziału
Dante
Note
reszta zdania od przecinka jakoś nie pasuje do całości. Wstaw może średnik, albo rozwiń następne zdanie. Dodaj, co to są receptury - "zapisany zestaw wartości zmiennych" - albo że dalej jest wyjaśnione, czym są
Dante
Note
Ja nigdy takiego opisu Rysunku nie widziałem. Jeśli jest dobry, czy nie powinno być "źródło", a nie "źródła"?
Dante
Note
nie powtarzaj wszędzie tej angielskiej nazwy
Page 3: System Batch w SCADa Zenon

w określonej kolejności lub być wykonywane jednocześnie przy zachowaniu proporcji

zawartych w recepturze. Oprócz dozowania w trakcie produkcji mogą być wykonywane inne

czynności z udziałem składników lub wytwarzanego produktu. Przykłady takich czynności to

podgrzewanie, chodzenie czy też mieszanie. W przypadku gdy produkcja odbywa się

jednocześnie na kilku stanowiskach, system obsługujący proces produkcyjny musi zapewnić

odpowiednią dostępność składników, drogę dozowania, wzajemne blokady, ewentualnie

zbiorniki pomocnicze. Kolejnym zadaniem jest kontrola stanów magazynowych. System taki

powinien zapewnić ciągłość produkcji. W przypadku prowadzenia produkcji substancji

niebezpiecznych lub w warunkach zagrożenia (skażenie chemiczne, wybuch) system

automatyki odpowiedzialny za proces powinien spełniać dodatkowe wymogi bezpieczeństwa.

Cechy produkcji wsadowej [1] [4]:

− wytwarzanie różnych produktów na tej samej linii produkcyjnej

− redukcja kosztów związanych z rozpoczęciem produkcji – nie ma potrzeby

budowy/zakupu linii produkcyjnej dla każdego produktu z osobna

− wiedza o tym jak ma być wykonany produkt zawarta w recepturze

− produkcja małych ilości produktu – proces produkcji nie jest ciągły

− konieczność przerw w produkcji w przypadku zmiany receptury – przestrojenie

maszyn, czyszczenie zbiorników czy też wymiana składników

Produkcję wsadową najlepiej stosować gdy [1] [4]:

− wytwarzane są różne produkty na tej samej linii

− często wprowadzane są nowe produkty

− produkcja jest optymalizowana, a tym samym zmiany w sposobie wytwarzania

produktu mogą być dość częste

− produkty są projektowane i modyfikowane przez personel pracujący przy produkcji

− chcemy mieć możliwość uruchomienia produkcji na różnych instalacjach

przemysłowych

− nie ma możliwości na budowę specjalizowanej linii produkcyjnej dla każdego

z wytwarzanych produktów

− wytwarzane są produkty sezonowe

Dante
Note
przecinek po "oprócz dozowania"
Dante
Note
chŁodzenie
Dante
Note
odnośniki rozdzielone przecinkiem
Dante
Note
to wyliczenie to jedno długie zdanie, więc każda linijka powinna kończyć się przecinkiem
Dante
Note
wiedza o tym, przecinek
Dante
Note
kropa
Dante
Note
odnośniki rozdzielone przecinkiem
Dante
Note
to wyliczenie to jedno długie zdanie, więc każda linijka powinna kończyć się przecinkiem
Page 4: System Batch w SCADa Zenon

Zastosowania produkcji wsadowej [4]:

− przemysł farmaceutyczny

− biotechnologia

− przemysł lakierniczy (farby, lakiery, barwniki)

− środki ochrony roślin

− przemysł spożywczy

− produkcja środków czystości

− przemysł chemiczny

*zródła zdjęć wikipedia

3. Oprogramowanie zenonW projekcie wykorzystane zostało

oprogramowanie zenon wykonane przez firmę

COPA - DATA [5]. zenon stanowi rodzinę produktów służąca do nadzorowania przebiegu

procesów (SCADA), wizualizacji procesów oraz wyposażoną w system interfejsu

użytkownika (Human Machine Interface). W ramach oprogramowania zenon firma COPA-

DATA wprowadziła kilka innowacyjnych rozwiązań w dziedzinie HMI/SCADA. Wśród nich

należy wymienić circular redundancy (redundancja kołowa – zwiększająca bezpieczeństwo

poprzez wymaganie do każdego projektu serwera oraz serwera zapasowego) oraz system

Multitouch (pozwalający na szybka i bezpieczną obsługę interfejsów HMI).

Produkty zenon:

− zenon Anlyzer – narzędzie służące do raportowania produkcji

− zenon Supervisor – pełna wizualizacja i kontrola maszyn oraz urządzeń, możliwość

połączenia z innymi systemami (SAP, ERP)

Dante
Note
ą
Dante
Note
znowu te wyliczenia, przecinki i kropka na końcu
Dante
Note
tamto zdjęcie z wiki opisane, to nie?
Dante
Note
ten podpis dalej mi nie pasuje :)
Page 5: System Batch w SCADa Zenon

− zenon Logic – system programistyczny dla sterowników PLC – zgodny z IEC 61131-3

− zenon Operator – służący do obsługi maszyn oraz urządzeń sterujących

Cechy zenona w wersji 7.10 [6]:

− ulepszony moduł Batch Control – technologia dotykowa, integracja w Report Viewer

− Report Viewer – pełne i wszechstronne raportowanie produkcji

− ochrona elementów aplikacji w zenon Editor – niektóre elementy mogą zostać

zablokowane dla pewnych użytkowników

− import zmiennych z SIMANTIC STEP 7

− aplikacje na urządzenia przenośne

− wsparcie dla SQL Server 2012, Multi-Touch oraz Windows 8

− specjalizowane wersje dla sektora energetyki (zenon Energy Edition) oraz przemysłu

farmaceutycznego (zenon Pharma Edition)

4. Receptury w oprogramowaniu zenon

Receptury to zgrupowane akcje ustawiające wartości zmiennych, mogą być używane

do zapamiętywania wartości parametrów [7].

W Projekt Manager pod hasłem Recipes znajdują się dwie pozycje Standard Recipes

oraz Recipegroup Manager. Tworzenie nowej receptury odbywa się poprzez kliknięcie na

Standard Recipes i wybranie opcji New Recipe. W wyniku tego działania dodana zostanie

nowa receptura, automatycznie nadawana jest jej nazwa Recipe + numer porządkowy.

Zarówno nazwę jak i skład receptury można dowolnie modyfikować. Receptura tworzona jest

poprzez dodawanie kolejnych zmiennych oraz ustawianie ich wartości.

Rys. 4.1 Okno Properties nowej procedury

Paramenty receptury można zmieniać w oknie Properties. Można miedzy innymi użyć

narzędzi autoryzacji do ograniczenia dostępu do modyfikacji receptury.

Dante
Note
Project
Dante
Note
pozycje: dwukropek
Dante
Note
to interpunkcji się ogólnie nie przyczepiam, ale tutaj raczej średnik
Dante
Note
można można można
Page 6: System Batch w SCADa Zenon

Rys 4.2 Widok Projekt Manager z dodaną recepturą

Użytkowanie receptur odbywa się na dwa sposoby poprzez funkcje oraz poprzez

Recipe Screen. Po dodaniu receptury możemy kliknąć na nią i wybrać opcję Create standard

function. W dalszych krokach określamy względem której z utworzonych receptur funkcja ma

działać oraz jaką akcję ma wykonywać.

Rys. 4.3 Wybór receptury, z którą ma pracować funkcja

Rys. 4.4 Wybór akcji wykonywanej przez funkcję.

Dante
Note
project
Dante
Note
dwukropek (może Ci nie wydrukowało tego dwukropka w pdfie?)
Dante
Note
kropka
Page 7: System Batch w SCADa Zenon

Tworzona funkcja może wpisać wartości z receptury do aktualnych zmiennych, może również

odczytać wartości zmiennych i zapisać je do receptury, tym samym nadpisując ją, dostępna

jest także opcja wykonania duplikatu receptury.

Jeśli chcemy utworzyć ekran do zarządzania procedurami, możemy to zrobić dodając

nowy screen i wybierając dla niego Screen type – Standard recipes. Do tak utworzonego

ekranu możemy dodawać różnego rodzaju elementy służące do zarządzania procedurami.

Znajdują się one w Control elements, możemy dzięki temu dodać m.in. takie elementy jak

przyciski New Recipe, Edit Recipe, Add Variable, All Value--, Save Recipe. Jest także

możliwość skorzystania z gotowego szablonu ekranu do zarządzania procedurami. Aby

z niego skorzystać należy wybrać Control elements → Insert templete.. Aby podczas działania

aplikacji w zenon Runtime mieć dostęp do receptur utworzonych w projekcie należy

udostępnić je poprzez wprowadzenie odpowiednich zmian w ustawieniach projektu.

Rys. 4.5 Udostępnienie receptur dla Runtime

Gotowy ekran pozwala m.in. na dodawanie, edycję usuwanie receptur a także na dodawanie

zmiennych czy modyfikację ich wartości.

Dante
Note
średnik
Dante
Note
dwie kropki
Dante
Note
w projekcie, przecinek
Dante
Note
kropka
Dante
Note
receptur, przecinek
Page 8: System Batch w SCADa Zenon

Rys. 4.6 Ekran receptur w zenon Runtime.

Planista

Receptury mogą być także zarządzane poprzez planistę. Zarządzanie polega na

dodawaniu punktów przełączeń (lub przedziałów czasu z punktami na końcu i początku).

W punktach tych mogę być wywoływane funkcje odpowiedzialne za receptury. W ten sposób

można zautomatyzować przełączanie receptur.

Rys. 4.7 Ustawienie funkcji związanych z recepturami na początku i końcu przedziału czasu

Dante
Note
nie chce mi się już tego wspominać - zdania kończymy kropką, w podpisach rysunków też
Page 9: System Batch w SCADa Zenon

Rys. 4.8 Widok planisty z dodanymi punktami przełączeń

5. Opis realizacji projektuProjekt polegał na stworzeniu aplikacji wykorzystującej receptury. W naszym

przypadku procesem jest wytwarzanie napojów energetycznych 4 rodzajów: Tiger, Black,

Blow i RedBull. Każdy z tych napojów składa się z 5 składników: woda, cukier, dwutlenek

węgla, tauryna oraz aromaty. Proces produkcji przebiega w dwóch etapach. Pierwszym z nich

jest mieszanie 3 składników: wody, cukru oraz dwutlenku węgla w odpowiednich

proporcjach. Powstała mieszanka przepompowywana jest do następnego zbiornika, do

którego wlewane są tauryna i aromaty. Tutaj również następuje mieszanie składników ale już

w określonej dla każdego napoju temperaturze.

Realizacja projektu rozpoczęta została od utworzenia 3 okien: okna procesu, okna receptur

oraz panelu nawigacji. Na ekranie wyświetla się zawsze panel nawigacji z wybranym oknem

i wówczas drugie okno jest niewidoczne. Pozostawiony został również górny pasek alarmów,

domyślnie tworzony dla każdego projektu.

Panel nawigacji

Panel nawigacji jest to podłużne okno znajdujące się na spodzie ekranu. Umieszczone

zostały na nim trzy przyciski, spełniające następujące funkcje:

• Main window – służy do przełączenia widoku na okno procesu. Aby to zrobić,

należało utworzyć funkcję odpowiedzialną za pokazanie głównego okna. Następnie

funkcja ta została przypisana do przycisku poprzez wskazanie jej nazwy w jego

parametrach. Dodatkowo okno z przebiegiem procesu można włączyć poprzez

Dante
Note
uwaga końcowa - odnośnie naszej częsci projektu - w Twojej części akapity zaczynają się od wcięcia i nowej linii, u nas tylko od nowej linii
Page 10: System Batch w SCADa Zenon

wciśnięcie kombinacji klawiszy ALT+M. Ta możliwość również została

skonfigurowana w opcjach przycisku.

• Recipes – przycisk służy do pokazania okna receptur. Został skonfigurowany

analogicznie jak powyższy przycisk. Skrót klawiszowy dla tego przycisku to ALT+R.

• Exit Runtime – wyłączenie trybu „Runtime” – powoduje zamknięcie działającej

aplikacji. Został mu przypisany skrót klawiszowy ALT+E.

Panel nawigacji przedstawiony został na Rys. 5.1.

Rys. 5.1 Panel nawigacji

Okno receptur

Okno receptur zostało utworzone poprzez menu Control Elements, wybierając opcję

Insert Template. Opcja ta umożliwia wstawienie predefiniowanego szablonu okna receptur

w wybranej przez projektanta rozdzielczości.

Aby umożliwić zapisywanie receptur tworzonych podczas działania aplikacji, należało

zmienić ustawienia projektu – w folderze General należało wejść do RT Changeable data

i odznaczyć checkbox Standard Recipes.

Okno receptur znajduje się na Rys. 5.2

Rys. 5.2 Okno receptur

Page 11: System Batch w SCADa Zenon

Okno procesuW oknie procesu możemy wyróżnić elementy zarówno statyczne jak i dynamiczne.

Głównymi elementami są dwa zbiorniki, przeznaczone dla 2 etapów powstawania produktu.

Połączone są ze sobą rurociągiem, na którym umieszczone są dwa zawory oraz pompa. Jeden

z zaworów kontroluje odpływ mieszanki z pierwszego zbiornika, natomiast drugi z zaworów

otwiera lub zamyka wlot mieszanki do drugiego zbiornika. Pompa obrazuje element

pompujący mieszankę z pierwszego zbiornika do drugiego. Od wlotu pierwszego zbiornika

odchodzą 3 rury, przez które transportowane są następujące składniki: woda, cukier

i dwutlenek węgla. Składniki te prezentowane są tak, że na końcu każdej rury znajduje się

strzałka, poprzedzona cyfrowym wyświetlaczem wartości objętości każdego ze składników

używanego w procesie. W przypadku wody użyto dodatkowego zbiornika, symbolizującego

kontener z wodą, za którym znajduje się zawór służący do odcięcia przepływu wody.

Dodatkowo nad pierwszym zbiornikiem umieszczony został motor, którego wyprowadzone

mieszadło kończy się w środku zbiornika. Na zbiorniku umieszczony został wskaźnik

poziomu wypełnienia. Został on odpowiednio przeskalowany do pojemności zbiornika, tj. od

0 do 1500 litrów. U wejścia drugiego zbiornika, oprócz rurociągu doprowadzającego

mieszankę z pierwszego zbiornika, znalazły się silnik oraz dwa rurociągi doprowadzające

taurynę oraz kofeinę do środka. Na zbiorniku umieszczono również symbol grzałki,

wskazującej temperaturę, w jakiej będzie odbywało się mieszanie składników. Również na

tym zbiorniku umieszczono odpowiednio przeskalowany wskaźnik wypełnienia. Dodatkowo

pod grzałką znajduje się wskaźnik aktualnej temperatury cieczy. Z drugiego zbiornika

wychodzi rura zakończona zaworem. Każdy obiekt (poza strzałkami i rurami) został opisany

tekstowo.

Start procesu odbywa się poprzez naciśnięcie przycisku Start, umieszczonego na lewo od

pierwszego zbiornika. Podczas działania, proces można zatrzymać, naciskając na ten

przycisk.

Page 12: System Batch w SCADa Zenon

Rys. 5.3 Okno procesu

Opis i konfiguracja poszczególnych elementów graficznych znajdujących się w oknie

procesu:

• silniki, zawory i pompa – elementy te zostały wstawione z Global symbol library

z folderu Pharma 2D. Zmienne do tych elementów zostały przypisane poprzez

właściwości obiektu – z folderu Linking Rule w polach Source i Target wpisano

odpowiednio: motor.running (dla silnika), valve.state (dla zaworu) i motor.state (dla

pompy), natomiast w polu Target odpowiednią zmienną przedstawiającą stan elementu

(typu BOOL).

• pola numeryczne – są to elementy „7-Segment Display 6 digits” z folderu Pharma

Displays w bibliotece Global symbol library. Zmienne zostały przypisane

w analogiczny sposób jak dla powyższych kontrolek: w Source wpisano number,

natomiast w Target odpowiednią zmienną.

• strzałki – elementy „3D arrow right” z folderu „Arrows” w bibliotece Global symbol

library. Zostały użyte strzałki dwóch rodzajów: wskazujące w prawo i lewo.

• zbiorniki - zbiorniki zostały importowane z biblioteki graficznej przykładowej

aplikacji Food & Beverage, dołączanej standardowo do instalacji oprogramowania

SCADA zenon. Eksport biblioteki projektu można wykonać poprzez kliknięcie

prawym przyciskiem myszy na elemencie Project symbol library w gałęzi Screens

w danym projekcie i wybranie polecenia Export XML all... . Import dokonuje się

Page 13: System Batch w SCADa Zenon

w analogiczny sposób, wybierając z rozwijalnego menu opcję Import XML

i wskazując miejsce pliku uprzednio eksportowanego.

• wskaźniki wypełnienia – elementy Bar display dostępne z menu Elements. Służą do

wyświetlania poziomu wypełnienia. Zostały do nich przypisane zmienne

przechowujące wartości wypełnienia zbiornika. Konfiguracja elementów polegała na

zmianie skali na przedział od 0 do 1500.

• grzałka oraz rury – są to elementy Pipe dostępne z menu Elements. Główny rurociąg

łączący oba zbiorniki oraz wylot drugiego zbiornika mają wielkość 15 punktów,

natomiast pozostałe rury mają wielkość 5 punktów. Wielkość rury można zmieniać

poprzez konfigurację pola Line Width w polu Representation. Grzałka została

utworzona z elementu Pipe, jej wielkość to również 5 punktów.

• tekst – element Static Text dostępny z menu Elements. Wyświetlaną wartość zmienia

się w polu Text w zakładce Representation w konfiguracji obiektu. Pola tekstowe

posłużyły do opisu elementów zamieszczonych w głównym oknie aplikacji.

• przycisk start/stop - standardowy przycisk dostępny z panelu Elements. Została do

niego przypisana zmienna start typu Boolean. W zależności od wartości zmiennej,

przycisk zmienia kolory na zielony z napisem Start (dla wartości true) oraz kolor

czerwony z napisem Stop (dla wartości false).

Zmienne i typy zmiennych

Zmienne w programie służą do przechowywania wartości oraz mogą być

przypisywane do różnych obiektów, które zmieniają swój wygląd w trakcie działania

programu. W programie używaliśmy zarówno predefiniowanych typów jak i utworzonych

przez nas typów złożonych. Takim typem złożonym jest struktura Tank, składająca się

z trzech elementów: Fill (UINT) – poziom wypełnienia zbiornika, Drain (UINT) – szybkość

wypływania cieczy ze zbiornika, Supply (UINT) – szybkość dostarczania składników do

zbiornika. Typ strukturalny utworzono poprzez wybranie opcji New Structure Datatype

w Variables/Datatypes. Następnie dodano do niego poszczególne pola poprzez kliknięcie

prawym przyciskiem myszy na nowo utworzonym typie i wybraniu opcji New structure

element.

W programie utworzono zmienne typu prostego, potrzebne do określenia wielkości

poszczególnego składnika w procesie produkcyjnym i używane przez receptury. Są to

następujące zmienne: water, sugar, gas, taurine, aroma, temperature.

Page 14: System Batch w SCADa Zenon

Do każdego z dynamicznych elementów (silniki, zawory, pompa) zostały przypisane zmienne

typu BOOL, przechowujące informację o ich stanie (włączony/wyłączony). W przypadku

zaworów i silników były to tablice zmiennych. Tablice zmiennych można utworzyć przy

definiowaniu zmiennej, wystarczy zmienić wymiar zmiennej (ang. dimension).

Funkcje

W aplikacji używane są funkcje odpowiedzialne za przełączanie okien oraz

wychodzenie ze środowiska Runtime. Funkcje zostały utworzone poprzez opcję New

Function wybraną z menu kontekstowego poprzez naciśnięcie prawego klawisza myszy na

zakładce Functions w menu projektu. Z pojawiającego się okna można wybrać interesującą

nas funkcję: Exit Runtime znajduje się w zakładce Application, natomiast Screen Switch

w zakładkach Favourites i Screen.

Receptury

Receptury utworzone zostały w oknie Standard recipes w zakładce Recipes z menu

projektu. Po wybraniu New recipe, wybrane zostały odpowiednie zmienne wchodzące

w skład receptury. W przypadku niniejszego projektu każda receptura składała się ze

zmiennych: water, sugar, gas, taurine, aroma, temperature. Następnie ustalono odpowiednie

wartości tych zmiennych poprzez zmianę pola Set value. Tak utworzone receptury widoczne

są w trybie Runtime w oknie receptur. Można je stamtąd eksportować i importować.

Skrypt VB – realizacja animacji

Aby dynamiczne elementy graficzne mogły być animowane, potrzebny był skrypt,

który kontrolowałby przepływem programu. zenon udostępnia kilka możliwości do pisania

programów, w poniższej pracy zdecydowano się na skrypt w języku Visual Basic. Edytor

skryptów VB dostępny jest w głównym drzewku pod elementem Programming

Interfaces/Process Control Engine. Po otworzeniu edytora mamy możliwość dodania nowego

zadania – Task’u, poprzez wybranie pozycji New Task. Należało skonfigurować powstały

task, w naszym przypadku zostały wybrane następujące opcje: typ cykliczny, task startuje

razem z systemem, wykonywanie co 10 ms. Później należy wybrać wszystkie zmienne

zdefiniowane w zenon Editor a których mamy zamiar używać w skrypcie VB. Plik z kodem

otwieramy klikając dwukrotnie na nazwę task’u. Znajdują się tam od razu 3 predefiniowane

procedury: init, main i exit, wykonywane odpowiednio na starcie runtime, podczas trwania

runtime, na wyjściu z runtime.

Page 15: System Batch w SCADa Zenon

Cały program został pomyślany jako maszyna stanu, gdzie poszczególne stany opisują

zachowanie dynamicznych elementów w kolejnych, następujących po sobie krokach. Kod

znajduje się w funkcji Task_Main(), w funkcji Task_Init() umieszczone zostały jedynie dwa

przypisania zmiennych, natomiast funkcja Task_Exit() jest nieużywana.

Poszczególne stany przedstawiają się następująco:

1. przygotowanie do startu – załadowanie receptur,

2. odczekanie chwili na start procesu,

3. napełnienie pierwszego zbiornika składnikami,

4. mieszanie zawartości pierwszego zbiornika,

5. przelanie zawartości pierwszego zbiornika do drugiego zbiornika,

6. dodanie pozostałych składników do drugiego zbiornika,

7. podgrzewanie zawartości drugiego zbiornika,

8. mieszanie składników w drugim zbiorniku,

9. wypuszczenie gotowego zbiornika,

10. przejście do początku programu.

Maszyna stanu zrealizowana została za pomocą instrukcji Select Case, która cyklicznie

realizowała dany stan, określony w zmiennej o tej samej nazwie – stan. Opóźnienia

w programie realizowane były przez inkrementację jednej ze zmiennych do odpowiedniej

wartości. Skonfigurowany Task w edytorze VB znajduje się na Rys. 5.4.

Rys. 5.4 Edytor VB ze sokonfigurowanym Task'iem

Page 16: System Batch w SCADa Zenon

Uwagi końcowe

Podczas projektowania aplikacji okazało się, że rozłożenie elementów w trybie edycji okna

i trybie działania aplikacji jest różne – część elementów po przejściu w tryb Runtime została

przesunięta.

Debugowanie programów napisanych w edytorze VB jest utrudnione z tego powodu,

że kompilator podaje bardzo mało informacji istniejących w programie błędach.

6. Kody źródłowe z opisemKod znajdujący się w edytorze VB został zamieszczony poniżej. Linie zaczynające się

od pojedynczego apostrofu oznaczają komentarz i zostały umieszczone dla rozjaśnienia

zamieszczonych tam instrukcji.

Każde odwołanie do zmiennej zdefiniowanej w zenon Editor musi odbywać się poprzez

instrukcję Task.Value(„nazwa zmiennej”), natomiast odwołania do zmiennych

zdefiniowanych wewnątrz edytora nie wymagają już takich poleceń.

'Globalna deklaracja zmiennychDim stan, licznik 'zmienne przechowujace numer aktulanego stanu i uzywany miejscami licznik'do ponizszych zmiennych przepisywane sa wartosci receptur w momencie uruchomienia programuDim waterR, sugarR, gasR, taurineR, aromaR, temperatureR'zmienne przechowuja wartosci maksymalnego wypelnienia zbiornikaDim FillLevel1, FillLevel2

'InitfunctionSub Task_Init()'Poczatkowa inicjalizacja zmiennychstan = 1licznik = 0

End Sub

'The Mainfunction is a cyclic functionSub Task_Main()

'Program dziala tylko, jesli uzytkownik wcisna przycisk StartIf Task.Value("start") = 0 Then'Rozpoczecie instrukcji wykonywania odpowiedniego stanuSelect Case stanCase 1 'Przygotowanie do startu

licznik = 0

Page 17: System Batch w SCADa Zenon

'Ustawianie zmiennych do stanu poczatkowego'Sposob przedstawiony ponizej pozwala na odwolanie sie'do zmiennej zdefiniowanej w edytorze zenonTask.Value("Motor[1]")=falseTask.Value("Motor[2]")=falseTask.Value("Valve[1]")=falseTask.Value("Valve[2]")=falseTask.Value("Valve[3]")=falseTask.Value("Valve[4]")=falseTask.Value("Pump")=falseTask.Value("PumpRotation")=falseTask.Value("Tank[1].Fill level")=0Task.Value("Tank[2].Fill level")=0'Odczytanie wartosci recepturwaterR = Task.Value("water")sugarR = Task.Value("sugar")gasR = Task.Value("gas")taurineR = Task.Value("taurine")aromaR = Task.Value("aroma")temperatureR = Task.Value("temperature")Task.Value("currTemperature") = 0'Przejscie do stanu drugiegostan = 2

Case 2 'Odczekanie chwili przed rozpoczeciem procesulicznik = licznik + 1If licznik = 50 Then

licznik = 0stan = 3

End IfCase 3 'Napelnianie zbiornika skladnikami

Task.Value("Valve[4]") = true'Maksymalna wartosc wypelnienia osiagana przez 1. zbiornikFillLevel1 = waterR+sugarR+gasR'Wartosc wypelnienia bedzie zwiekszana co 10 jednostek'w kazdym powtorzeniu cyklu (mniej wiecej co 10ms)If Task.Value("Tank[1].Fill level") < FillLevel1 Then

Task.Value("Tank[1].Fill level") = Task.Value("Tank[1].Fill level")+10

Elsestan = 4

End IfCase 4 'Proces mieszania

Task.Value("Valve[4]") = falseTask.Value("Motor[1]") = trueIf licznik < 500 Then

licznik = licznik + 1Else

Page 18: System Batch w SCADa Zenon

Task.Value("Motor[1]") = falselicznik = 0stan = 5

End IfCase 5 'Przelanie zawartosci zbiornika

Task.Value("Valve[1]") = trueTask.Value("Pump") = trueTask.Value("Valve[2]") = trueIf Task.Value("Tank[1].Fill level") > 0 Then

Task.Value("Tank[1].Fill level") = Task.Value("Tank[1].Fill level") - 10

Task.Value("Tank[2].Fill level") = Task.Value("Tank[2].Fill level") + 10

Elsestan = 6

End IfCase 6 'Dodanie do 2 zbiornika skladnikow

Task.Value("Valve[1]") = falseTask.Value("Pump") = falseTask.Value("Valve[2]") = falseIf licznik < 300 Then

licznik = licznik + 1Else

Task.Value("Tank[2].Fill level") = Task.Value("Tank[2].Fill level") + aromaR+taurineR

licznik = 0stan = 7

End IfCase 7 'Podgrzewanie

'Zwiekszanie temperatury odbywa sie z czestotliwoscia'dwukrotnie mniejsza od trwania cykluIf licznik/2 < temperatureR Then

Task.Value("currTemperature") = licznik/2licznik = licznik + 1

Elselicznik = 0stan = 8

End IfCase 8 'Mieszanie skladnikow w drugim zbiorniku

Task.Value("Motor[2]") = trueIf licznik < 500 Then

licznik = licznik + 1Else

licznik = 0Task.Value("Motor[2]") = falsestan = 9

End If

Page 19: System Batch w SCADa Zenon

Case 9 'Wypuszczenie gotowego produktuTask.Value("Valve[3]") = trueIf Task.Value("Tank[2].Fill level") > 9 Then

Task.Value("Tank[2].Fill level") = Task.Value("Tank[2].Fill level") - 10

ElseTask.Value("Valve[3]") = falsestan = 10

End IfCase 10 'Przejscie do poczatku programu

Task.Value("start") = 1End Select

Else 'Reset programu'Jesli uzytkownik wybral nowa recepte i ponownie wcisna'przycisk Start, nastapi przejscie do 1. stanuIf stan = 10 And Task.Value("start") = 1 Then

stan = 1End If

End If 'start

End Sub

'ExitfunctionSub Task_Exit()

End Sub

'TimerfunctionSub Task_Timer(lTimerId)

End Sub

7. Instrukcja dla użytkownika aplikacjiPo uruchomieniu aplikacji widzimy dwa okna: główne okno procesu,

z zamieszczonymi graficznymi elementami przedstawiającymi zbiorniki, zawory itd. oraz

znajdujący się poniżej panel z przyciskami.

Panel nawigacji

Na panelu dostępne są 3 przyciski:

• Main window – po naciśnięciu pokazuje główne okno procesu; można w tym celu

użyć również skrótu klawiszowego Alt+M,

Page 20: System Batch w SCADa Zenon

• Recipes – przejście do okna z recepturami, skrót klawiszowy to Alt+R,

• Exit Runtime - wyjście ze środowiska Runtime, skrót klawiszowy to Alt+E.

Panel nawigacji przedstawiony został wcześniej na Rys. 5.1

Okno receptur

Okno to stanowi zespół elementów, dzięki którym w pełni możemy zarządzać

recepturami. W górnym lewym rogu umieszczona jest lista rozwijalna, z której możemy

wybrać zdefiniowane uprzednio receptury. Po wybraniu jednej z nich, zmienne dodane do

receptury oraz ich wartości wyświetlają się poniżej. Wartość przypisaną do danej zmiennej

można zmienić, klikając na pole w kolumnie Value. Po obu stronach zostanie wówczas

wyświetlony zakres wartości przyjmowanych przez zmienną.

Idąc kolejno od lewego górnego rogu napotykamy na następujące przyciski:

• Recipe new – służy do dodawania nowej receptury. W pojawiającym się okienku

jesteśmy pytani m.in. o nazwę nowej receptury oraz poziom autoryzacji, potrzebny do

jej używania.

• Edit recipe – służy do edytowania aktualnie wyświetlanej receptury. Wyskakujące

okienko pyta nas o te same dane, jak powyżej.

• Copy recipe - aktualnie wyświetlana receptura zostanie skopiowana.

• Delete recipe – aktualnie wyświetlana receptura zostanie skasowana.

• Add variable - dodanie nowej zmiennej do receptury. Z pojawiającego się okienka,

zawierającego wszystkie zdefiniowane przez użytkownika zmienne oraz zmienne

stworzone wraz z tworzeniem projektu, należy wybrać zmienne, które chcemy dodać

do receptury, klikając na odpowiednią nazwę zmiennej dwukrotnie. Możemy wybrać

więcej niż jedną zmienną.

• Release variable – usuwanie konkretnej zmiennej z receptury.

• Read recipe – przypisanie nowych wartości do zmiennych w danej recepturze. Nowe

wartości zostaną zaczerpnięte z aktualnych wartości zmiennych.

• Write recipe – przypisywanie wartości zmiennych zdefiniowanych w recepturze do

zmiennych w aplikacji.

• Edit set value – edytowanie wartości przypisanej do zmiennej w recepturze.

• All value-- - wszystkie wartości zmiennych w recepturze zostaną zmniejszone o 1.

Page 21: System Batch w SCADa Zenon

• All values++ - analogicznie jak wyżej, aczkolwiek wszystkie wartości zmiennych

zostaną powiększone o 1.

• Recipe save – zapisanie aktualnej receptury. Przydatne przy

tworzeniu/modyfikowaniu receptur.

• Import recipe – służy do importowania wcześniej zdefiniowanego i zapisanego na

dysku pliku z recepturami.

• Export recipe – służy do eksportowania aktualnie wyświetlanej receptury do pliku.

Okno główne programu

W oknie tym przedstawiony został proces produkcji napojów energetycznych.

Niektóre elementy (zawory, silniki) będą zmieniały swoje stany podczas działania procesu.

Pola numeryczne wyświetlają aktualne wartości receptur i zmiennych. Na zbiornikach

umieszczone zostały wskaźniki poziomu wypełnienia, które również zmieniają się w trakcie

działania programu. W tym oknie jedynym aktywnym przyciskiem jest przycisk Start/Stop

umieszczony po lewej stronie pierwszego ze zbiorników. Przy uruchamianiu programu

przycisk ten wyświetla napis Start i ma kolor zielony, po jego naciśnięciu kolor zmienia się na

czerwony a napis na Stop.

Uruchamianie programu

Aby uruchomić program, najpierw należy przejść do okna receptur. W tym celu naciskamy

przycisk Recipes, umieszczony w panelu nawigacyjnym. W górnym lewym rogu umieszczone

zostały predefiniowane receptury. Po wybraniu jednej z nich, klikamy na przycisk Write

Values, znajdujący się po prawej stronie. Sprawi to, że wybrane przez nas wartości zmiennych

zapisanych w recepturze przepisane zostaną do zmiennych zdefiniowanych w programie.

Następnie przechodzimy do głównego okna procesu, naciskając na przycisk Main Window

znajdujący się na panelu nawigacyjnym. Możemy teraz zauważyć, że pola numeryczne,

podpisane H2O, Sugar, C2O itd. będą wyświetlały wartości zapisane w recepturze.

Naciskamy na przycisk Start – wówczas uruchomiony zostanie cały proces. Podczas jego

działania program będzie przechodził przez następujące kroki:

1. przygotowanie do startu – załadowanie receptur,

2. odczekanie chwili na start procesu,

3. napełnienie pierwszego zbiornika składnikami,

4. mieszanie zawartości pierwszego zbiornika,

Page 22: System Batch w SCADa Zenon

5. przelanie zawartości pierwszego zbiornika do drugiego zbiornika,

6. dodanie pozostałych składników do drugiego zbiornika,

7. podgrzewanie zawartości drugiego zbiornika,

8. mieszanie składników w drugim zbiorniku,

9. wypuszczenie gotowego zbiornika,

10. przejście do początku programu.

W międzyczasie niektóre elementy graficzne będą się zmieniały – np. kolory na zaworach,

poziom wypełnienia itd. Użytkownik w każdej chwili może zatrzymać proces naciskając na

przycisk Stop. Aby wznowić proces należy nacisnąć na przycisk Start.

Gdy proces zakończy się, czerwony do tej pory przycisk z napisem Stop, zamieni kolor na

zielony, tekst zostanie wówczas zamieniony na Start. Jest to znak, że można wybrać nową

recepturę i powtórzyć działanie całego procesu z nowo załadowaną recepturą.

Page 23: System Batch w SCADa Zenon

8. Bibliografia

[1] http://en.wikipedia.org/wiki/Batch_production

[2] http://www.biap.com.pl/pl/products/12/show/11/Produkcja_wsadowa,_batching

[3]

http://www.bbc.co.uk/schools/gcsebitesize/business/production/methodsofproductionrev1.sht

ml

[4]

http://cache.automation.siemens.com/media/60237473_SIMATIC_BATCH_en_web/start.htm

[5] http://pl.wikipedia.org/wiki/Oprogramowanie_Zenon

[6] http://copa-data.automatykab2b.pl

[7] Training Material ZENON BASIC TRAINING

[8] zenon material – Programming Interfaces, v.7.00

[9] Pomoc programu zenon

Dante
Note
to nie może być takie rozwalone