26
Univerzitet u Novom Sadu FAKULTET TEHNICKIH NAUKA, NOVI SAD Magistarske studije (seminarski rad) Kandidat: Marko JAKIC, dipl.inž. Mentor: Prof. dr Stevan ODRI Novi Sad, april, 2005. godine.

Seminar Ski Rad Projekat Lifta

Embed Size (px)

Citation preview

Page 1: Seminar Ski Rad Projekat Lifta

Univerzitet u Novom Sadu FAKULTET TEHNICKIH NAUKA, NOVI SAD Magistarske studije

(seminarski rad)

Kandidat: Marko JAKIC, dipl.inž.

Mentor: Prof. dr Stevan ODRI

Novi Sad, april, 2005. godine.

Page 2: Seminar Ski Rad Projekat Lifta

Projektovanje pomocu racunara – seminarski rad (2004)

2

SADRŽAJ

1. Zadatak...........................................................................................................3 2. Izrada..............................................................................................................5 3. Algoritam rada lifta........................................................................................6 4. Zakljucak.......................................................................................................23 5. Literatura......................................................................................................24

Page 3: Seminar Ski Rad Projekat Lifta

Projektovanje pomocu racunara – seminarski rad (2004)

3

1.0 ZADATAK

Napraviti pragram za PLC koji ce animirati rad lifta u stambenoj zgradi. Pri izradi programa uzeti u obzir sledece 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 preopterecenja, 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 naide prema gore, a isto tako i prema dole. Kod odlucivanja gdje da lift krene uzeti u obzir najkraci potreban put da lift obavi zadane radnje.

Page 4: Seminar Ski Rad Projekat Lifta

Projektovanje pomocu racunara – seminarski rad (2004)

4

2.0 IZRADA:

Za uspešnu izradu programa moramo se držati odredenog redosleda radnji i postupaka koji ce nas dovesti do konacnog cilja zadatka.

Kao prvi korak moramo odrediti ukupan broj i vrstu ulaza i izlaza u naš upravljacki sistem. Za naš konkretni slucaj 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 Preoptereceno 1+1=2 BOOL ulaza -Poziv unutar lifta za svaki sprat 10+Pr=11 BOOL ulaza

IZLAZI:

-Komanda za motor ukljucen-iskljucen 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 ce biti definirane tokom procesa izrade programa.

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

Page 5: Seminar Ski Rad Projekat Lifta

Projektovanje pomocu racunara – seminarski rad (2004)

5

Sl.1 Predloženi graficki 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 pripadajuce grafice objekte, te cemo na taj nacin dobiti i vizuelni prikaz rada

Page 6: Seminar Ski Rad Projekat Lifta

Projektovanje pomocu racunara – seminarski rad (2004)

6

samog programa. Time se posao rasclanjuje na tri operacije, te se tako na lakši i pregledniji nacin dolazi do konacnog rešenja.

3.0 ALGORITAM RADA LIFTA

Kod izrade algoritma rada lifta moramo voditi racuna o tome kako da definišemo sam rad lifta. Naime, mi u ovisnosti od namjene lifta možemo odmah da pretpostavimo odredene zakonitosti rada lifta i da ih kao takve odmah ugradimo u algoritam rada, a samim tim i u program. Buduci da se radi o liftu za prevoz stanara u zgradi, to ce mo i algoritam rada tog lifta prilagoditi tom nacinu upotrebe. Za tu svrhu pretpostavit cemo sledeca 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, preopterecenost, ..)

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 odlucivanja smjera kretanja mora se ispoštovati nacelo najkraceg puta, a samim tim i nakraceg 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 naide, a isto to važi i kod puta prema dole.

5. Kod naredbe stop i preoptereceno, kabina treba odmah da stane i da omoguci 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 slucaju 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 OR G0=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 OR

Page 7: Seminar Ski Rad Projekat Lifta

Projektovanje pomocu racunara – seminarski rad (2004)

7

S0=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 cemu 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 nacin na koji ce se donijeti odluka na koju stranu ce 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 kabine RASTPG- Najmanja udaljenost poziva za gore od položaja kabine RASTPD- Najmanja udaljenost poziva za dole od položaja kabine

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

Page 8: Seminar Ski Rad Projekat Lifta

Projektovanje pomocu racunara – seminarski rad (2004)

8

Za pozive lifta ka gore izvana algoritam izgleda:

RASTPG:=12

RASTPG:=POL - 0

IF G0=1 DA [POL-0] < [RASTPG] DA

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

RASTPG:=POL - 1

DA

START

RASTS:=12RASTPD:=12

IF

IF

POL:=0

Sl.2 Algoritam za RASTPG

Na taj nacin ce 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: izracunavanje 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 slican nacin i po slicnim algoritmima proracunavaju se i vrijednosti za RASTS i RASTPD. Ovdje ce mo prikazati samo po jedan red petlje, a ona se nastavlja za svaki sprat kao što je i dato na kraju ovog rada.

Page 9: Seminar Ski Rad Projekat Lifta

Projektovanje pomocu racunara – seminarski rad (2004)

9

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;

Page 10: Seminar Ski Rad Projekat Lifta

Projektovanje pomocu racunara – seminarski rad (2004)

10

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 ce lift ici 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 odlucujemo i to:

Ako lift ide prema gore tj. RASTS je negativno, onda ako na svom putu naide 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 slucaju 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 slucaju motor mora stati, vrata otvoriti i pustiti da putnici izadu.

Page 11: Seminar Ski Rad Projekat Lifta

Projektovanje pomocu racunara – seminarski rad (2004)

11

Algoritam za gore navedeno izgleda ovako:

IF RASTS < 0

NE

DA

NE

IF RASTS>0

NE

IF RASTPG=0 DA

MOTOR=TRUEGORE=TRUEDOLE=FALSE

DOLE=FALSEGORE=FALSEMOTOR=FALSE

DOLE=TRUEGORE=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=0 THEN 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;

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

DOLE:=FALSE;MOTOR1:=FALSE;

Page 12: Seminar Ski Rad Projekat Lifta

Projektovanje pomocu racunara – seminarski rad (2004)

12

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 znaci da nemamo nikakvih poziva iz kabine lifta i u tom slucaju ponovo imamo tri novonastale situacije

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

Program za slucaj pod (a) izgleda ovako:

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;

Program za slucaj pod (b) izgleda ovako:

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

Page 13: Seminar Ski Rad Projekat Lifta

Projektovanje pomocu racunara – seminarski rad (2004)

13

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

NEIF RASTS=12

ABS(RASTPG)>ABS(RASTPD)

IFDA IF RASTPD=0 DA

MOTOR=FALSEGORE=FALSEDOLE=FALSE

GORE=TRUEMOTOR=TRUE

DOLE=FALSE

NE

IF RASTPD>0DOLE=TRUEGORE=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)

Page 14: Seminar Ski Rad Projekat Lifta

Projektovanje pomocu racunara – seminarski rad (2004)

14

NEIF RASTS=12

ABS(RASTPG)>ABS(RASTPD)

IF

IF RASTPG=0MOTOR=FALSEGORE=FALSEDOLE=FALSE

NE

DA

IF RASTPG>0DOLE=TRUEGORE=FALSEMOTOR=TRUE

DA NE MOTOR=TRUEGORE=TRUEDOLE=FALSE

DA

NE

IF RASTPG=12

IF RASTPD=12V

DA

S T O P

Sl.7 Algoritam za situaciju pod (b)

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, ukljucenje i iskljucenje motora, smjer motora, indikacija sprata... i mnogi drugi sitni detalji na koje se nailazi usput pri samom pisanju programa.

Ovdje cu da spomenem samo neke karakteristicne dijelove programa. Animiranje kretanja kabine: Animiranje ce mo izvršiti tako što ce mo uvesti jednu novu unutarnju promjenljivu i dati joj ime POLK kao skracenice za položaj kabine, a onda ce 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;

Page 15: Seminar Ski Rad Projekat Lifta

Projektovanje pomocu racunara – seminarski rad (2004)

15

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>-70 THEN 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

THEN VRATAZ:=FALSE;

Page 16: Seminar Ski Rad Projekat Lifta

Projektovanje pomocu racunara – seminarski rad (2004)

16

END_IF;

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

IF POL>0 AND POL<0.5 THEN 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, pomocu programskog paketa CodeSys, i njego citav kod je naveden dole, izvorno kako je i napisan.

3.0 ZAKLJUCAK:

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

Page 17: Seminar Ski Rad Projekat Lifta

Projektovanje pomocu racunara – seminarski rad (2004)

17

4.0 LISTING PROGRAMA

PROGRAM PLC_PRG VAR RASTPD: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*)

Page 18: Seminar Ski Rad Projekat Lifta

Projektovanje pomocu racunara – seminarski rad (2004)

18

POLVL0: REAL:=-15; (* POLOZAJ VRATA PO SPRATOVIMA, U PRIZEMLJU INICIJALNO OTVORENA*)

POLVD0: REAL:=15; POLVL1: REAL; POLVD1: REAL; POLVL2: REAL; POLVD2: REAL; POLVL3: REAL; 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 OR G0=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 OR S0=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);

Page 19: Seminar Ski Rad Projekat Lifta

Projektovanje pomocu racunara – seminarski rad (2004)

19

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); 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*)

Page 20: Seminar Ski Rad Projekat Lifta

Projektovanje pomocu racunara – seminarski rad (2004)

20

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)))

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=0 THEN 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_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;

(*NEMA POZIVA IZ UNUTRASNJOSTI LIFTA, TADA JE PROMJENJLJIVA RASTS=12*) END_IF;

Page 21: Seminar Ski Rad Projekat Lifta

Projektovanje pomocu racunara – seminarski rad (2004)

21

(*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; 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 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 (*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*)

Page 22: Seminar Ski Rad Projekat Lifta

Projektovanje pomocu racunara – seminarski rad (2004)

22

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; (*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;

Page 23: Seminar Ski Rad Projekat Lifta

Projektovanje pomocu racunara – seminarski rad (2004)

23

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) 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;

Page 24: Seminar Ski Rad Projekat Lifta

Projektovanje pomocu racunara – seminarski rad (2004)

24

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.5 THEN 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.5 THEN 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.5 THEN 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 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.5 THEN 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.5 THEN 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.5 THEN 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.5 THEN 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.5 THEN 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.5 THEN 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.5 THEN SPRAT0:=TRUE; SPRAT1:=TRUE; SPRAT2:=TRUE; SPRAT3:=TRUE; SPRAT4:=TRUE; SPRAT5:=TRUE; SPRAT6:=TRUE; SPRAT7:=TRUE; SPRAT8:=TRUE; SPRAT9:=TRUE; SPRAT10:=FALSE; END_IF;

Page 25: Seminar Ski Rad Projekat Lifta

Projektovanje pomocu racunara – seminarski rad (2004)

25

(*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>-70 THEN 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 THEN VRATAZ:=FALSE; END_IF; (*KRAJ PROGRAMA LIFTA*)

Page 26: Seminar Ski Rad Projekat Lifta

Projektovanje pomocu racunara – seminarski rad (2004)

26

KORIŠTENA LITERATURA:

1. S.Odri, M.Hajdukovic;Programski jezici za programabilne kontrolere, NEURON, Tehnicka serija, N.Sad, 1999.

2. Goran Milicic, PROGRAMABILNI LOGICKI KONTROLERI, skripta FSB Zagreb,2000