You are on page 1of 23

Wydzia Elektrotechniki, Automatyki, Informatyki

i Inynierii 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 Patek

Prowadzcy:
Prof. dr hab. in Witold
Byrski
Mgr. in Andrzej Latocha
Krakw, stycze 2014

1. Cel projektu
Podstawowym celem projektu jest wykonanie w oprogramowaniu zenon aplikacji
przedstawiajcej sterowanie produkcj z wykorzystaniem systemu zarzdzania recepturami.
Wykonana aplikacja powinna w peni wykorzystywa dostpne w programie zenon narzdzia,
suce do pracy z recepturami. Poza aplikacj efektem projektu powinno by take
dokumentacja dziki, ktrej inni uytkownicy tego oprogramowania bd mogli zdoby
potrzeb wiedz do budowy wasnych aplikacji. W ramach projektu przedstawiona zostanie
take strona teoretyczna zwizana z produkcj wsadow (batch production).

2. Produkcja wsadowa (Batch Production)


W procesie produkcji wsadowej (Batch production) obiekt bdcy przedmiotem
produkcji jest tworzony krok po kroku na ronych stacjach
roboczych,

istnieje

moliwo

wykorzystania

rnych

receptur wykonywania produktu [1]. Produkcja batchowa


jest jedn z trzech gwnych metod produkcji obok produkcji
masowej (cigej) oraz indywidualnej.
Rodzaje produkcji [3]:
Produkcja indywidualna (Job production) kady

*zrda rysunku wikipedia

produkt jest wykonywany

indywidualnie. Przed rozpoczciem produkcji kolejnego produktu wykonanie


poprzedniego musi by ukoczone.
Produkcja wsadowa (Batch production) w tym przypadku grupa produktw jest
wytwarzana w tym samym czasie. Przykadem jest piekarnia wykonujca parti
chlebw. Wszystkie wchodzce w skad tej jednej partii s wykonywane jednoczenie
i wedug tej samej receptury.
Produkcja ciga jest to produkcja identycznych produktw z wykorzystaniem linii
produkcyjnej. Pracownicy w tym przypadku maj bardzo wyspecjalizowane zadania
polegajce na wykonaniu tych samych czynnoci na kadym produkowanym obiekcie.

Produkcja wsadowa (batch production) jest czsto spotykanym sposobem produkcji


w wielu gaziach przemysu (chemicznym, spoywczym czy farmaceutycznym) [2].
Podstaw tego rodzaju produkcji jest waciwie dozowanie skadnikw produktu (najczciej
do mieszalnika, reaktora lub innego zbiornika). Dodawanie skadnikw moe odbywa si

w okrelonej kolejnoci lub by wykonywane jednoczenie przy zachowaniu proporcji


zawartych w recepturze. Oprcz dozowania w trakcie produkcji mog by wykonywane inne
czynnoci z udziaem skadnikw lub wytwarzanego produktu. Przykady takich czynnoci to
podgrzewanie, chodzenie czy te mieszanie. W przypadku gdy produkcja odbywa si
jednoczenie na kilku stanowiskach, system obsugujcy proces produkcyjny musi zapewni
odpowiedni dostpno skadnikw, drog dozowania, wzajemne blokady, ewentualnie
zbiorniki pomocnicze. Kolejnym zadaniem jest kontrola stanw magazynowych. System taki
powinien zapewni cigo produkcji. W przypadku prowadzenia produkcji substancji
niebezpiecznych lub w warunkach zagroenia (skaenie chemiczne, wybuch) system
automatyki odpowiedzialny za proces powinien spenia dodatkowe wymogi bezpieczestwa.
Cechy produkcji wsadowej [1] [4]:
wytwarzanie rnych produktw na tej samej linii produkcyjnej
redukcja kosztw zwizanych z rozpoczciem produkcji nie ma potrzeby
budowy/zakupu linii produkcyjnej dla kadego produktu z osobna
wiedza o tym jak ma by wykonany produkt zawarta w recepturze
produkcja maych iloci produktu proces produkcji nie jest cigy
konieczno przerw w produkcji w przypadku zmiany receptury przestrojenie
maszyn, czyszczenie zbiornikw czy te wymiana skadnikw
Produkcj wsadow najlepiej stosowa gdy [1] [4]:
wytwarzane s rne produkty na tej samej linii
czsto wprowadzane s nowe produkty
produkcja jest optymalizowana, a tym samym zmiany w sposobie wytwarzania
produktu mog by do czste
produkty s projektowane i modyfikowane przez personel pracujcy przy produkcji
chcemy

mie

moliwo

uruchomienia

produkcji

na

rnych

instalacjach

przemysowych
nie ma moliwoci na budow specjalizowanej linii produkcyjnej dla kadego
z wytwarzanych produktw
wytwarzane s produkty sezonowe

Zastosowania produkcji wsadowej [4]:


przemys farmaceutyczny
biotechnologia
przemys lakierniczy (farby, lakiery, barwniki)
rodki ochrony rolin
przemys spoywczy
produkcja rodkw czystoci
przemys chemiczny

*zrda zdj wikipedia

3. Oprogramowanie zenon
W

projekcie

wykorzystane

zostao

oprogramowanie zenon wykonane przez firm


COPA - DATA [5]. zenon stanowi rodzin produktw suca do nadzorowania przebiegu
procesw (SCADA), wizualizacji procesw oraz wyposaon w system interfejsu
uytkownika (Human Machine Interface). W ramach oprogramowania zenon firma COPADATA wprowadzia kilka innowacyjnych rozwiza w dziedzinie HMI/SCADA. Wrd nich
naley wymieni circular redundancy (redundancja koowa zwikszajca bezpieczestwo
poprzez wymaganie do kadego projektu serwera oraz serwera zapasowego) oraz system
Multitouch (pozwalajcy na szybka i bezpieczn obsug interfejsw HMI).
Produkty zenon:
zenon Anlyzer narzdzie suce do raportowania produkcji
zenon Supervisor pena wizualizacja i kontrola maszyn oraz urzdze, moliwo
poczenia z innymi systemami (SAP, ERP)

zenon Logic system programistyczny dla sterownikw PLC zgodny z IEC 61131-3
zenon Operator sucy do obsugi maszyn oraz urzdze sterujcych
Cechy zenona w wersji 7.10 [6]:
ulepszony modu Batch Control technologia dotykowa, integracja w Report Viewer
Report Viewer pene i wszechstronne raportowanie produkcji
ochrona elementw aplikacji w zenon Editor niektre elementy mog zosta
zablokowane dla pewnych uytkownikw
import zmiennych z SIMANTIC STEP 7
aplikacje na urzdzenia przenone

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

specjalizowane wersje dla sektora energetyki (zenon Energy Edition) oraz przemysu
farmaceutycznego (zenon Pharma Edition)

4. Receptury w oprogramowaniu zenon


Receptury to zgrupowane akcje ustawiajce wartoci zmiennych, mog by uywane
do zapamitywania wartoci parametrw [7].
W Projekt Manager pod hasem Recipes znajduj si dwie pozycje Standard Recipes
oraz Recipegroup Manager. Tworzenie nowej receptury odbywa si poprzez kliknicie na
Standard Recipes i wybranie opcji New Recipe. W wyniku tego dziaania dodana zostanie
nowa receptura, automatycznie nadawana jest jej nazwa Recipe + numer porzdkowy.
Zarwno nazw jak i skad receptury mona dowolnie modyfikowa. Receptura tworzona jest
poprzez dodawanie kolejnych zmiennych oraz ustawianie ich wartoci.

Rys. 4.1 Okno Properties nowej procedury


Paramenty receptury mona zmienia w oknie Properties. Mona miedzy innymi uy
narzdzi autoryzacji do ograniczenia dostpu do modyfikacji receptury.

Rys 4.2 Widok Projekt Manager z dodan receptur


Uytkowanie receptur odbywa si na dwa sposoby poprzez funkcje oraz poprzez
Recipe Screen. Po dodaniu receptury moemy klikn na ni i wybra opcj Create standard
function. W dalszych krokach okrelamy wzgldem ktrej z utworzonych receptur funkcja ma
dziaa oraz jak akcj ma wykonywa.

Rys. 4.3 Wybr receptury, z ktr ma pracowa funkcja

Rys. 4.4 Wybr akcji wykonywanej przez funkcj.

Tworzona funkcja moe wpisa wartoci z receptury do aktualnych zmiennych, moe rwnie
odczyta wartoci zmiennych i zapisa je do receptury, tym samym nadpisujc j, dostpna
jest take opcja wykonania duplikatu receptury.
Jeli chcemy utworzy ekran do zarzdzania procedurami, moemy to zrobi dodajc
nowy screen i wybierajc dla niego Screen type Standard recipes. Do tak utworzonego
ekranu moemy dodawa rnego rodzaju elementy suce do zarzdzania procedurami.
Znajduj si one w Control elements, moemy dziki temu doda m.in. takie elementy jak
przyciski New Recipe, Edit Recipe, Add Variable, All Value--, Save Recipe. Jest take
moliwo skorzystania z gotowego szablonu ekranu do zarzdzania procedurami. Aby
z niego skorzysta naley wybra Control elements Insert templete.. Aby podczas dziaania
aplikacji w zenon Runtime mie dostp do receptur utworzonych w projekcie naley
udostpni je poprzez wprowadzenie odpowiednich zmian w ustawieniach projektu.

Rys. 4.5 Udostpnienie receptur dla Runtime


Gotowy ekran pozwala m.in. na dodawanie, edycj usuwanie receptur a take na dodawanie
zmiennych czy modyfikacj ich wartoci.

Rys. 4.6 Ekran receptur w zenon Runtime.


Planista
Receptury mog by take zarzdzane poprzez planist. Zarzdzanie polega na
dodawaniu punktw przecze (lub przedziaw czasu z punktami na kocu i pocztku).
W punktach tych mog by wywoywane funkcje odpowiedzialne za receptury. W ten sposb
mona zautomatyzowa przeczanie receptur.

Rys. 4.7 Ustawienie funkcji zwizanych z recepturami na pocztku i kocu przedziau czasu

Rys. 4.8 Widok planisty z dodanymi punktami przecze

5. Opis realizacji projektu


Projekt polega na stworzeniu aplikacji wykorzystujcej receptury. W naszym
przypadku procesem jest wytwarzanie napojw energetycznych 4 rodzajw: Tiger, Black,
Blow i RedBull. Kady z tych napojw skada si z 5 skadnikw: woda, cukier, dwutlenek
wgla, tauryna oraz aromaty. Proces produkcji przebiega w dwch etapach. Pierwszym z nich
jest mieszanie 3 skadnikw: wody, cukru oraz dwutlenku wgla w odpowiednich
proporcjach. Powstaa mieszanka przepompowywana jest do nastpnego zbiornika, do
ktrego wlewane s tauryna i aromaty. Tutaj rwnie nastpuje mieszanie skadnikw ale ju
w okrelonej dla kadego napoju temperaturze.
Realizacja projektu rozpoczta zostaa od utworzenia 3 okien: okna procesu, okna receptur
oraz panelu nawigacji. Na ekranie wywietla si zawsze panel nawigacji z wybranym oknem
i wwczas drugie okno jest niewidoczne. Pozostawiony zosta rwnie grny pasek alarmw,
domylnie tworzony dla kadego projektu.
Panel nawigacji
Panel nawigacji jest to podune okno znajdujce si na spodzie ekranu. Umieszczone
zostay na nim trzy przyciski, speniajce nastpujce funkcje:
Main window suy do przeczenia widoku na okno procesu. Aby to zrobi,
naleao utworzy funkcj odpowiedzialn za pokazanie gwnego okna. Nastpnie
funkcja ta zostaa przypisana do przycisku poprzez wskazanie jej nazwy w jego
parametrach. Dodatkowo okno z przebiegiem procesu mona wczy poprzez

wcinicie

kombinacji

klawiszy

ALT+M.

Ta

moliwo

rwnie

zostaa

skonfigurowana w opcjach przycisku.


Recipes przycisk suy do pokazania okna receptur. Zosta skonfigurowany
analogicznie jak powyszy przycisk. Skrt klawiszowy dla tego przycisku to ALT+R.
Exit Runtime wyczenie trybu Runtime powoduje zamknicie dziaajcej
aplikacji. Zosta mu przypisany skrt klawiszowy ALT+E.
Panel nawigacji przedstawiony zosta na Rys. 5.1.

Rys. 5.1 Panel nawigacji


Okno receptur
Okno receptur zostao utworzone poprzez menu Control Elements, wybierajc opcj
Insert Template. Opcja ta umoliwia wstawienie predefiniowanego szablonu okna receptur
w wybranej przez projektanta rozdzielczoci.
Aby umoliwi zapisywanie receptur tworzonych podczas dziaania aplikacji, naleao
zmieni ustawienia projektu w folderze General naleao wej do RT Changeable data
i odznaczy checkbox Standard Recipes.
Okno receptur znajduje si na Rys. 5.2

Rys. 5.2 Okno receptur

Okno procesu
W oknie procesu moemy wyrni elementy zarwno statyczne jak i dynamiczne.
Gwnymi elementami s dwa zbiorniki, przeznaczone dla 2 etapw powstawania produktu.
Poczone s ze sob rurocigiem, na ktrym umieszczone s dwa zawory oraz pompa. Jeden
z zaworw kontroluje odpyw mieszanki z pierwszego zbiornika, natomiast drugi z zaworw
otwiera lub zamyka wlot mieszanki do drugiego zbiornika. Pompa obrazuje element
pompujcy mieszank z pierwszego zbiornika do drugiego. Od wlotu pierwszego zbiornika
odchodz 3 rury, przez ktre transportowane s nastpujce skadniki: woda, cukier
i dwutlenek wgla. Skadniki te prezentowane s tak, e na kocu kadej rury znajduje si
strzaka, poprzedzona cyfrowym wywietlaczem wartoci objtoci kadego ze skadnikw
uywanego w procesie. W przypadku wody uyto dodatkowego zbiornika, symbolizujcego
kontener z wod, za ktrym znajduje si zawr sucy do odcicia przepywu wody.
Dodatkowo nad pierwszym zbiornikiem umieszczony zosta motor, ktrego wyprowadzone
mieszado koczy si w rodku zbiornika. Na zbiorniku umieszczony zosta wskanik
poziomu wypenienia. Zosta on odpowiednio przeskalowany do pojemnoci zbiornika, tj. od
0 do 1500 litrw. U wejcia drugiego zbiornika, oprcz rurocigu doprowadzajcego
mieszank z pierwszego zbiornika, znalazy si silnik oraz dwa rurocigi doprowadzajce
tauryn oraz kofein do rodka. Na zbiorniku umieszczono rwnie symbol grzaki,
wskazujcej temperatur, w jakiej bdzie odbywao si mieszanie skadnikw. Rwnie na
tym zbiorniku umieszczono odpowiednio przeskalowany wskanik wypenienia. Dodatkowo
pod grzak znajduje si wskanik aktualnej temperatury cieczy. Z drugiego zbiornika
wychodzi rura zakoczona zaworem. Kady obiekt (poza strzakami i rurami) zosta opisany
tekstowo.
Start procesu odbywa si poprzez nacinicie przycisku Start, umieszczonego na lewo od
pierwszego zbiornika. Podczas dziaania, proces mona zatrzyma, naciskajc na ten
przycisk.

Rys. 5.3 Okno procesu


Opis i konfiguracja poszczeglnych elementw graficznych znajdujcych si w oknie
procesu:
silniki, zawory i pompa elementy te zostay wstawione z Global symbol library
z folderu Pharma 2D. Zmienne do tych elementw zostay przypisane poprzez
waciwoci 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 przedstawiajc stan elementu
(typu BOOL).
pola numeryczne s to elementy 7-Segment Display 6 digits z folderu Pharma
Displays w bibliotece Global symbol library. Zmienne zostay przypisane
w analogiczny sposb jak dla powyszych kontrolek: w Source wpisano number,
natomiast w Target odpowiedni zmienn.
strzaki elementy 3D arrow right z folderu Arrows w bibliotece Global symbol
library. Zostay uyte strzaki dwch rodzajw: wskazujce w prawo i lewo.
zbiorniki

- zbiorniki zostay importowane z biblioteki graficznej przykadowej

aplikacji Food & Beverage, doczanej standardowo do instalacji oprogramowania


SCADA zenon. Eksport biblioteki projektu mona wykona poprzez kliknicie
prawym przyciskiem myszy na elemencie Project symbol library w gazi Screens
w danym projekcie i wybranie polecenia Export XML all... . Import dokonuje si

w analogiczny sposb, wybierajc z rozwijalnego menu opcj Import XML


i wskazujc miejsce pliku uprzednio eksportowanego.
wskaniki wypenienia elementy Bar display dostpne z menu Elements. Su do
wywietlania

poziomu

wypenienia.

Zostay

do

nich

przypisane

zmienne

przechowujce wartoci wypenienia zbiornika. Konfiguracja elementw polegaa na


zmianie skali na przedzia od 0 do 1500.
grzaka oraz rury s to elementy Pipe dostpne z menu Elements. Gwny rurocig
czcy oba zbiorniki oraz wylot drugiego zbiornika maj wielko 15 punktw,
natomiast pozostae rury maj wielko 5 punktw. Wielko rury mona zmienia
poprzez konfiguracj pola Line Width w polu Representation. Grzaka zostaa
utworzona z elementu Pipe, jej wielko to rwnie 5 punktw.
tekst element Static Text dostpny z menu Elements. Wywietlan warto zmienia
si w polu Text w zakadce Representation w konfiguracji obiektu. Pola tekstowe
posuyy do opisu elementw zamieszczonych w gwnym oknie aplikacji.
przycisk start/stop - standardowy przycisk dostpny z panelu Elements. Zostaa do
niego przypisana zmienna start typu Boolean. W zalenoci od wartoci zmiennej,
przycisk zmienia kolory na zielony z napisem Start (dla wartoci true) oraz kolor
czerwony z napisem Stop (dla wartoci false).
Zmienne i typy zmiennych
Zmienne w programie su do przechowywania wartoci oraz mog by
przypisywane do rnych obiektw, ktre zmieniaj swj wygld w trakcie dziaania
programu. W programie uywalimy zarwno predefiniowanych typw jak i utworzonych
przez nas typw zoonych. Takim typem zoonym jest struktura Tank, skadajca si
z trzech elementw: Fill (UINT) poziom wypenienia zbiornika, Drain (UINT) szybko
wypywania cieczy ze zbiornika, Supply (UINT) szybko dostarczania skadnikw do
zbiornika. Typ strukturalny utworzono poprzez wybranie opcji New Structure Datatype
w Variables/Datatypes. Nastpnie dodano do niego poszczeglne pola poprzez kliknicie
prawym przyciskiem myszy na nowo utworzonym typie i wybraniu opcji New structure
element.
W programie utworzono zmienne typu prostego, potrzebne do okrelenia wielkoci
poszczeglnego skadnika w procesie produkcyjnym i uywane przez receptury. S to
nastpujce zmienne: water, sugar, gas, taurine, aroma, temperature.

Do kadego z dynamicznych elementw (silniki, zawory, pompa) zostay przypisane zmienne


typu BOOL, przechowujce informacj o ich stanie (wczony/wyczony). W przypadku
zaworw i silnikw byy to tablice zmiennych. Tablice zmiennych mona utworzy przy
definiowaniu zmiennej, wystarczy zmieni wymiar zmiennej (ang. dimension).
Funkcje
W aplikacji uywane s funkcje odpowiedzialne za przeczanie okien oraz
wychodzenie ze rodowiska Runtime. Funkcje zostay utworzone poprzez opcj New
Function wybran z menu kontekstowego poprzez nacinicie prawego klawisza myszy na
zakadce Functions w menu projektu. Z pojawiajcego si okna mona wybra interesujc
nas funkcj: Exit Runtime znajduje si w zakadce Application, natomiast Screen Switch
w zakadkach Favourites i Screen.
Receptury
Receptury utworzone zostay w oknie Standard recipes w zakadce Recipes z menu
projektu. Po wybraniu New recipe, wybrane zostay odpowiednie zmienne wchodzce
w skad receptury. W przypadku niniejszego projektu kada receptura skadaa si ze
zmiennych: water, sugar, gas, taurine, aroma, temperature. Nastpnie ustalono odpowiednie
wartoci tych zmiennych poprzez zmian pola Set value. Tak utworzone receptury widoczne
s w trybie Runtime w oknie receptur. Mona je stamtd eksportowa i importowa.
Skrypt VB realizacja animacji
Aby dynamiczne elementy graficzne mogy by animowane, potrzebny by skrypt,
ktry kontrolowaby przepywem programu. zenon udostpnia kilka moliwoci do pisania
programw, w poniszej pracy zdecydowano si na skrypt w jzyku Visual Basic. Edytor
skryptw VB dostpny jest w gwnym drzewku pod elementem Programming
Interfaces/Process Control Engine. Po otworzeniu edytora mamy moliwo dodania nowego
zadania Tasku, poprzez wybranie pozycji New Task. Naleao skonfigurowa powstay
task, w naszym przypadku zostay wybrane nastpujce opcje: typ cykliczny, task startuje
razem z systemem, wykonywanie co 10 ms. Pniej naley wybra wszystkie zmienne
zdefiniowane w zenon Editor a ktrych mamy zamiar uywa w skrypcie VB. Plik z kodem
otwieramy klikajc dwukrotnie na nazw tasku. Znajduj si tam od razu 3 predefiniowane
procedury: init, main i exit, wykonywane odpowiednio na starcie runtime, podczas trwania
runtime, na wyjciu z runtime.

Cay program zosta pomylany jako maszyna stanu, gdzie poszczeglne stany opisuj
zachowanie dynamicznych elementw w kolejnych, nastpujcych po sobie krokach. Kod
znajduje si w funkcji Task_Main(), w funkcji Task_Init() umieszczone zostay jedynie dwa
przypisania zmiennych, natomiast funkcja Task_Exit() jest nieuywana.
Poszczeglne stany przedstawiaj si nastpujco:
1. przygotowanie do startu zaadowanie receptur,
2. odczekanie chwili na start procesu,
3. napenienie pierwszego zbiornika skadnikami,
4. mieszanie zawartoci pierwszego zbiornika,
5. przelanie zawartoci pierwszego zbiornika do drugiego zbiornika,
6. dodanie pozostaych skadnikw do drugiego zbiornika,
7. podgrzewanie zawartoci drugiego zbiornika,
8. mieszanie skadnikw w drugim zbiorniku,
9. wypuszczenie gotowego zbiornika,
10. przejcie do pocztku programu.
Maszyna stanu zrealizowana zostaa za pomoc instrukcji Select Case, ktra cyklicznie
realizowaa dany stan, okrelony w zmiennej o tej samej nazwie stan. Opnienia
w programie realizowane byy przez inkrementacj jednej ze zmiennych do odpowiedniej
wartoci. Skonfigurowany Task w edytorze VB znajduje si na Rys. 5.4.

Rys. 5.4 Edytor VB ze sokonfigurowanym Task'iem

Uwagi kocowe
Podczas projektowania aplikacji okazao si, e rozoenie elementw w trybie edycji okna
i trybie dziaania aplikacji jest rne cz elementw po przejciu w tryb Runtime zostaa
przesunita.
Debugowanie programw napisanych w edytorze VB jest utrudnione z tego powodu,
e kompilator podaje bardzo mao informacji istniejcych w programie bdach.

6. Kody rdowe z opisem


Kod znajdujcy si w edytorze VB zosta zamieszczony poniej. Linie zaczynajce si
od pojedynczego apostrofu oznaczaj komentarz i zostay umieszczone dla rozjanienia
zamieszczonych tam instrukcji.
Kade odwoanie do zmiennej zdefiniowanej w zenon Editor musi odbywa si poprzez
instrukcj

Task.Value(nazwa

zmiennej),

natomiast

odwoania

do

zmiennych

zdefiniowanych wewntrz edytora nie wymagaj ju takich polece.


'Globalna deklaracja zmiennych
Dim stan, licznik 'zmienne przechowujace numer aktulanego stanu i
uzywany miejscami licznik
'do ponizszych zmiennych przepisywane sa wartosci receptur w momencie
uruchomienia programu
Dim waterR, sugarR, gasR, taurineR, aromaR, temperatureR
'zmienne przechowuja wartosci maksymalnego wypelnienia zbiornika
Dim FillLevel1, FillLevel2
'Initfunction
Sub Task_Init()
'Poczatkowa inicjalizacja zmiennych
stan = 1
licznik = 0
End Sub
'The Mainfunction is a cyclic function
Sub Task_Main()
'Program dziala tylko, jesli uzytkownik wcisna przycisk Start
If Task.Value("start") = 0 Then
'Rozpoczecie instrukcji wykonywania odpowiedniego stanu
Select Case stan
Case 1 'Przygotowanie do startu
licznik = 0

'Ustawianie zmiennych do stanu poczatkowego


'Sposob przedstawiony ponizej pozwala na odwolanie sie
'do zmiennej zdefiniowanej w edytorze zenon
Task.Value("Motor[1]")=false
Task.Value("Motor[2]")=false
Task.Value("Valve[1]")=false
Task.Value("Valve[2]")=false
Task.Value("Valve[3]")=false
Task.Value("Valve[4]")=false
Task.Value("Pump")=false
Task.Value("PumpRotation")=false
Task.Value("Tank[1].Fill level")=0
Task.Value("Tank[2].Fill level")=0
'Odczytanie wartosci receptur
waterR = 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 drugiego
stan = 2
Case 2 'Odczekanie chwili przed rozpoczeciem procesu
licznik = licznik + 1
If licznik = 50 Then
licznik = 0
stan = 3
End If
Case 3 'Napelnianie zbiornika skladnikami
Task.Value("Valve[4]") = true
'Maksymalna wartosc wypelnienia osiagana przez 1. zbiornik
FillLevel1 = 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
Else
stan = 4
End If
Case 4 'Proces mieszania
Task.Value("Valve[4]") = false
Task.Value("Motor[1]") = true
If licznik < 500 Then
licznik = licznik + 1
Else

Task.Value("Motor[1]") = false
licznik = 0
stan = 5
End If
Case 5 'Przelanie zawartosci zbiornika
Task.Value("Valve[1]") = true
Task.Value("Pump") = true
Task.Value("Valve[2]") = true
If 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
Else
stan = 6
End If
Case 6 'Dodanie do 2 zbiornika skladnikow
Task.Value("Valve[1]") = false
Task.Value("Pump") = false
Task.Value("Valve[2]") = false
If licznik < 300 Then
licznik = licznik + 1
Else
Task.Value("Tank[2].Fill level") = Task.Value("Tank[2].Fill
level") + aromaR+taurineR
licznik = 0
stan = 7
End If
Case 7 'Podgrzewanie
'Zwiekszanie temperatury odbywa sie z czestotliwoscia
'dwukrotnie mniejsza od trwania cyklu
If licznik/2 < temperatureR Then
Task.Value("currTemperature") = licznik/2
licznik = licznik + 1
Else
licznik = 0
stan = 8
End If
Case 8 'Mieszanie skladnikow w drugim zbiorniku
Task.Value("Motor[2]") = true
If licznik < 500 Then
licznik = licznik + 1
Else
licznik = 0
Task.Value("Motor[2]") = false
stan = 9
End If

Case 9 'Wypuszczenie gotowego produktu


Task.Value("Valve[3]") = true
If Task.Value("Tank[2].Fill level") > 9 Then
Task.Value("Tank[2].Fill level") =
level") - 10
Else
Task.Value("Valve[3]") = false
stan = 10
End If
Case 10
'Przejscie do poczatku programu
Task.Value("start") = 1
End Select

Task.Value("Tank[2].Fill

Else 'Reset programu


'Jesli uzytkownik wybral nowa recepte i ponownie wcisna
'przycisk Start, nastapi przejscie do 1. stanu
If stan = 10 And Task.Value("start") = 1 Then
stan = 1
End If
End If 'start
End Sub
'Exitfunction
Sub Task_Exit()
End Sub
'Timerfunction
Sub Task_Timer(lTimerId)
End Sub

7. Instrukcja dla uytkownika aplikacji


Po

uruchomieniu

aplikacji

widzimy

dwa

okna:

gwne

okno

procesu,

z zamieszczonymi graficznymi elementami przedstawiajcymi zbiorniki, zawory itd. oraz


znajdujcy si poniej panel z przyciskami.
Panel nawigacji
Na panelu dostpne s 3 przyciski:
Main window po naciniciu pokazuje gwne okno procesu; mona w tym celu
uy rwnie skrtu klawiszowego Alt+M,

Recipes przejcie do okna z recepturami, skrt klawiszowy to Alt+R,


Exit Runtime - wyjcie ze rodowiska Runtime, skrt klawiszowy to Alt+E.
Panel nawigacji przedstawiony zosta wczeniej na Rys. 5.1
Okno receptur
Okno to stanowi zesp elementw, dziki ktrym w peni moemy zarzdza
recepturami. W grnym lewym rogu umieszczona jest lista rozwijalna, z ktrej moemy
wybra zdefiniowane uprzednio receptury. Po wybraniu jednej z nich, zmienne dodane do
receptury oraz ich wartoci wywietlaj si poniej. Warto przypisan do danej zmiennej
mona zmieni, klikajc na pole w kolumnie Value. Po obu stronach zostanie wwczas
wywietlony zakres wartoci przyjmowanych przez zmienn.
Idc kolejno od lewego grnego rogu napotykamy na nastpujce przyciski:
Recipe new suy do dodawania nowej receptury. W pojawiajcym si okienku
jestemy pytani m.in. o nazw nowej receptury oraz poziom autoryzacji, potrzebny do
jej uywania.
Edit recipe suy do edytowania aktualnie wywietlanej receptury. Wyskakujce
okienko pyta nas o te same dane, jak powyej.
Copy recipe - aktualnie wywietlana receptura zostanie skopiowana.
Delete recipe aktualnie wywietlana receptura zostanie skasowana.
Add variable - dodanie nowej zmiennej do receptury. Z pojawiajcego si okienka,
zawierajcego wszystkie zdefiniowane przez uytkownika zmienne oraz zmienne
stworzone wraz z tworzeniem projektu, naley wybra zmienne, ktre chcemy doda
do receptury, klikajc na odpowiedni nazw zmiennej dwukrotnie. Moemy wybra
wicej ni jedn zmienn.
Release variable usuwanie konkretnej zmiennej z receptury.
Read recipe przypisanie nowych wartoci do zmiennych w danej recepturze. Nowe
wartoci zostan zaczerpnite z aktualnych wartoci zmiennych.
Write recipe przypisywanie wartoci zmiennych zdefiniowanych w recepturze do
zmiennych w aplikacji.
Edit set value edytowanie wartoci przypisanej do zmiennej w recepturze.
All value-- - wszystkie wartoci zmiennych w recepturze zostan zmniejszone o 1.

All values++ - analogicznie jak wyej, aczkolwiek wszystkie wartoci zmiennych


zostan powikszone o 1.
Recipe

save

zapisanie

aktualnej

receptury.

Przydatne

przy

tworzeniu/modyfikowaniu receptur.
Import recipe suy do importowania wczeniej zdefiniowanego i zapisanego na
dysku pliku z recepturami.
Export recipe suy do eksportowania aktualnie wywietlanej receptury do pliku.
Okno gwne programu
W oknie tym przedstawiony zosta proces produkcji napojw energetycznych.
Niektre elementy (zawory, silniki) bd zmieniay swoje stany podczas dziaania procesu.
Pola numeryczne wywietlaj aktualne wartoci receptur i zmiennych. Na zbiornikach
umieszczone zostay wskaniki poziomu wypenienia, ktre rwnie zmieniaj si w trakcie
dziaania programu. W tym oknie jedynym aktywnym przyciskiem jest przycisk Start/Stop
umieszczony po lewej stronie pierwszego ze zbiornikw. Przy uruchamianiu programu
przycisk ten wywietla napis Start i ma kolor zielony, po jego naciniciu kolor zmienia si na
czerwony a napis na Stop.
Uruchamianie programu
Aby uruchomi program, najpierw naley przej do okna receptur. W tym celu naciskamy
przycisk Recipes, umieszczony w panelu nawigacyjnym. W grnym lewym rogu umieszczone
zostay predefiniowane receptury. Po wybraniu jednej z nich, klikamy na przycisk Write
Values, znajdujcy si po prawej stronie. Sprawi to, e wybrane przez nas wartoci zmiennych
zapisanych w recepturze przepisane zostan do zmiennych zdefiniowanych w programie.
Nastpnie przechodzimy do gwnego okna procesu, naciskajc na przycisk Main Window
znajdujcy si na panelu nawigacyjnym. Moemy teraz zauway, e pola numeryczne,
podpisane H2O, Sugar, C2O itd. bd wywietlay wartoci zapisane w recepturze.
Naciskamy na przycisk Start wwczas uruchomiony zostanie cay proces. Podczas jego
dziaania program bdzie przechodzi przez nastpujce kroki:
1. przygotowanie do startu zaadowanie receptur,
2. odczekanie chwili na start procesu,
3. napenienie pierwszego zbiornika skadnikami,
4. mieszanie zawartoci pierwszego zbiornika,

5. przelanie zawartoci pierwszego zbiornika do drugiego zbiornika,


6. dodanie pozostaych skadnikw do drugiego zbiornika,
7. podgrzewanie zawartoci drugiego zbiornika,
8. mieszanie skadnikw w drugim zbiorniku,
9. wypuszczenie gotowego zbiornika,
10. przejcie do pocztku programu.
W midzyczasie niektre elementy graficzne bd si zmieniay np. kolory na zaworach,
poziom wypenienia itd. Uytkownik w kadej chwili moe zatrzyma proces naciskajc na
przycisk Stop. Aby wznowi proces naley nacisn na przycisk Start.
Gdy proces zakoczy si, czerwony do tej pory przycisk z napisem Stop, zamieni kolor na
zielony, tekst zostanie wwczas zamieniony na Start. Jest to znak, e mona wybra now
receptur i powtrzy dziaanie caego procesu z nowo zaadowan receptur.

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

You might also like