Projekat Lifta

24
PROGRAM ZA UPRAVLJENJE RADOM LIFTA PROJEKTOVANJE POMOĆU RAČUNARA Ime i prezime: MARKO JAKIĆ Vježba broj: 1 Škol. god. 2002/2003 ZADATAK Napraviti pragram za PLC koji će animirati rad lifta u stambenoj zgradi. Pri izradi programa uzeti u obzir sledeće pretpostavke: Zgrada je visoka 10 spratova plus prizemlje. Na svakom spratu postoji poziv lifta za gore i dole, osim na 10 spratu gde postoji poziv samo za dole i u prizemlju gde postoji poziv samo za gore. U liftu postoje komande za svaki sprat, komanda za stop, indikacija preopterećenja, komande za otvaranje i zatvaranje vrata na spratu te pokazivanje trenutnog položaja lifta na displeju. Pri radu lifta prioritet imaju komande zadate iz kabine, a komande poziva izvana se izvršavaju u zavisnosti od smijera kretanja lifta, dok lift ide prema gore onda staje na sve pozive na koje usput naiđe prema gore, a isto tako i prema dole. Kod odlučivanja gdje da lift krene uzeti u obzir najkraći potreban put da lift obavi zadane radnje. IZRADA: Za uspešnu izradu programa moramo se držati određenog redosleda radnji i postupaka koji će nas dovesti do konačnog cilja zadatka. Kao prvi korak moramo odrediti ukupan broj i vrstu ulaza i izlaza u naš upravljački sistem. Za naš konkretni slučaj to iznosi: ULAZI: -Poziv za gore na svakom spratu osim na 10 9+Pr=10 BOOL ulaza -Poziv za dole na svakom spratu osim u prizemlju 10=10 BOOL ulaza -Otvaranje i zatvaranje vrata kabine 1+1=2 BOOL ulaza -STOP i Preopterećeno 1+1=2 BOOL ulaza 1

Transcript of Projekat Lifta

Page 1: Projekat Lifta

PROGRAM ZA UPRAVLJENJE RADOM LIFTA

PROJEKTOVANJE POMOĆU RAČUNARA

Ime i prezime: MARKO JAKIĆ

Vježba broj: 1 Škol. god. 2002/2003

ZADATAK

Napraviti pragram za PLC koji će animirati rad lifta u stambenoj zgradi. Pri izradi programa uzeti u obzir sledeće pretpostavke:

Zgrada je visoka 10 spratova plus prizemlje. Na svakom spratu postoji poziv lifta za gore i dole, osim na 10 spratu gde postoji poziv samo za dole i u prizemlju gde postoji poziv samo za gore.U liftu postoje komande za svaki sprat, komanda za stop, indikacija preopterećenja, komande za otvaranje i zatvaranje vrata na spratu te pokazivanje trenutnog položaja lifta na displeju.Pri radu lifta prioritet imaju komande zadate iz kabine, a komande poziva izvana se izvršavaju u zavisnosti od smijera kretanja lifta, dok lift ide prema gore onda staje na sve pozive na koje usput naiđe prema gore, a isto tako i prema dole. Kod odlučivanja gdje da lift krene uzeti u obzir najkraći potreban put da lift obavi zadane radnje.

IZRADA:

Za uspešnu izradu programa moramo se držati određenog redosleda radnji i postupaka koji će nas dovesti do konačnog cilja zadatka.

Kao prvi korak moramo odrediti ukupan broj i vrstu ulaza i izlaza u naš upravljački sistem.Za naš konkretni slučaj to iznosi:

ULAZI:-Poziv za gore na svakom spratu osim na 10 9+Pr=10 BOOL ulaza-Poziv za dole na svakom spratu osim u prizemlju 10=10 BOOL ulaza-Otvaranje i zatvaranje vrata kabine 1+1=2 BOOL ulaza-STOP i Preopterećeno 1+1=2 BOOL ulaza-Poziv unutar lifta za svaki sprat 10+Pr=11 BOOL ulaza

IZLAZI:-Komanda za motor uključen-isključen 1=1 BOOL izlaz-Komanda za smer gore - dole motora 1+1=2 BOOL izlaza-Indikatori položaja kabine 10+Pr=11 BOOL izlaza-Komande za otvaranje vrata po spratovima 10+Pr=11 BOOL izlaza

UNUTARNJE VARIJABLE:-One će biti definirane tokom procesa izrade programa.

Sledeći korak bi bio da pokrenemo CodeSys program i da u njegovom okruženju iscrtamo grafički dio koji će nam biti potreban za animaciju. On u konkretnom slučaju može da izgleda ovako, a stvar je ukusa i stila kako će on biti u konkretnoj situaciji prikazan. Pri tome treba težiti pojednostavljenju pri čemu se ne smije zanemariti prikaz što je moguće vjernijih komandi i kretanja koja se mogu dešavati u stvarnoj situaciji.

1

Page 2: Projekat Lifta

PROGRAM ZA UPRAVLJENJE RADOM LIFTA

Sl.1 Predloženi grafički izgled lifta

Kada smo uradili ovaj dio posla, tada prelazimo na sam proces programiranja koji zahtijeva dosta snalažljivosti i detaljnog poznavanja procesa koji treba opisati. Da bi to sebi olakšali posao potrebno je prethodno uraditi algoritam rada lifta, pa onda na osnovu algoritma pisati program, a u toku pisanja programa ili po njegovom završetko potrebno je pojedine promjenjljive vezivati za pripadajuće grafiče objekte, te ćemo na taj način dobiti i vizuelni prikaz rada samog programa. Time se posao rasčlanjuje na tri operacije, te se tako na lakši i pregledniji način dolazi do konačnog rešenja.

ALGORITAM RADA LIFTA

2

Page 3: Projekat Lifta

PROGRAM ZA UPRAVLJENJE RADOM LIFTA

Kod izrade algoritma rada lifta moramo voditi računa o tome kako da definišemo sam rad lifta. Naime, mi u ovisnosti od namjene lifta možemo odmah da pretpostavimo određene zakonitosti rada lifta i da ih kao takve odmah ugradimo u algoritam rada, a samim tim i u program. Budući da se radi o liftu za prevoz stanara u zgradi, to će mo i algoritam rada tog lifta prilagoditi tom načinu upotrebe. Za tu svrhu pretpostavit ćemo sledeća stanja i radnje koje lift treba da ispuni pri nastalim stanjima ili situacijama. Pa da ih nabrojimo:

1. Prioritet u kretanju lifta imaju komande i naredbe date sa tastera iz same kabine lifta. (poziv za sprat, stop, preopterećenost, ..)

2. Ako nema nikakvih naredbi iz unutrašnjosti lifta, onda se izvršavaju naredbe date van kabine lifta (poziv gore-dole, otvaranje i zatvaranje vrata).

3. Kod samih poziva i odlučivanja smjera kretanja mora se ispoštovati načelo najkraćeg puta, a samim tim i nakraćeg vremena ispunjenja svih zahtjeva koji su postavljeni.

4. Kada lift ide prema gore, onda treba da usput zastane na svim pozivima ka gore na koje naiđe, a isto to važi i kod puta prema dole.

5. Kod naredbe stop i preopterećeno, kabina treba odmah da stane i da omogući otvaranje vrata za izlazak viška putnika.

6. U kabini lifta i na svakom spratu treba da postoji indikacija smjera koji trenutno lift ima te položaj na kom se trenutno spratu nalazi.

Da bi uopšte kabina lifta krenula potrebno je da postoji bar jedan poziv sa bilo koje lokacije na liftu ili van lifta. Programski to rješavamo sa jednom IF petljom koja u našem slučaju glasi:

IF (D1=TRUE OR D2=TRUE OR D3=TRUE OR D4=TRUE OR D5=TRUE OR D6=TRUE OR D7=TRUE OR D8=TRUE OR D9=TRUE OR D10=TRUE ORG0=TRUE OR G1=TRUE OR G2=TRUE OR G3=TRUE OR G4=TRUE OR G5=TRUE OR G6=TRUE OR G7=TRUE OR G8=TRUE OR G9=TRUE ORS0=TRUE OR S1=TRUE OR S2=TRUE OR S3=TRUE OR S4=TRUE OR S5=TRUE OR S6=TRUE OR S7=TRUE OR S8=TRUE OR S9=TRUE OR S10=TRUE)THEN......

Pri čemu su: D do D10 .. komande za poziv ka dole G0 do G9.. komande za poziv ka gore S0 do S10..komande za poziv na željeni sprat

Za rješenje problema kretanja same kabine lifta kao prvi uslov moramo definisati način na koji će se donijeti odluka na koju stranu će krenuti kabina lifta. Za to nam je potrebna informacija o najmanjoj udaljenosti poziva, bilo izvana ili iznutra, za lift od njegovog stvarnog trenutnog položaja. Nazovimo te promjenjljive sa:

RASTS- Najmanja udaljenost poziva za sprat od položaja kabineRASTPG- Najmanja udaljenost poziva za gore od položaja kabineRASTPD- Najmanja udaljenost poziva za dole od položaja kabine

Sada možemo definirati algoritam za iznalaženje najmanje moguće udaljenosti poziva za lift od njegovog stvarnog položaja.

3

Page 4: Projekat Lifta

PROGRAM ZA UPRAVLJENJE RADOM LIFTA

Za pozive lifta ka gore izvana algoritam izgleda:

RASTPG:=12

RASTPG:=POL - 0

IF G0=1DA

[POL-0] < [RASTPG]DA

[POL-1] < [RASPG]IF G1=1DA

RASTPG:=POL - 1

DA

START

RASTS:=12RASTPD:=12

IF

IF

POL:=0

Sl.2 Algoritam za RASTPG

Na taj način će mo kao rezultat ove i narednih petlji (za svaki sprat po 1 s tim što se indeks mijenja)dobiti promjenjljivu RASTPG .

Programski to izgleda ovako: izračunavanje vrednosti RASTPG,

IF (G0=TRUE AND (ABS(POL -0))<(ABS(RASTPG))) THEN RASTPG:=(POL-0);

END_IF;IF (G1=TRUE AND (ABS(POL -1))<(ABS(RASTPG)))

THEN RASTPG:=(POL-1);END_IF;................

Na sličan način i po sličnim algoritmima proračunavaju se i vrijednosti za RASTS i RASTPD.Ovdje će mo prikazati samo po jedan red petlje, a ona se nastavlja za svaki sprat kao što je i dato na kraju ovog rada.

4

Page 5: Projekat Lifta

PROGRAM ZA UPRAVLJENJE RADOM LIFTA

DA

RASTPD:=POL - 1

DAIF D1=1

DA DA[POL-1] < [RASTPD]

IF

Sl.3 Algoritam za RASTPD Programski algoritam za RASTPD (za dva sprata) izgleda ovako:

IF(D1=TRUE AND ( ABS(POL -1))<(ABS(RASTPD)))THEN RASTPD:=(POL-1);

END_IF; IF (D2=TRUE AND (ABS(POL -2))<(ABS(RASTPD)))

THEN RASTPD:=(POL-2);END_IF;

Algoritam za RASTS je:

IF S0=1DADA

[POL-0] < [RASTS]

RASTS:=POL - 0

IF

Sl.4 Algoritam za RASTS

Programski algoritam za RASTS (za dva sprata) izgleda ovako:

IF (S0=TRUE AND (ABS(POL -0))<(ABS(RASTS))) THEN RASTS:=(POL-0);

END_IF; IF (S1=TRUE AND (ABS(POL -1))<(ABS(RASTS))) THEN RASTS:=(POL-1);

END_IF;

Kada smo odredili vrednosti promjenljivih za RASTS, RASTPG i RASTPD tada imamo:1.Ako je RASTS 0 i RASTS 12 tada imamo situaciju da imamo poziv unutar kabine za

neki od spratova, i samim tim dajemo prioritet kretanju kabine na osnovu komandi iz kabine. Odluku da li će lift ići gore ili dole se donosi na osnovu predznaka promjenjljive RASTS, ako je on pozitivan lift ide ka dole, a ako je negativan onda lift ide prema gore. Sada dolazimo ponovo u situaciju da odlučujemo i to:

5

Page 6: Projekat Lifta

PROGRAM ZA UPRAVLJENJE RADOM LIFTA

Ako lift ide prema gore tj. RASTS je negativno, onda ako na svom putu naiđe na poziv RASTPG =0 tada treba da kabina stane i primi putnika koji želi da ide u istom smjeru kao i putnik u liftu.

Ista je situacija ako je RASTS pozitivna, u tom slučaju kabina ide ka dole i uzimamo u obzir samo vrednost RASTPD, tj. stajemo na mjestu gdje ima poziva za dole.

A ako je RASTS=0 to je pokazatelj da je lift stigao do željenog odredišta i u tom slučaju motor mora stati, vrata otvoriti i pustiti da putnici izađu.

Algoritam za gore navedeno izgleda ovako:

IF RASTS < 0

NE

DA

NE

IF RASTS>0

NE

IF RASTPG=0DA

MOTOR=TRUEGORE=TRUE

DOLE=FALSE

DOLE=FALSE

GORE=FALSEMOTOR=FALSE

DOLE=TRUE

GORE=FALSEMOTOR=TRUE

IF RASTPG=0 GORE=FALSEMOTOR=FALSE

DOLE=FALSE

DADA

IF RASTS=12

DA

Sl.5 Algoritam rada lifta za RASTS 0

Programski to izgleda ovako:

IF (RASTS<0) AND RASTPG=0THEN MOTOR:=FALSE; GORE:=FALSE; DOLE:=FALSE;MOTOR1:=FALSE;

END_IF;IF RASTS<0 AND RASTPG<>0

THEN MOTOR:=TRUE; GORE:=TRUE; DOLE:=FALSE;END_IF;

6

Page 7: Projekat Lifta

PROGRAM ZA UPRAVLJENJE RADOM LIFTA

IF (RASTS>0) AND RASTPD=0THEN MOTOR:=FALSE; GORE:=FALSE; DOLE:=FALSE;MOTOR1:=FALSE;

END_IF;IF RASTS>0 AND RASTPD<>0

THEN MOTOR:=TRUE; GORE:=FALSE; DOLE:=TRUE;END_IF;IF RASTS=0

THEN MOTOR:=FALSE; GORE:=FALSE; DOLE:=FALSE; MOTOR1:=FALSE;END_IF;

2. Ako nam je RASTS=12, to znači da nemamo nikakvih poziva iz kabine lifta i u tom slučaju ponovo imamo tri novonastale situacije

a) RASTPG>RASTPD, to znači da poziv koji poziva lift u smjeru ka dole ima prioritet i lift treba prvo njega da izvršava. b) RASTPG<RASPD, to znači da poziv koji poziva lift u smeru ka gore ima prioritet i lift treba prvo njega da izvršavac) RASTPG=0 ili RASPD=0, to znači da je lift stigao do željenog poziva i da mora stati.

Program za slučaj pod (a) izgleda ovako:

IF (ABS(RASTPG)>ABS(RASTPD)) AND RASTS=12THEN IF (RASTPD=0)

THEN MOTOR:=FALSE; GORE:=FALSE; DOLE:=FALSE;MOTOR1:=FALSE;ELSIF (RASTPD<>0)THEN IF (RASTPD>0)

THEN MOTOR:=TRUE; GORE:=FALSE; DOLE:=TRUE;ELSIF (RASTPD<0)

THEN MOTOR:=TRUE; GORE:=TRUE; DOLE:=FALSE;END_IF;

END_IF;

Program za slučaj pod (b) izgleda ovako:

IF (ABS(RASTPG)<=ABS(RASTPD)) AND RASTS=12THEN IF (RASTPG=0)

THEN MOTOR:=FALSE; GORE:=FALSE; DOLE:=FALSE; MOTOR1:=FALSE;ELSIF (RASTPG<>0)

THEN IF (RASTPG>0)THEN MOTOR:=TRUE; GORE:=FALSE; DOLE:=TRUE;ELSIF (RASTPG<0)

THEN MOTOR:=TRUE; GORE:=TRUE; DOLE:=FALSE;END_IF;

END_IF;Algoritam za to izgleda ovako

7

Page 8: Projekat Lifta

PROGRAM ZA UPRAVLJENJE RADOM LIFTA

NEIF RASTS=12

ABS(RASTPG)>ABS(RASTPD)

IFDA

IF RASTPD=0DA

MOTOR=FALSEGORE=FALSE

DOLE=FALSE

GORE=TRUEMOTOR=TRUE

DOLE=FALSE

NE

IF RASTPD>0

DOLE=TRUE

GORE=FALSEMOTOR=TRUE

DA

DA

NE

NE

IF RASTPG=12

IF RASTPD=12V

DA

S T O P

NE

Sl.6 Algoritam za situaciju pod (a)

NEIF RASTS=12

ABS(RASTPG)>ABS(RASTPD)

IF

IF RASTPG=0MOTOR=FALSEGORE=FALSE

DOLE=FALSE

NE

DA

IF RASTPG>0

DOLE=TRUE

GORE=FALSEMOTOR=TRUE

DA NE MOTOR=TRUEGORE=TRUE

DOLE=FALSE

DA

NE

IF RASTPG=12

IF RASTPD=12V

DA

S T O P

Sl.7 Algoritam za situaciju pod (b)

8

Page 9: Projekat Lifta

PROGRAM ZA UPRAVLJENJE RADOM LIFTA

Sa ovim gore navedenim nisu rešeni svi problemi vezani za izradu programa za lift. Ostaje nam još da riješimo problem animiranja kretanja kabine, otvaranja i zatvaranja vrata, uključenje i isključenje motora, smjer motora, indikacija sprata... i mnogi drugi sitni detalji na koje se nailazi usput pri samom pisanju programa.

Ovdje ću da spomenem samo neke karakteristične dijelove programa.Animiranje kretanja kabine: Animiranje će mo izvršiti tako što će mo uvesti jednu novu unutarnju promjenljivu i dati joj ime POLK kao skraćenice za položaj kabine, a onda će mo objektu koji predstavlja kabinu dodijeliti tu promenjljivu za kretanje u smeru Y ose. Programski to izgleda ovako:

IF STOP=FALSE AND PREOPT=FALSE THEN

IF (MOTOR=TRUE AND GORE=TRUE AND POLVKL=0 AND POLVL0=0 AND POLVL1=0 AND POLVL2=0 AND POLVL3=0 AND POLVL4=0 AND POLVL5=0 AND POLVL6=0 AND POLVL7=0 AND POLVL8=0 AND POLVL9=0 AND POLVL10=0)

THEN POLK:=POLK-1; POL:=-0.02*POLK; MOTOR1:=TRUE;END_IF;

IF (MOTOR=TRUE AND DOLE=TRUE AND POLVKL=0 AND POLVL0=0 AND POLVL1=0 AND POLVL2=0 AND POLVL3=0 AND POLVL4=0 AND POLVL5=0 AND POLVL6=0 AND POLVL7=0 AND POLVL8=0 AND POLVL9=0 AND POLVL10=0)

THEN POLK:=POLK+1; POL:=-0.02*POLK; MOTOR1:=TRUE;END_IF;END_IF;IF STOP=TRUE OR PREOPT=TRUE

THEN MOTOR1:=FALSE;END_IF;

Animiranje otvaranja i zatvaranja vrata na spratovima izgleda ovako za svaki sprat samo se promjenjljive mijenjaju a za sprat br 1 izgleda ovko:

(*animiranje otvaranje i zatvaranje vrata na kabini br 1*)IF (MOTOR=FALSE AND POL=1 AND POLVL1>-15)

THEN POLVL1:=POLVL1-0.5; POLVD1:=-POLVL1;END_IF;

(*kada su vrata otvorena cekamo 5 sekundi i zatvaramo ih*)IF (POLVL1=-15)

THEN sat.IN:=TRUE; S1:=FALSE; G1:=FALSE; D1:=FALSE;END_IF;IF sat.Q=TRUE AND POLVL1<0 AND POLVKL=0

THEN POLVL1:=POLVL1+0.5; POLVD1:=-POLVL1; sat.IN:=FALSE;RASTS:=12; RASTPG:=12; RASTPD:=12;

END_IF;

Animiranje otvaranja i zatvaranja vrata na samoj kabini lifta izgleda ovako:

IF VRATAO=TRUE AND POLVKL>-70THEN POLVKL:=POLVKL-1; POLVKD:=-POLVKL;

END_IF;IF POLVKL=-70

THEN VRATAO:=FALSE;END_IF;IF VRATAZ=TRUE AND POLVKL<0

THEN POLVKL:=POLVKL+1; POLVKD:=-POLVKL;END_IF;IF POLVKL=0

9

Page 10: Projekat Lifta

PROGRAM ZA UPRAVLJENJE RADOM LIFTA

THEN VRATAZ:=FALSE;END_IF;

A prikazivanje položaja na kom se nalazi trenutno lift je riješeno ovako:

IF POL>0 AND POL<0.5THEN SPRAT0:=FALSE; SPRAT1:=TRUE; SPRAT2:=TRUE; SPRAT3:=TRUE; SPRAT4:=TRUE; SPRAT5:=TRUE; SPRAT6:=TRUE; SPRAT7:=TRUE; SPRAT8:=TRUE; SPRAT9:=TRUE; SPRAT10:=TRUE;END_IF;

Kao što se vidi, problem rada lifta je riješen u programskom jeziku ST, pomoću programskog paketa CodeSys, i njego čitav kod je naveden dole, izvorno kako je i napisan.

ZAKLJUČAK:

Kroz primer ovog zadatka dat je sažet prikaz postupka rešavanja složenijih problema koji se na relativno jednostavan i lak način rješavaju primenom PLC_a, što donosi značajne uštede kako u vremenu samog projektovanja, tako i u ukupnoj cijeni konačnog proizvoda. Kada bi se uzele u obzir i moguće modifikacije koje na veoma lak i pristupačan način možemo izvršiti mijenjanjem samo programa onda se tek dolazi do pravih prednosti korištenja PLC u industrijskom upravljanju.

10

Page 11: Projekat Lifta

PROGRAM ZA UPRAVLJENJE RADOM LIFTA

PROGRAM PLC_PRGVARRASTPD:REAL:=12; (* NAJMANJA UDALJENOST POZIVA ZA DOLE ODTRENUTNOG POLOZAJA KABINE-12 JE ZADANO KAO NEMOGUCE*)RASTPG:REAL:=12;(* NAJMANJA UDALJENOST POZIVA ZA GORE ODTRENUTNOG POLOZAJA KABINE-12 JE ZADANO KAO NEMOGUCE*)RASTS:REAL:=12;(* NAJMANJA UDALJENOST POZIVA IZ KABINE OD TRENUTNOG POLOZAJA KABINE-12 JE ZADANO KAO NEMOGUCE*)POL: REAL:=0;(*TRENUTNI POLOZAJ KABINE- INICIJALNO U PRIZEMLJU, TJ NA SPRATU NULA 0*)

D0:BOOL; (* D0 DO D10 SU KOMANDE IZVANA ZA POZIV LIFTA PREMA DOLE*)D1: BOOL;D2: BOOL;D3: BOOL;D4: BOOL;D5: BOOL;D6: BOOL;D7: BOOL;D8: BOOL;D9: BOOL;D10: BOOL;G0: BOOL; (*G0 DO G9 SU KOMANDE IZVANA ZA POZIV LIFTA KA GORE*)G1: BOOL;G2: BOOL;G3: BOOL;G4: BOOL;G5: BOOL;G6: BOOL;G7: BOOL;G8: BOOL;G9: BOOL;G10:BOOL;S0: BOOL; (*S0 DO S10 SU POZIVI IZ KABINE DO ZELJENOG SPRATA*)S1: BOOL;S2: BOOL;S3: BOOL;S4: BOOL;S5: BOOL;S6: BOOL;S7: BOOL;S8: BOOL;S9: BOOL;S10: BOOL;

MOTOR: BOOL; (*PROMJENJLJIVA MOTORA UKLJUCEN-ISKLJUCEN*)MOTOR1: BOOL;(*INDIKACIJA UKLJUCENOSTI MOTORA*)GORE: BOOL; (*SMJER MOTORA ZA GORE*)DOLE: BOOL; (*SMJER MOTORA KA DOLE*)POLK: REAL; (*TRENUTNI POLOZAJ KABINE*)SAT: TON; (*VRIJEME CEKANJA LIFTA DA KRENE*)IN: BOOL; (*ULAZ U SAT*)

POLVL0: REAL:=-15; (* POLOZAJ VRATA PO SPRATOVIMA, U PRIZEMLJU INICIJALNO OTVORENA*)POLVD0: REAL:=15;POLVL1: REAL;POLVD1: REAL;POLVL2: REAL;POLVD2: REAL;POLVL3: REAL;

11

Page 12: Projekat Lifta

PROGRAM ZA UPRAVLJENJE RADOM LIFTA

POLVD3: REAL;POLVL4: REAL;POLVD4: REAL;POLVL5: REAL;POLVD5: REAL;POLVL6: REAL;POLVD6: REAL;POLVL7: REAL;POLVD7: REAL;POLVL8: REAL;POLVD8: REAL;POLVL9: REAL;POLVD9: REAL;POLVL10: REAL;POLVD10: REAL;POLVKL: REAL; (*VRATA KABINE LIJEVA*)POLVKD: REAL;VRATAO: BOOL; (*KOMANDA ZA OTVARANJE VRATA KABINE*)VRATAZ: BOOL;(*KOMANDA ZA ZATVARANJE VRATA KABINE*)PREOPT: BOOL;(*INDIKACIJA PREOPTERECENJA KABINE*)STOP: BOOL;(*TASTER ZA STOP*)SPRAT1: BOOL; (*INDIKACIJA SPRATOVA U KABINI*)SPRAT0: BOOL;SPRAT2: BOOL;SPRAT3: BOOL;SPRAT4: BOOL;SPRAT5: BOOL;SPRAT6: BOOL;SPRAT7: BOOL;SPRAT8: BOOL;SPRAT9: BOOL;SPRAT10: BOOL;

END_VAR

(*LIFT- PROJEKTNI ZADATAK ZA KANDIDATA MARKO JAKIC*)(*PROVJERA DA LI IMA IKAKVIH POYIVA SA KOMANDI LIFTA*)IF (D1=TRUE OR D2=TRUE OR D3=TRUE OR D4=TRUE OR D5=TRUE OR D6=TRUE OR D7=TRUE OR D8=TRUE OR D9=TRUE OR D10=TRUE ORG0=TRUE OR G1=TRUE OR G2=TRUE OR G3=TRUE OR G4=TRUE OR G5=TRUE OR G6=TRUE OR G7=TRUE OR G8=TRUE OR G9=TRUE ORS0=TRUE OR S1=TRUE OR S2=TRUE OR S3=TRUE OR S4=TRUE OR S5=TRUE OR S6=TRUE OR S7=TRUE OR S8=TRUE OR S9=TRUE OR S10=TRUE)THEN(*AKO IMA , ONDA TRAZENJE NAJMANJE VREDNOSTI ZA PROMENJLJIVU POZIVA ZA DOLE*) IF(D1=TRUE AND ( ABS(POL -1))<(ABS(RASTPD)))

THEN RASTPD:=(POL-1);END_IF; IF (D2=TRUE AND (ABS(POL -2))<(ABS(RASTPD)))

THEN RASTPD:=(POL-2);END_IF;

IF (D3=TRUE AND (ABS(POL -3))<(ABS(RASTPD)))THEN RASTPD:=(POL-3);

END_IF; IF (D4=TRUE AND (ABS(POL -4))<(ABS(RASTPD))) THEN RASTPD:=(POL-4);

END_IF; IF (D5=TRUE AND (ABS(POL -5))<(ABS(RASTPD))) THEN RASTPD:=(POL-5);

12

Page 13: Projekat Lifta

PROGRAM ZA UPRAVLJENJE RADOM LIFTA

END_IF; IF (D6=TRUE AND (ABS(POL -6))<(ABS(RASTPD))) THEN RASTPD:=(POL-6);

END_IF; IF (D7=TRUE AND (ABS(POL -7))<(ABS(RASTPD)))

THEN RASTPD:=(POL-7);END_IF;

IF(D8=TRUE AND (ABS(POL -8))<(ABS(RASTPD))) THEN RASTPD:=(POL-8);

END_IF; IF (D9=TRUE AND (ABS(POL -9))<(ABS(RASTPD)))

THEN RASTPD:=(POL-9);END_IF; IF (D10=TRUE AND (ABS(POL -10))<(ABS(RASTPD)))

THEN RASTPD:=(POL-10);END_IF;

(*TRAZENJE NAJMANJE UDALJENOSTI ZA POZIV KA GORE OD KABINE*) IF (G0=TRUE AND (ABS(POL -0))<(ABS(RASTPG)))

THEN RASTPG:=(POL-0);END_IF;IF (G1=TRUE AND (ABS(POL -1))<(ABS(RASTPG)))

THEN RASTPG:=(POL-1);END_IF;

IF (G2=TRUE AND (ABS(POL -2))<(ABS(RASTPG))) THEN RASTPG:=(POL-2);

END_IF; IF (G3=TRUE AND (ABS(POL -3))<(ABS(RASTPG)))

THEN RASTPG:=(POL-3);END_IF;

IF (G4=TRUE AND (ABS(POL -4))<(ABS(RASTPG))) THEN RASTPG:=(POL-4);

END_IF; IF (G5=TRUE AND (ABS(POL -5))<(ABS(RASTPG)))

THEN RASTPG:=(POL-5);END_IF;IF (G6=TRUE AND (ABS(POL -6))<(ABS(RASTPG)))

THEN RASTPG:=(POL-6);END_IF; IF (G7=TRUE AND (ABS(POL -7))<(ABS(RASTPG)))

THEN RASTPG:=(POL-7);END_IF;

IF (G8=TRUE AND (ABS(POL -8))<(ABS(RASTPG))) THEN RASTPG:=(POL-8);

END_IF; IF (G9=TRUE AND (ABS(POL -9))<(ABS(RASTPG))) THEN RASTPG:=(POL-9);

END_IF;(*TRAZENJE NAJMANJE UDALJENOSTI ZA POZIV SPRATA IZ KABINE OD POLOZAJA KABINE*)

IF (S0=TRUE AND (ABS(POL -0))<(ABS(RASTS))) THEN RASTS:=(POL-0);

END_IF; IF (S1=TRUE AND (ABS(POL -1))<(ABS(RASTS))) THEN RASTS:=(POL-1);

END_IF; IF (S2=TRUE AND (ABS(POL -2))<(ABS(RASTS))) THEN RASTS:=(POL-2);

END_IF; IF (S3=TRUE AND (ABS(POL -3))<(ABS(RASTS)))

13

Page 14: Projekat Lifta

PROGRAM ZA UPRAVLJENJE RADOM LIFTA

THEN RASTS:=(POL-3);END_IF;

IF (S4=TRUE AND (ABS(POL -4))<(ABS(RASTS))) THEN RASTS:=(POL-4);

END_IF; IF (S5=TRUE AND (ABS(POL -5))<(ABS(RASTS))) THEN RASTS:=(POL-5);

END_IF; IF (S6=TRUE AND (ABS(POL -6))<(ABS(RASTS))) THEN RASTS:=(POL-6);

END_IF; IF (S7=TRUE AND (ABS(POL -7))<(ABS(RASTS)))

THEN RASTS:=(POL-7);END_IF;

IF (S8=TRUE AND (ABS(POL -8))<(ABS(RASTS))) THEN RASTS:=(POL-8);

END_IF; IF (S9=TRUE AND (ABS(POL -9))<(ABS(RASTS)))

THEN RASTS:=(POL-9);END_IF; IF (S10=TRUE AND (ABS(POL -10))<(ABS(RASTS)))

THEN RASTS:=(POL-10);END_IF;

(*ODREDJIVANJE SMJERA KRETANJA LIFTA ZA SLUCAJ DA IMA POZIVA IZ LIFTA*)(*POZIV ZA GORE*)

IF (RASTS <> 12)THEN

IF (RASTS<0) AND RASTPG=0THEN MOTOR:=FALSE; GORE:=FALSE; DOLE:=FALSE;MOTOR1:=FALSE;

END_IF;IF RASTS<0 AND RASTPG<>0

THEN MOTOR:=TRUE; GORE:=TRUE; DOLE:=FALSE;END_IF;

(*POZIV ZA DOLE*)IF (RASTS>0) AND RASTPD=0

THEN MOTOR:=FALSE; GORE:=FALSE; DOLE:=FALSE;MOTOR1:=FALSE;END_IFIF RASTS>0 AND RASTPD<>0

THEN MOTOR:=TRUE; GORE:=FALSE; DOLE:=TRUE;END_IF;IF RASTS=0

THEN MOTOR:=FALSE; GORE:=FALSE; DOLE:=FALSE; MOTOR1:=FALSE;END_IF;

(*NEMA POZIVA IZ UNUTRASNJOSTI LIFTA, TADA JE PROMJENJLJIVA RASTS=12*)END_IF;(*AKO NEMA UNUTARNJIH POZIVA TADA ISPITUJEMO GDJE NAM JE NAJBLIZI POZIV ZA GORE-DOLE IZVANA*)IF (ABS(RASTPG)>ABS(RASTPD)) AND RASTS=12

THEN IF (RASTPD=0)THEN MOTOR:=FALSE; GORE:=FALSE; DOLE:=FALSE;MOTOR1:=FALSE;

ELSIF (RASTPD<>0)THEN IF (RASTPD>0)

THEN MOTOR:=TRUE; GORE:=FALSE; DOLE:=TRUE;ELSIF (RASTPD<0)

THEN MOTOR:=TRUE; GORE:=TRUE; DOLE:=FALSE;END_IF;END_IF;

14

Page 15: Projekat Lifta

PROGRAM ZA UPRAVLJENJE RADOM LIFTA

END_IF;IF (ABS(RASTPG)<=ABS(RASTPD)) AND RASTS=12

THEN IF (RASTPG=0)THEN MOTOR:=FALSE; GORE:=FALSE; DOLE:=FALSE; MOTOR1:=FALSE;ELSIF (RASTPG<>0)

THEN IF (RASTPG>0)THEN MOTOR:=TRUE; GORE:=FALSE; DOLE:=TRUE;ELSIF (RASTPG<0)

THEN MOTOR:=TRUE; GORE:=TRUE; DOLE:=FALSE;END_IF;END_IF;END_IF;(*ANIMIRANJE KRETANJA KABINE*)IF STOP=FALSE AND PREOPT=FALSE THENIF (MOTOR=TRUE AND GORE=TRUE AND POLVKL=0 AND POLVL0=0 AND POLVL1=0 AND POLVL2=0 AND POLVL3=0 AND POLVL4=0 AND POLVL5=0 AND POLVL6=0 AND POLVL7=0 AND POLVL8=0 AND POLVL9=0 AND POLVL10=0)

THEN POLK:=POLK-1; POL:=-0.02*POLK; MOTOR1:=TRUE;END_IF;IF (MOTOR=TRUE AND DOLE=TRUE AND POLVKL=0 AND POLVL0=0 AND POLVL1=0 AND POLVL2=0 AND POLVL3=0 AND POLVL4=0 AND POLVL5=0 AND POLVL6=0 AND POLVL7=0 AND POLVL8=0 AND POLVL9=0 AND POLVL10=0)

THEN POLK:=POLK+1; POL:=-0.02*POLK; MOTOR1:=TRUE;END_IF;END_IF;IF STOP=TRUE OR PREOPT=TRUE (*ZAUSTAVLJANJE KRETANJA LIFTA U SLUCAJU KADA JE UKLJUCEN STOP ILI PREOPTERECENO*)THEN MOTOR1:=FALSE;END_IF;(*ANIMIRANJE OTVARANJE I ZATVARANJE VRATA NA KABINI NA PRIZEMLJU*)

IF (MOTOR=FALSE AND POL=0 AND POLVL0>-15)THEN POLVL0:=POLVL0-0.5; POLVD0:=-POLVL0;

END_IF;(*KADA SU VRATA OTVORENA CEKAMO 5 SEKUNDI I ZATVARAMO IH*)

IF (POLVL0=-15)THEN sat.IN:=TRUE; S0:=FALSE; G0:=FALSE; D0:=FALSE;

END_IF;IF sat.Q=TRUE AND POLVL0<0 AND POLVKL=0

THEN POLVL0:=POLVL0+0.5; POLVD0:=-POLVL0; sat.IN:=FALSE; RASTS:=12; RASTPG:=12; RASTPD:=12;

END_IF;(*ANIMIRANJE OTVARANJE I ZATVARANJE VRATA NA KABINI BR 1*)

IF (MOTOR=FALSE AND POL=1 AND POLVL1>-15)THEN POLVL1:=POLVL1-0.5; POLVD1:=-POLVL1;

END_IF;(*KADA SU VRATA OTVORENA CEKAMO 5 SEKUNDI I ZATVARAMO IH*)

IF (POLVL1=-15)THEN sat.IN:=TRUE; S1:=FALSE; G1:=FALSE; D1:=FALSE;

END_IF;IF sat.Q=TRUE AND POLVL1<0 AND POLVKL=0

THEN POLVL1:=POLVL1+0.5; POLVD1:=-POLVL1; sat.IN:=FALSE;RASTS:=12; RASTPG:=12; RASTPD:=12;

END_IF;(*ANIMIRANJE OTVARANJE I ZATVARANJE VRATA NA KABINI BR 2*)

IF (MOTOR=FALSE AND POL=2 AND POLVL2>-15)THEN POLVL2:=POLVL2-0.5; POLVD2:=-POLVL2;

END_IF;

15

Page 16: Projekat Lifta

PROGRAM ZA UPRAVLJENJE RADOM LIFTA

(*KADA SU VRATA OTVORENA CEKAMO 5 SEKUNDI I ZATVARAMO IH*)IF (POLVL2=-15)

THEN sat.IN:=TRUE; S2:=FALSE; G2:=FALSE; D2:=FALSE;END_IF;IF sat.Q=TRUE AND POLVL2<0 AND POLVKL=0

THEN POLVL2:=POLVL2+0.5; POLVD2:=-POLVL2; sat.IN:=FALSE;RASTS:=12; RASTPG:=12; RASTPD:=12;

END_IF;(*ANIMIRANJE OTVARANJE I ZATVARANJE VRATA NA KABINI BR 3*)

IF (MOTOR=FALSE AND POL=3 AND POLVL3>-15)THEN POLVL3:=POLVL3-0.5; POLVD3:=-POLVL3;

END_IF;(*KADA SU VRATA OTVORENA CEKAMO 5 SEKUNDI I ZATVARAMO IH*)

IF (POLVL3=-15)THEN sat.IN:=TRUE; S3:=FALSE; G3:=FALSE; D3:=FALSE;

END_IF;IF sat.Q=TRUE AND POLVL3<0 AND POLVKL=0

THEN POLVL3:=POLVL3+0.5; POLVD3:=-POLVL3; sat.IN:=FALSE;RASTS:=12; RASTPG:=12; RASTPD:=12;

END_IF;(*ANIMIRANJE OTVARANJE I ZATVARANJE VRATA NA KABINI BR 4*)

IF (MOTOR=FALSE AND POL=4 AND POLVL4>-15)THEN POLVL4:=POLVL4-0.5; POLVD4:=-POLVL4;

END_IF;(*KADA SU VRATA OTVORENA CEKAMO 5 SEKUNDI I ZATVARAMO IH*)

IF (POLVL4=-15)THEN sat.IN:=TRUE; S4:=FALSE; G4:=FALSE; D4:=FALSE;

END_IF;IF sat.Q=TRUE AND POLVL4<0 AND POLVKL=0

THEN POLVL4:=POLVL4+0.5; POLVD4:=-POLVL4; sat.IN:=FALSE;RASTS:=12; RASTPG:=12; RASTPD:=12;

END_IF;(*ANIMIRANJE OTVARANJE I ZATVARANJE VRATA NA KABINI BR 5*)

IF (MOTOR=FALSE AND POL=5 AND POLVL5>-15)THEN POLVL5:=POLVL5-0.5; POLVD5:=-POLVL5;

END_IF;(*KADA SU VRATA OTVORENA CEKAMO 5 SEKUNDI I ZATVARAMO IH*)

IF (POLVL5=-15)THEN sat.IN:=TRUE; S5:=FALSE; G5:=FALSE; D5:=FALSE;

END_IF;IF sat.Q=TRUE AND POLVL5<0 AND POLVKL=0

THEN POLVL5:=POLVL5+0.5; POLVD5:=-POLVL5; sat.IN:=FALSE;RASTS:=12; RASTPG:=12; RASTPD:=12;

END_IF;(*ANIMIRANJE OTVARANJE I ZATVARANJE VRATA NA KABINI BR 6*)

IF (MOTOR=FALSE AND POL=6 AND POLVL6>-15)THEN POLVL6:=POLVL6-0.5; POLVD6:=-POLVL6;

END_IF;(*KADA SU VRATA OTVORENA CEKAMO 5 SEKUNDI I ZATVARAMO IH*)

IF (POLVL6=-15)THEN sat.IN:=TRUE; S6:=FALSE; G6:=FALSE; D6:=FALSE;

END_IF;IF sat.Q=TRUE AND POLVL6<0 AND POLVKL=0

THEN POLVL6:=POLVL6+0.5; POLVD6:=-POLVL6; sat.IN:=FALSE;RASTS:=12; RASTPG:=12; RASTPD:=12;

END_IF;(*ANIMIRANJE OTVARANJE I ZATVARANJE VRATA NA KABINI BR 7*)

IF (MOTOR=FALSE AND POL=7 AND POLVL7>-15)

16

Page 17: Projekat Lifta

PROGRAM ZA UPRAVLJENJE RADOM LIFTA

THEN POLVL7:=POLVL7-0.5; POLVD7:=-POLVL7;END_IF;

(*KADA SU VRATA OTVORENA CEKAMO 5 SEKUNDI I ZATVARAMO IH*)IF (POLVL7=-15)

THEN sat.IN:=TRUE; S7:=FALSE; G7:=FALSE; D7:=FALSE;END_IF;IF sat.Q=TRUE AND POLVL7<0 AND POLVKL=0

THEN POLVL7:=POLVL7+0.5; POLVD7:=-POLVL7; sat.IN:=FALSE;RASTS:=12; RASTPG:=12; RASTPD:=12;

END_IF;(*ANIMIRANJE OTVARANJE I ZATVARANJE VRATA NA KABINI BR 8*)

IF (MOTOR=FALSE AND POL=8 AND POLVL8>-15)THEN POLVL8:=POLVL8-0.5; POLVD8:=-POLVL8;

END_IF;(*KADA SU VRATA OTVORENA CEKAMO 5 SEKUNDI I ZATVARAMO IH*)

IF (POLVL8=-15)THEN sat.IN:=TRUE; S8:=FALSE; G8:=FALSE; D8:=FALSE;

END_IF;IF sat.Q=TRUE AND POLVL8<0 AND POLVKL=0

THEN POLVL8:=POLVL8+0.5; POLVD8:=-POLVL8; sat.IN:=FALSE;RASTS:=12; RASTPG:=12; RASTPD:=12;

END_IF;(*ANIMIRANJE OTVARANJE I ZATVARANJE VRATA NA KABINI BR 9*)

IF (MOTOR=FALSE AND POL=9 AND POLVL9>-15)THEN POLVL9:=POLVL9-0.5; POLVD9:=-POLVL9;

END_IF;(*KADA SU VRATA OTVORENA CEKAMO 5 SEKUNDI I ZATVARAMO IH*)

IF (POLVL9=-15)THEN sat.IN:=TRUE; S9:=FALSE;G9:=FALSE; D9:=FALSE;

END_IF;IF sat.Q=TRUE AND POLVL9<0 AND POLVKL=0

THEN POLVL9:=POLVL9+0.5; POLVD9:=-POLVL9; sat.IN:=FALSE;RASTS:=12; RASTPG:=12; RASTPD:=12;

END_IF;(*ANIMIRANJE OTVARANJE I ZATVARANJE VRATA NA KABINI BR 10*)

IF (MOTOR=FALSE AND POL=10 AND POLVL10>-15)THEN POLVL10:=POLVL10-0.5; POLVD10:=-POLVL10;

END_IF;(*KADA SU VRATA OTVORENA CEKAMO 5 SEKUNDI I ZATVARAMO IH*)

IF (POLVL10=-15)THEN sat.IN:=TRUE; S10:=FALSE; G10:=FALSE; D10:=FALSE;

END_IF;IF sat.Q=TRUE AND POLVL10<0 AND POLVKL=0

THEN POLVL10:=POLVL10+0.5; POLVD10:=-POLVL10; sat.IN:=FALSE;RASTS:=12;RASTPG:=12; RASTPD:=12;

END_IF;(*ANIMIRANJE PRIKAZIVANJA POLOZAJA KABINE LIFTA PO SPRATOVIMA- DISPLEJ U KABINI*)IF POL>0 AND POL<0.5THEN SPRAT0:=FALSE; SPRAT1:=TRUE; SPRAT2:=TRUE; SPRAT3:=TRUE; SPRAT4:=TRUE; SPRAT5:=TRUE; SPRAT6:=TRUE; SPRAT7:=TRUE; SPRAT8:=TRUE; SPRAT9:=TRUE; SPRAT10:=TRUE;ELSIF POL>0.5 AND POL<1.5THEN SPRAT1:=FALSE; SPRAT0:=TRUE; SPRAT2:=TRUE; SPRAT3:=TRUE; SPRAT4:=TRUE; SPRAT5:=TRUE; SPRAT6:=TRUE; SPRAT7:=TRUE; SPRAT8:=TRUE; SPRAT9:=TRUE; SPRAT10:=TRUE;ELSIF POL>1.5 AND POL <2.5THEN SPRAT0:=TRUE; SPRAT1:=TRUE; SPRAT2:=FALSE; SPRAT3:=TRUE; SPRAT4:=TRUE; SPRAT5:=TRUE; SPRAT6:=TRUE; SPRAT7:=TRUE; SPRAT8:=TRUE; SPRAT9:=TRUE; SPRAT10:=TRUE;ELSIF POL>2.5 AND POL <3.5

17

Page 18: Projekat Lifta

PROGRAM ZA UPRAVLJENJE RADOM LIFTA

THEN SPRAT0:=TRUE; SPRAT1:=TRUE; SPRAT2:=TRUE; SPRAT3:=FALSE; SPRAT4:=TRUE; SPRAT5:=TRUE; SPRAT6:=TRUE; SPRAT7:=TRUE; SPRAT8:=TRUE; SPRAT9:=TRUE; SPRAT10:=TRUE;ELSIF POL>3.5 AND POL <4.5THEN SPRAT0:=TRUE; SPRAT1:=TRUE; SPRAT2:=TRUE; SPRAT3:=TRUE; SPRAT4:=FALSE; SPRAT5:=TRUE; SPRAT6:=TRUE; SPRAT7:=TRUE; SPRAT8:=TRUE; SPRAT9:=TRUE; SPRAT10:=TRUE;ELSIF POL>4.5 AND POL <5.5THEN SPRAT0:=TRUE; SPRAT1:=TRUE; SPRAT2:=TRUE; SPRAT3:=TRUE; SPRAT4:=TRUE; SPRAT5:=FALSE; SPRAT6:=TRUE; SPRAT7:=TRUE; SPRAT8:=TRUE; SPRAT9:=TRUE; SPRAT10:=TRUE;ELSIF POL>5.5 AND POL <6.5THEN SPRAT0:=TRUE; SPRAT1:=TRUE; SPRAT2:=TRUE; SPRAT3:=TRUE; SPRAT4:=TRUE; SPRAT5:=TRUE; SPRAT6:=FALSE; SPRAT7:=TRUE; SPRAT8:=TRUE; SPRAT9:=TRUE; SPRAT10:=TRUE;ELSIF POL>6.5 AND POL <7.5THEN SPRAT0:=TRUE; SPRAT1:=TRUE; SPRAT2:=TRUE; SPRAT3:=TRUE; SPRAT4:=TRUE; SPRAT5:=TRUE; SPRAT6:=TRUE; SPRAT7:=FALSE; SPRAT8:=TRUE; SPRAT9:=TRUE; SPRAT10:=TRUE;ELSIF POL>7.5 AND POL <8.5THEN SPRAT0:=TRUE; SPRAT1:=TRUE; SPRAT2:=TRUE; SPRAT3:=TRUE; SPRAT4:=TRUE; SPRAT5:=TRUE; SPRAT6:=TRUE; SPRAT7:=TRUE; SPRAT8:=FALSE; SPRAT9:=TRUE; SPRAT10:=TRUE;ELSIF POL>8.5 AND POL <9.5THEN SPRAT0:=TRUE; SPRAT1:=TRUE; SPRAT2:=TRUE; SPRAT3:=TRUE; SPRAT4:=TRUE; SPRAT5:=TRUE; SPRAT6:=TRUE; SPRAT7:=TRUE; SPRAT8:=TRUE; SPRAT9:=FALSE; SPRAT10:=TRUE;ELSIF POL>9.5THEN SPRAT0:=TRUE; SPRAT1:=TRUE; SPRAT2:=TRUE; SPRAT3:=TRUE; SPRAT4:=TRUE; SPRAT5:=TRUE; SPRAT6:=TRUE; SPRAT7:=TRUE; SPRAT8:=TRUE; SPRAT9:=TRUE; SPRAT10:=FALSE;END_IF;(*SETOVANJE RADA SATA*)sat(IN:=TRUE, PT:=TIME#5S);(*RESETOVANJE POCETNIH VRIJEDNOSTI ZA POZIVE NA SPRATOVE I IZVANA*)

ELSE RASTS:=12; RASTPG:=12; RASTPD:=12;END_IF;(*OTVARANJE I ZATVARANJE VRATA NA KABINI RUCNIM KOMANDAMA*)

IF VRATAO=TRUE AND POLVKL>-70THEN POLVKL:=POLVKL-1; POLVKD:=-POLVKL;

END_IF;IF POLVKL=-70THEN VRATAO:=FALSE;

END_IF;IF VRATAZ=TRUE AND POLVKL<0

THEN POLVKL:=POLVKL+1; POLVKD:=-POLVKL;END_IF;

IF POLVKL=0THEN VRATAZ:=FALSE;END_IF;(*KRAJ PROGRAMA LIFTA*)

Korištena literatura:1. S.Odri, M.Hajduković;Programski jezici za programabilne kontrolere, NEURON, Tehnička

serija, N.Sad, 1999.2. Goran Miličić, PROGRAMABILNI LOGIČKI KONTROLERI, skripta FSB Zagreb,2000

18