Sie sind auf Seite 1von 241

PROGRAMABILNI LOGIKI KONTROLERI

ALLEN BRADLEY CONTROLLOGIX

SRBIJANKA TURAJLI BEOGRAD, 2009

SADRAJ
1. OSNOVNE KARAKTERISTIKE LOGIX5000 KONTROLERA .......................................................................... 1 1.1. LOGIX5000 KONTROLERI ........................................................................................................................... 1 1.1.1. Kontroler ControlLogix (1756) ................................................................................................. 2 1.1.2. Kontroler CompactLogix (1768, 1769)...................................................................................... 3 1.1.3. FlexLogix kontroler (1794) ........................................................................................................ 4 1.1.4. SoftLogix kontroleri (1789) ....................................................................................................... 4 1.2. TAGOVI - PROMENLJIVE ............................................................................................................................. 4 1.2.1. Vrste i specifikacija tagova....................................................................................................... 4 1.2.2. Kreiranje tagova ....................................................................................................................... 5 1.2.3. Struktura .................................................................................................................................. 7 1.2.4. Viedimenzionalno polje (matrica) ........................................................................................... 9 1.2.5. Mapiranje tagova................................................................................................................... 11 1.3. RAZMENA PODATAKA U SISTEMU ............................................................................................................... 11 1.4. KONFIGURISANJE KONTROLERA ................................................................................................................. 13 1.4.1. Adrese U/I podataka .............................................................................................................. 14 2. KOMUNIKACIJE.................................................................................................................................... 17 2.1. DIREKTNO VEZIVANJE KONTROLERA PREKO SERIJSKOG PORTA .......................................................................... 17 2.2. KOMUNIKACIJA PREKO MREE ................................................................................................................... 17 2.2.1. EtherNet/IP mrea.................................................................................................................. 17 2.2.2. ControlNet mrea ................................................................................................................... 19 2.2.3. DeviceNet mrea .................................................................................................................... 20 2.2.4. Serijski prenos informacija ..................................................................................................... 21 2.2.5. DH485 mrea.......................................................................................................................... 23 2.2.6. DHRIO modul .......................................................................................................................... 23 2.2.7. Foundation fieldbus mrea .................................................................................................... 25 2.3. U/I MODULI ......................................................................................................................................... 26 2.3.1. Specifikacija formata komunikacije ....................................................................................... 26 2.3.2. Specifikacija vremena u kome se razmenjuju podaci sa U/I modulima ................................. 27 2.3.3. Obezbeivanje konzistentnosti podataka .............................................................................. 29 2.3.4. Zatita modula (Electronic keying) ......................................................................................... 29 2.3.5. Vreme auriranja i prenosa podataka .................................................................................... 29 2.4. PROIZVEDENI I PRIMLJENI TAGOVI .............................................................................................................. 31 2.5. PRENOS PORUKA (MESSAGE) .................................................................................................................... 32 2.6. BROJ USPOSTAVLJENIH VEZA ..................................................................................................................... 33 3. FORMIRANJE PROJEKTA ...................................................................................................................... 35 3.1. STRUKTURA PROJEKTA ............................................................................................................................. 35 3.2. ZADACI ................................................................................................................................................. 37 3.2.1. Tipovi zadataka ...................................................................................................................... 37 3.2.2. Nivoi prioriteta ....................................................................................................................... 38 3.2.3. Sistemski overhead................................................................................................................. 39 3.2.4. Praenje i upravljanje izvravanjem zadatka ......................................................................... 41 3.3. SPECIFIKACIJA USLOVA ZA IZVRAVANJE ZADATKA .......................................................................................... 43 3.3.1. Signal sa ulaznog modula....................................................................................................... 43 3.3.2. Primljeni tag ........................................................................................................................... 45 3.3.3. Event naredba ........................................................................................................................ 48 4. PROGRAMIRANJE KONTROLERA.......................................................................................................... 49 4.1. LEDER DIJAGRAMI ................................................................................................................................... 50

4.2. DIJAGRAMI FUNKCIJSKIH BLOKOVA.............................................................................................................. 51 4.2.1. Izvravanje programa ............................................................................................................. 53 4.3. STRUKTURIAN TEKST ................................................................................................................................ 53 4.3.1. Pridruivanje vrednosti ........................................................................................................... 54 4.3.2. Izraz......................................................................................................................................... 54 4.3.3. Naredbe .................................................................................................................................. 54 4.3.4. Konstrukti................................................................................................................................ 55 4.4. DIJAGRAMI SEKVENCIJALNIH FUNKCIJA......................................................................................................... 56 4.4.1. Specifikacija SFC zadatka ........................................................................................................ 57 4.4.2. Specifikacija stanja ................................................................................................................. 58 4.4.3. Izvravanje stanja .................................................................................................................. 60 4.4.4. Specifikacija aktivnosti............................................................................................................ 62 4.4.5. Izvravanje poslednjeg sken ciklusa ........................................................................................ 64 4.4.6. Specifikacija prelaza ............................................................................................................... 66 4.4.7. Zavravanje, resetovanje i prekidanje izvravanja FSC dijagrama ......................................... 67 4.4.8. Ugnedeni FSC dijagrami ........................................................................................................ 68 4.4.9. Prenos parametara ................................................................................................................. 69 5. KREIRANJE I UPRAVLJANJE FAZAMA .................................................................................................... 71 5.1. FAZE JEDNE OPERACIJE ............................................................................................................................. 71 5.1.1. Faza......................................................................................................................................... 71 5.1.2. Kreiranje faze u ControlLogix kontrolerima ............................................................................ 72 5.2. STANJA PRI IZVRAVANJU FAZE ................................................................................................................... 74 5.2.1. Dijagram stanja ...................................................................................................................... 74 5.2.2. Specifikacija rutina stanja ...................................................................................................... 76 5.2.3. Konfigurisanje rutine faze ....................................................................................................... 77 5.2.4. Struktura Phase ...................................................................................................................... 78 5.3. FORMIRANJE PROGRAMSKOG KODA RUTINA STANJA ....................................................................................... 79 5.3.1. Kreiranje zajednikih tagova................................................................................................... 79 5.3.2. Formiranje koda za izvravanje stanja faze ........................................................................... 82 5.4. UPRAVLJANJE IZVRAVANJEM FAZA I STANJA ................................................................................................. 84 5.4.1. Vlasnitvo nad fazom .............................................................................................................. 84 5.4.2. Naredbe za rad sa fazama ...................................................................................................... 85 5.4.3. Detekcija greaka.................................................................................................................... 88 5.4.4. Programiranje realizacije kompletne funkcije ........................................................................ 89 6. PROGRAMSKE NAREDBE ZA REALIZACIJU ALGORITAMA...................................................................... 91 6.1. BIT NAREDBE .......................................................................................................................................... 91 6.1.1. Naredbe uslova ....................................................................................................................... 91 6.1.2. Naredbe akcije ........................................................................................................................ 91 6.1.3. Naredbe vezane za uzlaznu ili silaznu ivicu ............................................................................. 92 6.2. ASOVNIK I BROJA ................................................................................................................................. 93 6.2.1. Princip realizacije asovnika ................................................................................................... 93 6.2.2. Naredbe za rad asovnika....................................................................................................... 94 6.2.3. Brojai ..................................................................................................................................... 96 6.3. NAREDBE ZA POREENJE........................................................................................................................... 98 6.3.1. CMP Poreenje pomou algebarskog izraza leder program ............................................. 98 6.3.2. Poreenje leder program i funkcijski blokovi ....................................................................... 98 6.3.3. Poreenje pojedinih bitova MEQ (Mask Equal to) ............................................................... 99 6.3.4. LIM - Ispitivanje pripadnosti segmentu................................................................................... 99 6.4. MATEMATIKE I LOGIKE NAREDBE ........................................................................................................... 100 6.4.1. Logike operacije ................................................................................................................. 100 6.4.2. Matematike binarne operacije ............................................................................................ 102 6.4.3. Matematike unarne operacije............................................................................................. 103 6.4.4. CPT Compute (izraunavanje aritmetikog izraza) ............................................................ 104 6.5. NAREDBE ZA MANIPULACIJU SA NUMERIKIM PODACIMA .............................................................................. 104 6.5.1. Naredbe za postavljanje vrednosti ....................................................................................... 104

Binarno kodirana decimalna prezentacija brojeva .............................................................. 106 6.5.2. 6.5.3. Naredba za odsecanje decimalnog dela broja ..................................................................... 107 6.6. NAREDBE ZA RAD SA POLJIMA PODATAKA .................................................................................................. 107 6.6.1. Opte napomene .................................................................................................................. 107 6.6.2. Odreivanje veliine jedne dimenzije polja (SIZE) ............................................................. 108 6.6.3. Punjnenje polja podataka (FLL) ............................................................................................ 108 6.6.4. Kopiranje polja podataka (COP, CPS) ................................................................................... 109 6.6.5. Obrada i poreenje polja podataka ..................................................................................... 109 6.6.6. Sortiranje, odreivanje srednje vrednosti i standardne devijacije ....................................... 110 6.7. NAREDBE ZA TRANSLACIJU BITOVA ........................................................................................................... 112 6.8. NAREDBE ZA SEKEVENCIJALNU OBRADU PODATAKA ..................................................................................... 113 6.9. NAREDBE ZA FORMIRANJE STEKA ............................................................................................................. 115 6.9.1. Punjenje steka ...................................................................................................................... 115 6.9.2. Pranjenje steka ................................................................................................................... 116 6.10. NAREDBE ZA MENJANJE TOKA PROGRAMA ................................................................................................. 118 6.10.1. Naredba za skok ................................................................................................................... 118 6.10.2. Potprogrami ......................................................................................................................... 118 6.10.3. Promena toka sken ciklusa ................................................................................................... 120 6.10.4. Promena hijerarhijskog prekida ........................................................................................... 121 6.10.5. Kreiranje dogaaja............................................................................................................... 121 6.10.6. Formiranje programske petlje u leder programu ................................................................. 121 6.11. SPECIJALNE NAREDBE ............................................................................................................................ 122 6.11.1. Poreenje bitova prema FBC i DDT ..................................................................................... 122 6.11.2. Poreenje maskiranih bitova DTR ..................................................................................... 123 7. NAREDBE ZA PRENOENJE PORUKA .................................................................................................. 125 7.1. NAREDBE ZA RAD SA ASCII KARAKTERIMA ................................................................................................. 125 7.1.1. Opte napomene .................................................................................................................. 125 7.1.2. Manipulacija sa ASCII nizovima............................................................................................ 125 7.1.3. Konverzija ASCII podataka ................................................................................................... 126 7.2. ASCII NAREDBE ZA SERIJSKI PRENOS PODATAKA .......................................................................................... 128 7.2.1. Serijska veza ASCII ureaja .................................................................................................. 128 7.2.2. Realizacija serijskog prenosa podataka ............................................................................... 129 7.2.3. ASCII Naredbe za manipulaciju sa podacima u baferu ......................................................... 130 7.2.4. Naredbe za prijem podataka................................................................................................ 131 7.2.5. Naredbe za slanje podataka................................................................................................. 133 7.2.6. Naredba za upravljanje prenosom podataka ....................................................................... 134 7.3. MESSAGE NAREDBE .............................................................................................................................. 134 7.3.1. Specifikacija message naredbe ............................................................................................ 134 7.3.2. Izvravanje prenosa podataka ............................................................................................. 136 7.3.3. Konfigurisanje message naredbe ......................................................................................... 136 7.3.4. Specifikacija komunikacije ................................................................................................... 143 7.3.5. Broj bafera za nepovezane poruke ....................................................................................... 149 7.3.6. Konverzija tipa podataka i upravljanje izvravanjem vie naredbi ...................................... 151 7.3.7. Slanje iste poruke veem broju kontrolera ........................................................................... 153 7.4. NAREDBA ZA TRENUTNI PRENOS IZLAZNOG SIGNALA .................................................................................... 156 8. INFORMACIJE O STANJU I RADU KONTROLERA ................................................................................. 159 8.1. NAREDBE ZA PRISTUPANJE SISTEMSKIM PODACIMA...................................................................................... 159 8.2. PREGLED OBJEKATA............................................................................................................................... 160 8.2.1. CONTROLLER ........................................................................................................................ 160 8.2.2. CONTROLLERDEVICE ............................................................................................................ 160 8.2.3. CST ........................................................................................................................................ 160 8.2.4. DF1 ....................................................................................................................................... 161 8.2.5. FAULTLOG ............................................................................................................................ 163 8.2.6. MESSAGE .............................................................................................................................. 164 8.2.7. MODULE ............................................................................................................................... 165

8.2.8. 8.2.9. 8.2.10. 8.2.11.

PROGRAM, ROUTINE ............................................................................................................ 165 SERIALPORT .......................................................................................................................... 167 TASK ...................................................................................................................................... 170 WALLCLOCKTIME .................................................................................................................. 170

9. PID - PROPORCIONALNO INTEGRALNO DIFERENCIJALNO UPRAVLJANJE ............................................ 173 9.1. PID NAREDBA ...................................................................................................................................... 173 9.2. RUNI REIM RADA................................................................................................................................ 173 9.2.1. Zakon upravljanja u automatskom reimu rada ................................................................... 174 9.2.2. Periodino ponavljanje PID naredbe ..................................................................................... 177 9.2.3. Konfiguracija PID naredbe .................................................................................................... 179 9.2.4. Struktura PID taga ................................................................................................................ 181 10. NAREDBE ZA UPRAVLJANJE SISTEMIMA ............................................................................................ 183 10.1. OPTE KARAKTERISTIKE .......................................................................................................................... 183 10.2. UPRAVLJANJE PROCESIMA ....................................................................................................................... 185 10.2.1. Alarm - ALM .......................................................................................................................... 185 10.2.2. Diskretna stanja - D2SD i D3SD ............................................................................................. 187 10.2.3. Kanjenje DEDT (Dead Time) .............................................................................................. 191 10.2.4. Generator funkcija - FGEN .................................................................................................... 192 10.2.5. Lead-lag kompenzator - LDLG ............................................................................................... 193 10.2.6. irinski modulisani impulsi - POSP i SRTP .............................................................................. 193 10.2.7. Nagibni signal RMPS (Ramp/Soak) .................................................................................... 197 10.2.8. Skaliranje SCL ..................................................................................................................... 198 10.2.9. Integracija analognog signala TOT (Totalizer) .................................................................... 199 10.2.10. Brzinski PID algoritam - PIDE ................................................................................................ 200 10.3. UPRAVLJANJE IZVRNIM ORGANIMA (DRAJVERI) .......................................................................................... 204 10.3.1. Integrator - INTG ................................................................................................................... 204 10.3.2. Proporcionalno-integralno dejstvo (PI) ................................................................................. 204 10.3.3. Mnoa impulsa - PMUL ...................................................................................................... 207 10.3.4. S-kriva i nagibna funkcija - SCRV .......................................................................................... 208 10.3.5. Kontroler drugog reda - SOC ................................................................................................. 209 10.3.6. Akumulator - UPDN .............................................................................................................. 210 10.4. FILTRIRANJE SIGNALA ............................................................................................................................. 211 10.4.1. Diferencijator (DERV) ............................................................................................................ 211 10.4.2. Visoko propusni filtar (HPF) .................................................................................................. 211 10.4.3. Nisko propusni filtar .............................................................................................................. 212 10.4.4. Lead-lag kompenzator drugog reda (LDL2) .......................................................................... 213 10.4.5. Notch filtar - NTCH ................................................................................................................ 214 10.5. LIMITERI .............................................................................................................................................. 214 10.5.1. Ogranienje signala HLL..................................................................................................... 214 10.5.2. Ograniavanje brzine promene RLIM ................................................................................. 215 10.5.3. Selektor signala - SEL ............................................................................................................ 215 10.5.4. Uslovni invertor SNEG ........................................................................................................ 215 10.5.5. Unapreeni selektor ESEL .................................................................................................. 216 10.5.6. Multiplekser MUX .............................................................................................................. 217 10.5.7. Selektivni sabira - SSUM ...................................................................................................... 217 10.6. STATISTIKA .......................................................................................................................................... 217 10.6.1. Moving average MAVE ...................................................................................................... 217 10.6.2. Moving standardna devijacija - MSTD .................................................................................. 218 10.6.3. Minimum i maksimum signala MINC, MAXC ..................................................................... 219 10.7. MOVE/LOGICAL.................................................................................................................................... 219 10.7.1. D-Flip-Flop DFF ................................................................................................................... 219 10.7.2. JK-Flip-Flop JKFF ................................................................................................................. 220 10.7.3. SET i Reset leovanih signala SETD, RESD .......................................................................... 220 11. ADD-ON NAREDBE ............................................................................................................................. 221

11.1. UVOD ................................................................................................................................................ 221 11.1.1. Smisao add-on naredbe ....................................................................................................... 221 11.1.2. Struktura add-on naredbe .................................................................................................... 221 11.2. FORMIRANJE ADD-ON NAREDBE .............................................................................................................. 222 11.2.1. Poetna specifikacija ............................................................................................................ 222 11.2.2. Specifikacija parametara ..................................................................................................... 223 11.2.3. Razvoj internog algoritma naredbe ..................................................................................... 225 11.2.4. Specifikacija naina skeniranja ............................................................................................ 226 11.2.5. Formiranje help informacije ................................................................................................. 227 DODATAK A PIDE NAREDBA ................................................................................................................. 229 LITERATURA ............................................................................................................................................ 233

UVOD/1

1. Osnovne karakteristike Logix5000 kontrolera


1.1. LOGIX5000 KONTROLERI
Familija Logix5000 kontrolera razvijena je u elji da se spoji fukcionalnost klasinih programabilnih logikih kontrolera i mogunosti koje u oblasti upravljanja otvara korienje otvorenih PC raunara. Na taj nain je stvorena platforma koja omoguava jednostavno objedinjavanje i realizaciju sekvencijalnog upravljanja, upravljanja procesima, drajverima i kretanjem. Zajedniku osnovu ove platforme ini Logix5000 operativni sistem koji pripada kategoriji preemptivnih, multitasking operativnih sistema. Svaki zadatak (task) moe da sadri jedan ili vie programa koji ukljuuju jedan ili vie potprograma. Zadaci mogu biti konfigurisani kao kontinualni, periodini i uslovljeni dogaajem. Pri tome, kontinualni zadaci se izvravaju unutar raspoloivog procesorskog vremena u kome su svi periodini zadaci u stanju "spavanja". Najmanji period sa kojim mogu da rade periodini zadaci je 1 ms. Svi kontroleri iz familije Logix5000 ukljuuju jedan ili vie procesorskih modula, niz lokalnih U/I modula preko kojih se prikupljaju podaci i prenose upravljaki signali na razliite izvrne organe, kao i module koji realizuju komunikacioni interfejs prema udaljenim U/I modulima i drugim raunarima ili kontrolerima u mrei. U cilju vee fleksibilnosti i skalabilnosti pri reavanju razliitih upravljakih problema, kontroleri se meusobno razlikuju u strukturi samog procesorskog modula, nainu realizacije komunikacija, kao mogunostima povezivanja u mreu. Logix5000 platforma podrava sledee kontrolere ControlLogix CompactLogix FlexLogix DriveLogix SoftLogix5800 Svi moduli u okviru ove familije kontrolera imaju sposobnost viestrukog emitovanja podataka (multicast). To znai da vie ureaja moe da primi iste podatke koje je emitovao jedan ureaj. Podaci koji se prenose struktuirani su kao tagovi. Logix5000 kontroleri se konfiguriu i programiraju pomou RSLogx5000 SL. 1-1 IZBOR TIPA KONTROLERA softverskog paketa koji kroz sistem prozora omoguava jednostavnu specifikaciju kontrolera, izbor modula i formiranje programa. Operativni sistem podrava leder dijagrame (ladder diagrams), struktuirani tekst (structured text), sekvencijalne funkcijske dijagrame (sequential function chart) i blok funkcijske dijagrame (function block diagram). Nezavisno od tipa kontrolera koji e se koristiti svaki projekat zapoinje izborom tipa kontrolera, definisanjem njegovog imena, izborom tipa asije i odreivanjem poloaja kontrolera u asiji (redni broj slota). Pored toga specificira se i redni broj revizije firmwarea koja se eli koristiti za ovaj kontroler1, kao i lokacija na kojoj e se pamtiti projekat koji se kreira (Sl. 1-1). Neki kontroleri iz ove familije nemaju asiju, te se u tom sluaju u okviru menija ni ne nudi specifikacija asije i slota. Centralni procesor svih kontrolera je Logix CPU. On se sastoji iz dva procesora: ARM Core i AB RISC CORE. U zavisnosti od operacionog koda naredbe koja se izvrava
1

Karakteritstike pojedinih kontrolera se poboljavaju kroz izmenu firmware-a komponenti

UVOD/2

aktivirae se jedan od ova dva procesora.

1.1.1.

KONTROLER CONTROLLOGIX (1756)


Udaljeni U/I Drajveri Senzori

RS232

Komunikacioni interfejs moduli


P e t/I e r N lN e t h t E tr o C o n

Lokalni U/I moduli

EtherNet/IP ControlNet DeviceNet Remote I/O Foundation Fieldbus HART

Kontroleri i/ili raunari u mrei

CERCOS drajveri

SL. 1-2 KONTROLER CONTROLLOGIX

ControlLogix kontroleri se sastoje od asije u kojoj se nalaze procesorski moduli, lokalni U/I moduli i komunikacioni interfejs moduli. Pored toga, ova familija kontrolera omoguava da se ostvari vea fleskibilnost sistema postavljanjem vie kontrolera u jednu asiju, povezivanjem vie kontrolera preko mree ili povezivanjem udaljenih U/I modula preko viestruke U/I mree (Sl. 1-2). Kontroler ima i serijski port (RS232). Arhitekturu ovog kontrolera, SL. 1-3 ORGANIZACIJA PROCESORSKIH JEDINCA KOD kao kontrolera 1768 CompactLogix CONTROLLOGIX I 1768 COMPACTLOGIX KONTROLERA karakterie postojanje dva procesorska modula (Sl. 1-3). Jedan od dva modula - CPU Logix - izvrava programski kod i servisira naredbe za prenoenje poruka (messages), dok drugi Backplane CPU vri komunikaciju sa lokalnim i udaljenim U/I jedinicama, kao i razmenu podataka preko mree. Ove operacije se obavljaju potpuno nezavisno od rada prvog procesora, to znai da je proces komunikacije asinhron u odnosu na izvravanje samog programa. Svi moduli koji se nalaze u asiji kontrolera komuniciraju preko backplane magistrale. U izvesnom smislu ova magistrala se moe posmatrati kao mrea sa modulima koji su vorovi u mrei. Mrea se opsluuje po round robin principu pri emu svaki vor ima mogunost da poalje paket maksimalne duine od 50 bajtova. Izborom kontrolera automatski se otvara meni za definisanje projekta u kome se vidi i Backplane CPU za koji e se kasnije vezivati U/I i komunikacioni moduli. Specificirani kontroler je automatski vezan za njega (Sl. 1-4).
SL. 1-4 MENI ZA KREIRANJE PROJEKTA CONTROLLOGIX KONTROLERA

UVOD/3

1.1.2.

KONTROLER COMPACTLOGIX (1768, 1769)

U svojoj osnovnoj verziji CompactLogix kontroler (1769) je prvenstveno namenjen upravljanju na nivou maina. Otuda on prua neto manje funkcionalnosti od ControlLogix kontrolera. Ovaj kontroler nema asiju, ve se svi moduli vezuju direktno na magistralu (1769) koja podrava vezivanje do 16 lokalnih U/I modula. Pored toga ona moe da sadri i komunikacioni interfejs za DeviceNet mreu preko koje se vezuju udaljeni U/I moduli. Sam kontroler ima ugraeni serijski RS232 port kao i mreni port koji omoguava vezivanje u Ethernet ili Control Net mreu (Sl. 1-5).

SL. 1-5 KONTROLER COMPACTLOGIX 1769

Ovaj tip kontrolera ima samo jedan procesor. Umesto zasebnog komunikacionog procesora ovde su ugraena dva posebna programska zadatka koja obavljaju posao auriranja i prenosa podataka (Sl. 1-6).

SL. 1-6 ORGANIZACIJA PROCESORSKE JEDINCE KOD 1769 COMPACTLOGIX , FLEXLOGIX I DRIVELOGIX
KONTROLERA

SL. 1-7 KONTROLER COMPACTLOGIX 1768

UVOD/4

Proirena verzija kontrolera iz klase CompactLogix (1768) sadri dve magistrale. Pored magistrale 1769 koja ima istu funkciju kao i kod kontrolera 1769, druga magistrala (1768) namenjena je vezivanju samog procesora i najvie dva modula za komunikacioni interfejs (Sl. 1-7). Kao i ControlLogix kontroler, ovaj kontroler ima poseban procesor za komunikaciju. Budui da CompactLogix kontroleri nemaju asiju, pri izboru kontrolera nije potrebno da se specificira ni tip asije, a ni slot u koji se stavlja kontroler. im se izvri izbor kontrolera automatski se otvara meni u okviru koga se vide i jedna ili dve magistrale za vezivanje ostalih ureaja (Sl. 1-8).

1.1.3.

FLEXLOGIX KONTROLER (1794)

SL. 1-8 MENI ZA KREIRANJE PROJEKTA KONTROLERA COMPACTLOGIX 1768

Kontroleri iz ove klase namenjeni su relativno malim veoma fleksibilnim sistemima. U pogledu mogunosti komunikacije oni predstavljaju neku vrstu redukovane verzije ControlLogix kontrolera. Razlika je u tome to udaljeni U/I moduli mogu da se vezuju samo preko EtherNet i ControlNet mree, dok je za vezivanje drugih kontrolera i raunara pored ove dve mree podrana i DeviceNet mrea. Sa druge strane, u pogledu naina obavljanja komunikacije oni su realizovani kao i kontroler 1769 CompactLogix. Jedan mali kontroler iz ove klase namenjen je samo vezivanju lokalnih U/I ureaja. Kao i CompactLogix kontroleri ovi kontroleri nemaju posebnu asiju.

1.1.4.

SOFTLOGIX KONTROLERI (1789)

Ovaj tip kontrolera namenjen je kreiranju pouzdanog PC upravljakog sistema. Kontroler iz ove klase je u stvari virtuelna asija koja se realizuje u okviru PCa. Ova virtuelna asija sadri procesor i komunikacioni interfejs koji omoguava povezivanje sa drugim Logix procesorima, kao i sa U/I modulima. Centralna jedinica ovog SL. 1-9 ORGANIZACIJA PROCESORSKE JEDINCE KOD SOFTLOGIX procesora radi pod Windows KONTROLERA operativnim sistemom (Sl. 1-9). To znai da umesto nivoa prioriteta specificiranih za U/I i komunikacione zadatke, ona za obavljanje ovih zadataka koristi nivoe prioriteta u okviru Windows-a.

1.2. TAGOVI - PROMENLJIVE 1.2.1. VRSTE I SPECIFIKACIJA TAGOVA


Podaci koji se obrauju u kontroleru adresiraju se pomou tagova alfanumerikih imena. Jedan Tag zapravo oznaava jedno podruje u memoriji u kome se smeta jedan podatak ili grupa podataka koja predstavlja jednu celinu. Nesumnjivo je da veliina ovog podruja zavisi od tipa podatka, meutim najmanje podruje koje zauzima jedan tag iznosi

UVOD/5

4 bajta (ak i u onim sluajevima kada sam podatak zahteva manje). Pri definisanju imena neophodno je da se specificira tip taga, tip podatka i opseg korienja podatka. Tip taga odreuje ta predstavlja podatak koji je oznaen tagom Base podatak koji se koristi u okviru projekta Alias drugo ime za neki ve definisani tag Produced podatak koji e se generisati u kontroleru i slati preko mree nekim drugim kontrolerima Consumed podatak koji generie neki drugi kontroler a koji posmatrani kontroler prima preko mree Tip podatka odreuje tip podatka, odnosno nain njegovog predstavljanja u raunaru (binarni, celobrojni, realni itd.). Za osnovne podatke najee se koriste sledei tipovi BOOL podatak bit tipa DINT celobrojni podatak formatu dvostruke tanosti (etiri bajta); opseg od -2 147 483 648 do +2 147 483 648 INT 1 celobrojni podatak u jednostrukoj tanosti (dva bajta): opsegu od -32768 do +32767 SINT celobrojni podatak u kratkom formatu (jedan bajt); opseg od -127 do 128 REAL 2 realni podatak; moe da bude 0 ili broj u opsegu negativni brojevi od -3.40282347E38 do -1.17549435E-38 pozitivni brojevi od +1.17549435E-38 do +3.40282347E38 String podatak u formatu ASCII karaktera Iako postoje tri naina za predstavljanje celobrojnih podataka, pri izvravanju programskih naredbi, u najveem broju sluajeva vri se automatska konverzija celobrojnih podataka SINT i INT tipa u DINT tip. Po obavljenoj operaciji, podatak se ponovo konvertuje u originalni tip. To znai da je sa gledita efikasnosti najpogodnije koristiti podatke DINT tipa. Pored navedenih tipova podataka, postoje i drugi tipovi o kojima e posebno biti rei. Opseg ( Scope ) odreuje da li se podatak koristi u okviru samo jednog programa ili celog kontrolera Local data promenljiva se koristi u okviru jednog programa Global data promenljiva moe da se koristi od strane svih programa u kontroleru. Ovaj tip podataka se mora definisati za podatke koji se alju preko message naredbe, prenose na operatorski panel ili pripadaju podacima koji se prenose preko mree (produced/consumed tagovi).

1.2.2.

KREIRANJE TAGOVA

Opti izgled adrese jednog taga prikazan je na Sl. 1-10. Ukoliko je tag osnovna promenljiva onda je njegova adresa samo ime. Pojedini bitovi te promenljive dobijaju se navoenjem imena i broja bita ili indeksa koji ukazuje na broj bita. Tag se specificira pomou odgovarajueg menija u kome se definie njegov opseg, tip i ime (Sl. 1-11). Definisanjem tipa taga ujedno se i odreuje prostor koji e ta
1 2

mora da se koristi kod brzih analognih modula za koje je specificiran celobrojan nain rada mora da se koristi kod analognih modula za koje je odabran nain rada sa kliznim zarezom

UVOD/6

promenljiva zauzeti u memoriji, kao i imena svih pod elemenata tog taga. Ukoliko se eli specifikacija taga koji je alias nekog drugog taga navodi se taj drugi tag. U cilju dokumentacije i transparentnosti projekta, svakom tagu se moe pridruiti i opis.

SL. 1-10 OPTI IZGLED ADRESE TAGA

Kreiranje taga zapoinje otvaranjem prozora New Tag. Ovaj prozor se otvara iz opcije tagova (Controller Tags ako se specificira globalni tag, odnosno odgovarajui program ako se specificira lokalni tag). U posmatranom primeru odabrano je da se tag pridrui programu MainProgram. Definisan je tag pumpa. Za tag je uz predpostavku da nema vie od 16 senzora odabran tip SINT.

Ime taga Tip taga

Tip podatka

Opseg

SL. 1-11 MENI ZA KREIRANJE TAGA

Softver Logix 5000 e automatski kreirati odgovarajue tagove ukoliko se u programu formiranom kao sekvencijalni funkcijski dijagram dodaje jedan elemenat (SFC) ili se funkcionalnom blok dijagramu dodaje naredba koja sadri funkcionalni blok.
PR. 1-1 KREIRANJE OSNOVNIH TAGOVA Pretpostavimo da se u nekoj crpnoj stanici nalazi vei broj pumpi. Svaka od tih pumpi ima izvestan broj senzora kojima se prati njen rad. Neka je senzor koji ukazuje na to da li pumpa radi vezan za bit broj pet promenljive pumpa. Kreiranjem taga pumpa (Sl. 1-11) automatski je definisano jo 8 tagova (pumpa.0 do pumpa.7 tipa BOOL). Struktura kreiranog taga i svi drugi elementi mogu se videti iz menija Edit Tags (Sl. 1-11). Izborom ove opcije otvara se prozor u kome je dat pregled svih kreiranih tagova (Sl. 1-12) Pored taga pumpa definisan je i tag radi koji je alias taga pumpa.5. Na taj nain u programskim naredbama kad god se eli ispitivanje petog bita promenljive pumpa, moe ravnopravno da se koristi bilo koji od ta dva taga (radi ili pumpa.5). Ukoliko se eli adresiranje bilo kog bita promenljive pumpa to se, izmeu ostalog, moe

UVOD/7 postii definisanjem jedne celobrojne promenljive, na primer broj_bita. U tom sluaju, bit se adresira kao pumpa.[broj_bita]. (Budui da je broj_bita definisan kao INT tip, automatski je kreirano jo 16 tagova BOOL tipa kojima se adresiraju pojedini bitovi.)

SL. 1-12 SPECIFIKACIJA ELEMENTARNIH TAGOVA

1.2.3.

STRUKTURA

Struktura predstavlja promenljivu koja je odreena kombinacijom drugih osnovnih tipova podataka. Svaki podatak u okviru strukture se oznaava kao member (lan). Osnovna odlika struktura kod Logix kontrolera je da one mogu da sadre razliite tipove podataka. Postoji jedan broj definisanih struktura koje se koriste za realizaciju softverski generisanog asovnika ili brojaa ili nekih drugih specijalnih naredbi. Tipini primeri predefinisanih struktura su COUNTER (broja), TIMER (asovnik), CONTROL (rad sa blokovima podataka). Korisnik moe i sam da definie svoje strukture - User defined data types. Ova vrste strukture, po pravilu, se definie za sve parametre jednog objekta. Tako na primer, jedna struktura definisana za neki rezervoar moe da ukljuuje kao lanove podatke o pritisku, temperaturi, otvoru ventila, zadanoj referenci i slino. Svakom lanu strukture e se, takoe, pridruiti odgovarajui tag. Uz ovu pretpostavku svi rezervoari u projektu mogu se opisati istom strukturom. Korisnike strukture se definiu na isti nain kao i predefinisane strukture.
PR. 1-2 KORIENJE STRUKTURE TIMER

SL. 1-13 IZGLED STRUKTURE TIMER

UVOD/8

Na Sl. 1-13 prikazan je izgled taga koji predstavlja jedan interni asovnik iji je naziv Sat_1. Kao to se vidi struktura TIMER sadri 5 lanova od kojih prvi ima generiko ime .PRE i sadri zadano vreme, drugi ima generiko ime .ACC i predstavlja izmereno vreme, dok su preostali lanovi BOOL tipa i predstavljaju indikatorske bitove asovnika kojima su pridruena odgovarajua generika imena.

Uz taj tag, definisan je, kao alias i tag koji predstavlja done bit asovnika.
PR. 1-3 GENERISANJE KORISNIKE STRUKTURE Pretpostavimo da se u svakoj od tri crpne stanice nalaze po tri pumpe. Za svaku od pumpi prate se podaci o maksimalnom gornjem nivou vode iznad koga e pumpa biti poplavljena, minimalnom donjem nivou pri kome poinje pumpanje blata, i stanju niza senzora koji ukazuju na rad pumpe.

SL. 1-14 SPECIFIKACIJA STRUKTURE PUMPE

SL. 1-15 SPECIFIKACIJA STRUKTURE CRPNA_STANICA

UVOD/9

SL. 1-16 SPECIFIKACIJA TAGOVA CRPNA_STANICA_1, CRPNA_STANICA_2 I CRPNA_STANICA_3 Svaka od ovih stanica moe se opisati strukturom podataka. Pri tome je neophodno da se kao prvo definie struktura pumpe. Ona ima tri lana od kojih su prva dva realni podaci koji predstavljaju gornji i donji nivo, dok je trei celobrojni podatak pumpa definisan u PR. 1-1. Ova struktura zauzima 12 bajtova (Sl. 1-14). Struktura pumpe se zatim koristi za definisanje strukture crpna_stanica. Ona se sastoji od tri lana iji tipovi su strukture koje se nazivaju pumpe (Sl. 1-15). Samo se po sebi razume da je neophodno da se kao prvo definie struktura pumpe, jer je ona gradivni element strukture crpna_stanica. Budui da struktura pumpe sadri 12 bajtova, struktura crpna_stanica koja sadri 3 ovakve strukture zauzima 36 bajtova. Kada su ove strukture definisane onda se mogu definisati tagovi tipa struktura kao to je to prikazano na Sl. 1-16. Potrebno je obratiti panju na injenicu da se naziv crpna_stanica odnosi na generiki naziv strukture, dok su imena crpna_stanica_1, crpna_stanica_2 i crpna_stanica_3 tagovi iji je tip struktura. Prilikom definisanja svakog od ovih tagova, navoenjem njegovog tipa, automatski se pridruuje svih 36 bajtova, sa pripadajuim imenima lanova strukture (Sl. 1-16).

1.2.4.

VIEDIMENZIONALNO POLJE (MATRICA)

Matrica tagova je ureeno jednodimenzionalno, dvodimenzionalno ili trodimenzionalno polje elementa. Elementi matrice mogu biti osnovni tagovi, strukture ili matrice. Pri tome, svi elementi u matrici moraju biti podaci istog tipa. Matrica se specificira tako to se uz tip taga (Data Type), u uglastim zagradama, navode njene dimenzije (Sl. 1-17). Svaki elemenat matrice oznaava se navoenjem njegovih indeksa u uglastim zagradama. Indeksi poinju od broja 0. Pri pozivanju taga, kao indeks moe da se koristiti konstanta, promenljiva predstavljena odgovarajuim tagom ili aritmetiki izraz. Kod viedimenzionalnih matrica, prvi indeks odreuje red, drugi dubinu, a trei visinu (Sl. 1-17). Elementi se u memoriji reaju po redovima unutar jednog nivoa.

UVOD/10

RED

VISINA

SL. 1-17 SPECIFIKACIJA I IZGLED VIEDIMENZIONOG POLJA PR. 1-4 KREIRANJE JEDNODIMENZIONALNOG POLJA STRUKTURA Pretpostavimo da se u nekom projektu koristi vie asovnika, kao i vie crpnih stanica. Usvajajui da se podaci o crpnoj stanici predstavljaju korisnikom strukturom definisanom u Pr. 1-3, ovi podaci se mogu predstaviti pomou dva jednodimenzionalna polja satovi i crpnestanice kao to je to prikazano na Sl. 1-18. Pri specifikaciji ovih tagova dovoljno je da se navede ime taga, odabere tip i specificira odgovarajua dimenzija. Potreban prostor u memoriji za sve lanove strukture sa pripadajuim imenima tagova se kreira automatski. U skladu sa opisanim formatom adrese akumulirana vrednost drugog asovnika u matrici satovi imae adresu satovi[1].DN dok e peti bit druge pumpe u treoj crpnoj stanici imati adresu crpnestanice[2].pumpa1.pumpa.5.

UVOD/11 SL. 1-18 JEDNODIMENZIONALNA POLJA STRUKTURA TIPA TIMER I CRPNA_STANICA PR. 1-5 DVODIMENZIONO POLJE

SL. 1-19 DVODIMENZIONALNA MATRICA OSNOVNOG TAGA GREJAC Pretpostavimo da su svakom od tri grejaa pridruena po dva podatka koji predstavljaju zadanu i ostvarenu temperaturu. Ovi podaci se mogu predstaviti dvodimenzionalnim poljem u kome se u svakom redu nalazi po jedan greja, dok se u kolonama nalaze podaci o izmerenoj i zadanoj temperaturi. Tako formirano polje prikazano je na Sl. 1-19. Ime taga grejac definisano je kao realna promenljiva dimenzija 3x2. Izmerenoj temperaturi na prvom grejau, kao i zadanoj temperaturi na drugom grejau pridrueni su alias tagovi temp_g1 i zadano_g2, respektivno.

1.2.5.

MAPIRANJE TAGOVA

Sutinska razlika izmeu tagova kod Logix kontrolera u odnosu na veinu drugih programabilnih kontrolera sastoji se u tome to za korienje ili razmenu ovih podataka nije potrebno da se poznaje fizika adresa memorije u kojoj se podatak nalazi. Ova injenica u velikoj meri olakava formiranje aplikacija u kojima se prikazuju vrednosti razliitih tagova. Meutim, ona istovremeno moe da stvori probleme pri razmeni podataka sa kontrolerima kod kojih su podaci organizovani u formi SL. 1-20 ILUSTRACIJA MAPIRANJA TAGOVA datoteka i koji zahtevaju eksplicitno navoenje broja datoteke. Da bi se omoguila ova razmena neophodno je da se obavi mapiranje podataka, odnosno da se tagu koji uestvuje u ovoj razmeni pridrui broj odgovarajue datoteke (Sl. 1-20). Opcija mapiranja moe se koristiti samo za globalne tagove. Potrebno je zapaziti da je mapiranjem obuhvaena cela datoteka, odnosno da se ne mogu mapirati pojedini elementi jedne datoteke. Samo se po sebi razume da tag koji se mapira mora biti jednog odreenog tipa, odnosno da se ne mogu koristiti strukture koje se sastoje od raznorodnih tipova podataka. U principu mapiranje se vri za binarne (B), celobrojne (N) i realne (F) datoteke.

1.3. RAZMENA PODATAKA U SISTEMU


Logix 5000 kontroleri omoguavaju sledee vrste komunikacija: Kontroler sa lokalnim U/I modulima ili lokalnim komunikacionim modulima Kontroler sa udaljenim U/I modulima ili udaljenim komunikacionim modulima

UVOD/12

Prenos proizvedenih i primljenih tagova Prenos poruka (programske message naredbe; u zavisnosti od tipa ureaja koji se nalazi u voru mree komunikacija se ostvaruje pomou RSLogix 5000 softvera ili RSLinx softvera) Pristup kontroleru preko RSLogix 5000 softvera Pristup kontroleru preko RSLinx softvera ili operatorskih terminala Logix 5000 sistem koristi veze (connection) za ostvarivanje komunikacije. Veza je dvosmerna putanja koja se uspostavlja izmeu dva ureaja. Specifikacijom veze u svakom ureaju se alocira po jedan komunikacioni bafer za prihvat podataka i obezbeuje nadzor nad prenosom podataka. Na taj nain se izbegava problem sa eventualnim preklapanjem podataka u baferu. Pored toga, kontroler nadzire komunikaciju sa modulom sa kojim je uspostavljena veza. Bilo koji prekid na vezi prouzrokovae postavljanje statusnih bitova modula. Kontroler periodino proverava ove statusne bitove i po potrebi daje informaciju o greci u komunikaciji. U principu, kontroler zapoinje komunikaciju otvaranjem veze i realizuje prenos samo ukoliko dobije potvrdu da je veza uspostavljena (Sl. 1-21). Pri jednom otvaranju veze mogue je izvriti vie razliitih prenosa podataka, Pored toga, veza se moe ostaviti i otvorenom, po okonanju prenosa. Potrebno je istai da se pri specifikaciji komunikacije izmeu dva ureaja automatski alociraju veze. Samo se po sebi razume da jedan kontroler moe imati ogranien broj veza, to zahteva da se pri izboru komunikacionih modula o ovome vodi rauna. Alternativa komunikaciji preko veze je prenos nepovezanih poruka. U ovoj vrsti komunikacije ne zahteva se alociranje posebne veze, ve se prenos ostvaruje korienjem jedne povremene veze. Razmena informacija u sistemu vri se preko U/I modula, preko proizvedenih i primljenih tagova, kao i pomou naredbi za prenos poruka (message). Sama komunikacija moe biti periodina, to znai da se ona automatski obavlja sa utvrenom periodom vremena. Ovaj period se oznaava kao RPI (Requested packet interval). Za razliku od nje, asinhrona komunikacija je ona koja se realizuje po zahtevu.

UVOD/13 SL. 1-21 RAZMENA PODATAKA PREKO VEZE

Komunikacija sa modulima koji se nalaze u lokalnoj asiji ostvaruje se ili pomou posebnog zadatka ili posredstvom komunikacionog procesora koji po round robin principu opsluuje module koji su vezani za backplane magistralu. Pored komunikacije sa lokalnim modulima kontroler moe ostvariti i komunikaciju preko mree. Samo se po sebi razume da je za vezivanje kontrolera u mrei neophodno da se u lokalnoj asiji postavi odgovarajui mreni modul. U zavisnosti od tipa postavljenih modula oni mogu, ali i ne moraju zahtevati posebnu vezu za komunikaciju.

1.4. KONFIGURISANJE KONTROLERA


Kada se formira projekat i ustanove funkcije koje jedan kontroler treba da obavi u smislu prikupljanja podataka, kao i razmene tih podataka preko mrea sa drugim ureajima, onda se odabere tip kontrolera i vri njegova konfiguracija. Parametri odabranog kontrolera kao i opcije koje su specificirane mogu se videti izborom opcije Properties (Sl. 1-22). Konfiguracija kontrolera vri se uz pomo menija I/O Configuration. Izborom opcije New module korisniku se prua mogunost da odabere tip i vrstu modula koji eli da postavi u sistem (Sl. 1-23). Na raspolaganju je izbor lokalnih i udaljenih U/I modula, definisanje njihovih imena i ostalih relevantnih parametara (opcije Analog, Digital). Pored toga, vri se izbor komunikacionih modula i eventualnih adaptera za udaljene module (Communications), drajvera za upravljanje motorima (Drives), modula za upravljanje kretanjem (Motion), i drugih modula (Other, Speciality). Ukoliko se radi o ControlLogix kontroleru, onda se mogu specificirati i dodatni kontroleri koji e biti smeteni u istoj asiji (Controllers). U zavisnosti od lokacije U/I moduli se dele na lokalne i udaljene. Lokalni U/I moduli se postavljaju u odgovarajue slotove u asiji kontrolera, odnosno vezuju direktno za kontroler ukoliko on nema asiju. Potrebno je da se istakne da svi lokalni moduli uvek koriste direktne veze za komunikaciju.

UVOD/14

SL. 1-22 SPECIFIKACIJA PARAMETARA KONTROLERA I IZBOR NOVOG MODULA

Udaljeni U/I moduli se mogu vezivati preko mree ili udaljenih U/I asija u kojima radom U/I modula upravlja odgovarajui adapter. U ovom drugom sluaju u samom kontroleru se mora postaviti odgovarajui modul za komunikacioni interfejs, dok se u udaljenoj asiji postavlja adapter. Ukoliko se radi o vezivanju lokalnih modula onda je dovoljno da se odabere odgovarajui analogni ili digitalni modul. Meutim, ukoliko se radi o vezivanju udaljenih modula onda je neophodno da se kao prvo izabere mrea preko koje e se oni vezivati i da se u skladu sa tim specificiraju odgovarajui adapteri (Communication module). Tek posle toga se za udaljeni adapter mogu specificirati odgovarajui digitalni i analogni SL. 1-23 MENI ZA moduli. KONFIGURACIJU Opisani postupak ilustrovan je na Sl. 1-24. Ako se radi o kontroleru ControlLogix kod koga se celokupna razmena podataka obavlja preko backplane magistrale (1756 Backplane) svi moduli se vezuju za ovu magistralu. Pri tome, im se odabere kontroler meni sam otvara ovu magistralu i na nju vezuje odabrani kontroler. U ovom sluaju je to kontroler 1756-L64 kome je dato ime TERI_CLX_LOCAL i koji je smeten u slot 0 asije. Pri izboru modula, korisnik specificira i redni broj slota u kome e modul biti smeten. U sluaju CompactLogix 1769 kontrolera situacija je neto drugaija. Naime, kao to je ve reeno ovaj kontroler ima dve magistrale, pri emu se lokalni moduli mogu postaviti samo na jednoj od njih (magistrala 1769). Pri specifikaciji kontrolera meni sam otvara obe magistrale i za njih vezuje odabrani kontroler. Meutim, izbor lokalnih modula mogu je iskljuivo na magistrali 1769.

Lokalni moduli

KONTROLER CONTROLLOGIX

KONTROLER COMPACTLOGIX

SL. 1-24 SPECIFIKACIJA LOKALNIH MODULA KONTROLERA

O vezivanju udaljenih U/I modula bie rei kasnije kada se razmotre specifinosti komunikacije kontrolera preko razliitih mrea.

1.4.1.

ADRESE U/I PODATAKA

SL. 1-25 ADRESE U/I MODULA

UVOD/15

Informacije o podacima koji se unose ili iznose preko U/I modula takoe se smetaju u memoriju kontrolera, to znai da se i njima pristupa pomou tagova. Svaki tag koristi odgovarajuu strukturu podataka koja zavisi od specifinosti samog modula. U/I adresa ima format koji je prikazan na Sl. 1-25. Podaci sa U/I modula smetaju se u tag sa oznakom Member. Ukoliko se radi o digitalnom U/I onda Data member najee sadri vrednost ulaznog ili izlaznog bita. Kod analognih U/I, Channel member (CH#) sadri podatak sa odgovarajueg analognog kanala. Tag SubMember sadri specifine podatke koji su povezani sa tagom Member. Konano tag Bit odnosi se na odreeni pin digitalnog U/I modula. Prilikom konfigurisanja U/I modula, automatski se kreiraju svi tagovi koji su neophodni za rad tog modula. Najee se za jedan modul kreiraju tagovi O (za izlaz), I (za ulaz) i C (control) tipa. Tako se, na primer, pri postavljanju digitalnog ulaznog modula u prvi slot krontrolera, kreiraju dva taga predefinisane strukture prikazana na Sl. 1-26. Prvi tag je tipa C i sadri podatke o konfiguraciji modula. Drugi tag tipa I ima dva lana. Prvi lan (Fault) e u toku rada sadravati informacije o grekama, dok e se u drugom lanu (Data) smetati podaci koji se oitavaju sa ulaznih pinova. Budui da se imena U/I tagova automatski odreuju u skladu sa tipom U/I modula pogodno je da se za njih kreiraju alias tagovi kojima e se pridruiti imena koja ukazuju na to ta zapravo predstavljaju ulazni ili izlazni signali koji se prenose preko ovih modula. Ako se, na primer, pretpostavi da su prva dva pina posmatranog ulaznog modula vezana za granine prekidae na jednom ventilu onda se tim prekidaima mogu pridruiti dva alias taga kao to je to pokazano na . U/I tagovi su po svojoj prirodi globalni i svrstavaju se u grupu Controller tags.

SL. 1-26 TAGOVI KREIRANI ZA DIGITALNI ULAZNI MODUL TIPA 1756_IA16

UVOD/16

SL. 1-27 ALIAS TAGOVI ZA ULAZNI MODUL

KOMUNIKACIJE/17

2. Komunikacije
2.1. DIREKTNO VEZIVANJE KONTROLERA PREKO SERIJSKOG PORTA
Komunikacija sa serijskim portom kontrolera se ostvaruje preko RS232 DF1 serijskog drajvera ureaja sa kojim se komunicira . U cilju direktnog sprezanja kontrolera preko RS232 porta sa odgovarajuim ureajem neophodno je da se izvri konfiguracija drajvera, kao i serijskog porta. Konfiguracija drajvera se obavlja pomou RSLinx softvera koji kroz odgovarajue menije prua mogunost da se izabere komunikacioni drajver i da se definie SL. 2-1 MENI ZA KONFIGURACIJU SERIJSKOG PORTA njegovo ime. U sluaju vezivanja preko serijskog porta potrebno je odabrati drajver RS-232 DF1 Device (Sl. 2-1). U okviru menija se zatim definie komunikacioni port ureaja koji se vezuje za kontroler (Comm Port), kao i sam kontroler (Device). Preostali parametri se mogu posebno odabirati ili se mogu koristiti predefinisane vrednosti izborom opcije AutoConfigure. Serijski port Logix 5000 kontrolera sa kojim se vri povezivanje konfigurie se u okviru menija za kreiranje projekta1.

2.2. KOMUNIKACIJA PREKO MREE 2.2.1. ETHERNET/IP MREA

EtherNet komunikacija realizovana je u okviru standardnog OSI modela koji se koristi za eternet komunikaciju i to tako to je aplikacionom sloju dodat CIP protokol (Common Industrial Protocol) (Sl. 2-2). Na taj nain omogueno je direktno povezivanje industrijskih i poslovnih EtherNet mrea u jednu celinu, kao i implementacija svih tehnolokih usavravanja EtherNet mree. Budui da je isti CIP protokol ugraen i u aplikacione slojeve ControlNet i Devicenet mree, ovaj pristup omoguava direktnu razmenu informacija preko tri tipa industrijskih mrea. EtherNet mrea se moe koristiti za upravljanje udaljenim modulima, kao i prenos poruka sa drugim ureajima koji se nalaze u vorovima mree. Pored toga, ona podrava i viestruko emitovanje u okviru koga se generiu proizvedeni i primljeni tagovi. Kontroler se vezuje u mreu pomou EtherNet/IP komunikacionih modula (Error! Reference source not found.). Na raspolaganju su dva tipa modula. ENBT modul (1756 ili 1768) podrava prenoenje poruka pomou msg naredbi, proizvedenih i primljenih tagova, vezu sa operatorskim panelima i udaljenim U/I SL. 2-2 OSI MODEL INDUSTRIJSKE ETHERNET
MREE
1

Konfigurisanje se razmatra u odeljku o serijskom prenosu informacija

KOMUNIKACIJE/18

ureajima. U cilju komunikacije sa udaljenim U/I ureajima neophodno je da se na udaljenoj lokaciji postavi odgovarajui adapter (AENT). Prenos informacija mogue je realizovati u punom ili polu dupleksu brzinama od 10 MB/s i 100 MB/s. Ovaj modul podrava i vezu sa standardnim switch-evima. EW EB modul (1756 ili 1768) podrava pristup podacima u kontroleru (oitavanje i upisivanje) preko standardnih web browser-a, kao i komunikaciju preko e-mail-a. Pored toga, ovaj modul omoguava rutiranje poruka ali ne podrava upravljanje U/I modulima. Podaci se preko ove mree prenose se u skladu sa definisanim RPI intervalom1 ako se komunikacija vri sa U/I ureajima ili u skladu sa programskim msg naredbama.

SL. 2-3 JEDNA KONFIGURACIJA ETHERNET MREE

PR. 2-1 Pretpostavimo da udaljenim U/I sa Sl. 2-3 upravlja 1768 CompactLogix kontroler. U tom sluaju konfiguracija kontrolera vri se na nain prikazan na Sl. 2-4.

SL. 2-4 SPECIFIKACIJA UDALJENIH U/I NA ETHERNET MREI


1

Request Packet Interval definisani period vremena za prenos podataka

KOMUNIKACIJE/19

2.2.2.

CONTROLNET MREA

ControlNet mrea pripada kategoriji industrijskih deterministikih mrea koje rade u realnom vremenu. Ova mrea podrava iste vrste komunikacija kao i EtherNet. Korienjem jedne fizike veze mogue je ostvariti brzi prenos vremenski kritinih poruka, uzajamno zavisnih podataka (interlock) podataka, kao i programa i konfiguracionih podataka. Ova mrea se esto koristi kao zamena za mreu udaljenih U/I, kao osovina (backbone) za viestruke DeviceNet mree, i kao peer interlocking mrea. Informacije koje se prenose preko ove mree dele se u dve kategorije. Scheduled informacije iji je periodini prenos zagarantovan u skladu sa definisanim RPI intervalom. Ova vrsta komunikacije obuhvata U/I ureaje, proizvedene i primljene tagove, kao i razmenu podataka izmeu komunikacionih ureaja. Unscheduled informacije koje se prenose po potrebi, u skladu sa RPI intervalom U/I ureaja ili msg naredbom. Da bi ControlNet mrea mogla da opslui ove dve vrste informacija neophodno je da se ona konfigurie pomou RSNetWorx for ControlNet softverskog paketa. U okviru konfiguracije definie se NUT interval (Network Update Time), odnosno vremenski period sa kojim se za scheduled veze garantuje prenos podataka iz tog vora. Taj interval se zatim deli izmeu scheduled komunikacije koje se moraju obavljati sa datom periodom i unscheduled komunikacija koje se realizuju u preostalom delu vremena po round robin principu (Sl. 2-5). Imajui u vidu da se prenos vri u skladu sa RPI periodom, ali da se pri tome garantovano vreme prenosa odreuje pomou NUT intervala oigledno je da mora da se uspostavi neki odnos izmeu ove dve vrednosti. U tom smislu neophodno je da se RPI period definie kao 2nNUT. Pored toga, pri specificiranju informacija koje se prenose treba voditi rauna da se u okviru jednog NUT intervala moe preneti najvie 500 bajtova. To znai da je za prenoenje duih poruka neophodno da se ona, kreiranjem vie tagova, podeli na blokove. Pri tome, treba imati na umu da je u sluaju vie povezanih ureaja na mrei gotovo izvesno da e neki od RPI perioda biti takvi da vie komunikacija deli isti NUT interval.
NUT

vreme

SL. 2-5 VREMENSKI DIJAGRAM KOMUNIKACIJE PREKO CONTROLNET MREE

U cilju realizacije komunikacije neophodno je koristiti odgovarajue komunikacione module (CNB, CNBR). Ovi moduli omoguavaju prenos poruka pomou msg naredbi, razmenu proizvedenih i primljenih podataka sa drugim Logix 5000 kontrolerima, komunikaciju sa operatorskim interfejsom, kao i upravljanje udaljenim U/I ureajima uz pomo odgovarajuih adaptera smetenih u udaljenoj asiji (ACN i ACNR). Pored toga, budui da dele isti aplikacioni sloj (CIP protokol) sa EtherNet i DeviceNet mreom, oni igraju ulogu i bridge-a koji rutira poruke ka drugim mreama. Modul CNBR podrava i redundantnu mreu, odnosno mreu kod koje se prenos vri preko dva kanala i u svakom

KOMUNIKACIJE/20

trenutku se uzima kvalitetniji signal. Ukoliko bi se eternet moduli i adapteri prikazani na Error! Reference source not found. zamenili odgovarajuim modulima i adapterima dobila bi se ControlNet mrea. U tom sluaju bi radna stanica imala odgovarajuu Controlnet komunikacionu karticu.
PR. 2-2 Pretpostavimo da je mrea prikazana na Sl. 2-3 ControlNet mrea i da ControlLogix kontroler upravlja radom udaljenih U/I, kao i radom drajvera i HMI-a. U tom sluaju konfiguracija kontrolera vri se na nain prikazan na Sl. 2-6.
1. Dodaj lokalni ControlNet module

otvara se ControlNet 2a. Dodaj ControlNet adapter za udaljene U/I na Flexbus-u 3. Dodaj drajver i HMI kojima se upravlja preko mree otvara se Flexbus 2b. Dodaj udaljene U/I module

otvara se Backplane 4. Dodaj udaljeni EtherNet module kao adapter 4b. Dodaj udaljene U/I module

SL. 2-6 SPECIFIKACIJA UDALJENIH U/I NA CONTROLNET MREI

2.2.3.

DEVICENET MREA
DeviceNet mrea

SL. 2-7 SPREGA CONTROLNET I DEVICENET MREE

DeviceNet mrea je zasnovana na CAN tehnologiji i koristi CIP protokol kao

KOMUNIKACIJE/21

aplikacioni sloj. Mrea se moe koristiti za upravljanje udaljenim modulima i komunikaciju sa drugim ureajima, ali ne podrava prenos proizvedenih i primljenih tagova. U principu, ova mrea se koristi za direktno vezivanje "inteligentnih" U/I ureaja, ime se izbegava potreba za korienjem U/I modula koji bi razmenjivali podatke sa ovim ureajima. U cilju realizacije komunikacije u okviru DeviceNet mree neophodno je da se koriste odgovarajui moduli (DeviceNet Scanner 1756-DNB za ControlLogix i 1769 SDN za CompactLogix). Pomou ovih modula ostvaruje se komunikacija sa vorovima na mrei, konfigurie kontroler kao master na mrei, kao i upravljanje udaljenim U/I. Za komunikaciju sa udaljenim U/I neophodno je da se u udaljenoj asiji postavi i odgovarajui adapter (ADN - DeviceNet adapter) . Za svaki DNB modul ControlLogix kontroleri zahtevaju po dve veze, od kojih se jedna koristi za indikaciju stanja modula i konfiguraciju, a druga je rack-optimized i koristi se za prenos podataka. Budui da i ova mrea koristi CIP protokol u aplikacionom sloju ona moe direktno da komunicira sa EtherNet mreom (uz korienje EN2DN modula), kao i sa ControlNet mreom (uz korienje CN2DN modula). Za konfiguraciju ureaja koji komuniciraju preko DeviceNet mree koristi se RSNetWorx for DevicelNet softverski paket. Pomou njega se istovremeno specificira i sken lista ovih ureaja. Softverski paket RSLinx koristi se za konfiguraciju komunikacionih ureaja, specifikaciju eljene dijagnostike i uspostavljanja komunikacije.
PR. 2-3 Konfiguracija 1769 CompactLogix kontrolera na ControlNet mrei koji preko bridge-a komunicira sa DeviceNet mreom i istovremeno razmenjuje podatke sa U/I ureajima preko druge Devicenet mree (Sl. 2-7) prikazana je na Sl. 2-8. Obratiti panju na injenicu da je jedna DeviceNet mrea vezana direktno preko magistrale 1769, dok je druga vezana preko bridge-a. 1. Dodaj lokalni ControlNet module

otvara se ControlNet 2. Dodaj bridge za DeviceNet

DeviceNet skener za komunikaciju sa U/I SL. 2-8 SPECIFIKACIJA KONTROLERA ZA UPRAVLJANJE U/I NA DEVICENET MREI

2.2.4.

SERIJSKI PRENOS INFORMACIJA

Serijski prenos informacija namenjen je komunikaciji sa ureajima u mrei pomou DF1 protokola. Otuda se on koristi za komunikaciju preko modema, upravljanje ASCII ureajima i SCADA aplikacije. Pored toga, serijski prenos omoguava i ukljuivanje kontrolera u DH485 mreu. Serijska komunikacija ostvaruje se preko serijskog RS232 porta koji je ugraen u kontroler. Ovaj port moe se konfigurisati da podri jedan od dva reima rada: system mode i user mode. Izbor izmeu njih vri se pri konfigurisanju kontrolera (opcija Serial port). Odgovarajui meni prikazan je na Sl. 2-9. Pored specifikacije brzine prenosa, duine poruke, parnosti i duine stop bita, pri izboru naina rada potrebno je specificirati i da li se prenos obavlja kao puni ili poludupleks ili bez korienja tehnike rukovanja (handshake). Konano, za komunikaciju na master/slave mrei koja koristi modeme potrebno je definisati vreme ekanja pri ispitivanju

KOMUNIKACIJE/22

stanja RTS (request-to-send) linije u cilju sinhronizacije sa modemom.

System User

None Odd Even

No Handshake Full Duplex Half Duplex Vreme od detekcije RTS signala do poetka slanja poruke Vreme od slanja poslednjeg bita poruke do prekida ispitivanja RTS signala

SL. 2-9 MENI ZA KONFIGURACIJU SERIJSKOG PORTA

System mode u ovom nainu rada mrea moe da podri razliite protokole koji se specificiraju pomou opcije System protocol (Sl. 2-10). Nezavisno od izabranog protokola za svaki je neophodno da se specificira adresa stanice, dok ostale konfiguracione opcije zavise od vrste protokola.

SL. 2-10 MENI ZA KONFIGURACIJU SERIJSKE MREE KONTROLER RADI KAO DF1 MASTER

KOMUNIKACIJE/23

DF1 point-to-point (puni dupleks) ravnopravna komunikacija izmeu dva ureaja koja podravaju DF1 protokol. Ovo je ujedno i default konfiguracija. Potrebno je da se specificira dozvoljeni broj prijema NAQ signala, slanja ENQ signala, tajmaut ekanja na odgovor (ACK), kao i da li se dozvoljava ugraeni odgovor. DF1 master mrea koja podrava jedan master i najvie 254 slave vora. Kontroler koji se konfigurie igra ulogu mastera i moe da upravlja komunikacijom na jedan od etiri naina (Polling mode). Svi neophodni konfiguracioni parametri prikazani su na Error! Reference source not found.. DF1 slave kontroler koji se konfigurie igra ulogu slave-a. Koristi se polu dupleks protokol. Potrebno je specificirati maksimalni broj ponavljanja pokuaja komunikacije, kao i tajmaut interval. DF1 radio modem koristi specifian protokol koji je neka vrsta hibrida izmeu DF1 punog dupleks i polu dupleks protokola, ali je optimiziran za radio prenos. Naime, isto kao i DF1 puni dupleks protokol, radio modem dozvoljava svakom voru da inicira prenos u bilo kom trenutku. Meutim, od polu dupleks protokola je preuzeta funkcija ignorisanja bilo kog paketa koji ima odredinu adresu koja ne odgovara kontroleru koji prima paket. Izuzetak su paketi koji nastaju u viestrukoj emisiji. Konano, za razliku i od punog i od poludupleks protokola, radio modem protokol ne ukljuuje ACK, NAK ili ENQ signale. Inegritet podataka odrava se iskljuivo pomou CRC provere. Ovaj protokol je kompatibilan sa protokolom koji se koristi za SLC500 i Micrologix kontrolere. DH485 - koristi RS485 fiziki interfejs za realizaciju DH485 protokola.. User mode u ovom nainu rada mrea podrava prenos ASCII karaktera. Serijski port omoguava i komunikaciju pomou Modbus protokola. U tu svrhu koristi se poseban leder potprogram koji je sastavni deo RSLogix 5000 softvera.
NET AIC+ konvertor RS232 u DH485 ControlLogix sa RS232 portom konfigurisanim kao DH485

2.2.5. DH485 MREA


Kada se serijski port konfigurie kao DH485, onda Logix kontroleri mogu da komuniciraju preko DH485 mree. Pri tome se mrea vezuje za RS232 port preko NETAIC modula koji vri konverziju podataka. Ovaj protokol je kompatibilan sa SLC500 i Micrologix kontrolerima i koristi se za komunikaciju preko DH485 mree (Sl. 2-11). Preko ove mree kontroler moe da razmenjuje iskljuivo poruke.

AIC izolovana veza

SLC 5/03

SL. 2-11 VEZIVANJE KONTROLERA U DH485


MREU

2.2.6. DHRIO MODUL


DHRIO modul moe da se postavi iskljuivo u ControlLogix kontroler. Ovaj modul ima dva kanala koja se mogu konfigurisati tako da podre univerzalni U/I ili DH+ mreu (Sl. 2-12). DH+ mrea DH/RIO modul koji se direktno vezuje u DH+ mreu omoguava komunikaciju sa drugim vorovima u mrei. Najee se koristi za razmenu poruka sa PLC5 i SLC kontrolerima. Komunikacija se konfigurie pomou RSLinx softvera koji dodeljuje jedinstveni ID backplane magistrali kontrolera i omoguava formiranje tabele rutiranja DH/RIO modula. Univer zalni udaljeni U/I obezbeuje mogunost konfiguracije i skeniranja

KOMUNIKACIJE/24

udaljenih modula uz pomo DH/RIO modula

SL. 2-12 KONFIGURISANJE DHRIO MODULA

Udaljeni U/I moduli se vezuju preko odgovarajuih adaptera (ASB). Jedan DH/RIO modul moe da podri vie adaptera.

SL. 2-13 KONFIGURISANJE ADAPTERA ZA UDALJENI U/I

Svaki adapter mora posebno da se konfigurie (Sl. 2-13Error! Reference source not found.). Pored imena adaptera neophodno je da se definie identifikacioni broj asije (Rack #) za koju e biti vezani udaljeni U/I. Ovaj ID broj se zadaje oktalno i moe da se kree u opsegu od 0 do 76. Zatim se bira veliina asije (Size), odnosno broj modula koji e za nju biti vezan. asija moe da ima 2, 4, 6 ili 8 grupa U/I, odnosno 4, 8, 12 i 16 modula. Konano, definie se i poetna grupa (Starting Group) U/I modula u toj asiji. Ova

KOMUNIKACIJE/25

grupa je direktno vezana za veliinu asije. Naime, ako se kao poetna grupa odabere na primer broj 2, onda to znai da asija moe imati najvie est grupa, koje e imati brojeve 2, 4 i 6.
PR. 2-4 Konfiguracija kontrolera koji ima DHRIO modul konfigurisan u skladu sa Error! Reference source not found. prikazana je na Sl. 2-14.

SL. 2-14 DODAVANJE DHRIO MODULA Da je DHRIO modul specificiran sa dva RIO kanala, u meniju bi se automatski pojavila oba kanala.

2.2.7.

FOUNDATION

FIELDBUS MREA

Foundation fieldbus mrea je namenjena vezi sa razliitom mernom opremom i izvrnim organima koji podravaju fieldbus protokol. Komunikaciju moe da realizuje iskljuivo ControlLogix kontroler. U tu svrhu on mora biti vezan u etherNet ili ControlNet mreu, to znai da mora imati odgovarajui EBNT modul. Ova mrea se vezuje na Fieldbus magistralu preko posebnog modula koji igra ulogu bridge-a (1757-FFLD modula za EtherNet mreu, 1788-CN2FF za ControlNet mreu). HART PROTOKOL (HIGWAY ADDRESSABLE REMOTE TRANDUCER PROTOCOL) HART protokol je otvoreni protokol namenjen komunikaciji sa procesnom mernom opremom. Ovaj protokol kombinuje digitalne i analogne signale i formira procesne promenljive. Istovremeno obezbeuje i dijagnostiku mernih signala. Posebni moduli (IF8H i OF8H) koji se vezuju u ControlLogix kontroler sadre analogne i HART signale. Istovremeno ovi moduli prenose HART naredbe kao msg poruke.
PR. 2-5 Konfiguracija kontrolera koji istovremeno sadri bridge za komunikaciju sa Foundation Fieldbus modulima, kao i sa HART modulima prikazan je na Sl. 2-15. 1. Dodaj lokalni EtherNet module

otvara se EtherNet 2. Dodaj bridge za Fieldbus otvara se Foundation Fieldbus 3. dodaj udaljeni modul dodaj HART module SL. 2-15 DODAVANJE UDALJENIH FIELDBUS MODULA I HART MODULA

KOMUNIKACIJE/26

2.3. U/I MODULI


Konfiguracija svakog od U/I modula koji se vezuje u sistem definie se pomou posebnog menija. U principu svi moduli imaju jedan broj konfigurabilnih parametara1. Konfiguracija U/I modula se moe promeniti u fazi generisanja projekta pomou RSLogix 5000 softvera ili u toku izvravanja programa pomou odgovarajue message naredbe (MSG Type Module Reconfigure).

2.3.1.

SPECIFIKACIJA FORMATA KOMUNIKACIJE

Jedan broj U/I modula koji se mogu vezati sa kontrolerima iz ove familije ima fleksibilnost u pogledu izbora tipa podataka, prava upravljanja komunikacijom, generisanja dijagnostikih poruka i eventualno izbora vrsta veza. Za one module koji imaju tu fleksibilnost konfiguracija se vri pomou opcije Communication format. Format komunikacija se specificira u okviru odgovarajueg menija za konfiguraciju modula. Odabrani format komunikacije se ne moe menjati. Ukoliko je neophodno da se on promeni, modul se mora izbrisati i ponovo uneti u sistem. Potrebno je da se istakne da neki moduli zahtevaju da se uspostavi direktna veza tako da oni nemaju posebnu opciju za definisanje komunikacionog formata. Neke od osobina ovih modula mogu se specificirati izborom opcije Change u samom modulu. Veza (Connection) Svi U/I moduli koji se postavljaju u lokalnu asiju uspostavljaju direktnu vezu (direct connection) koja se ostvaruje u realnom vremenu. To znai da svaki od njih ostvaruje nezavisnu komunikaciju sa kontrolerom. Izbor ove vrste veze postie se automatski postavljanjem modula kod koga je komunikacioni format definisan kao Input data ili Output data za digitalne module, odnosno Float ili Integer za analogne module. Kod analognih modula, ovim se istovremeno odreuje da li e podatak u analognom modulu biti celobrojni ili realni. Pored nabrojanih formata, koji odreuju direktnu vezu, postoje i drugi o SL. 2-16 KOMUNIKACIJA PREKO DIREKTNE VEZE kojima e kasnije biti vie rei. Kada se, meutim radi o vezivanju digitalnih modula u udaljenoj asiji na raspolaganju su dve mogunosti. I kod njih je mogue realizovati direktnu vezu (Sl. 2-16), to se postie na isti nain kao i kod vezivanja lokalnih modula. Pored toga, u cilju tednje broja korienih veza mogue je da se umesto individualne veze izmeu svakog udaljenog modula i kontrolera uspostavi zajednika veza za sve digitalne module u udaljenoj asiji (Sl. 2-17). U tom sluaju komunikacioni modul objedinjava sve podatke u jedan paket koji razmenjuje sa kontrolerom. Ova vrsta veze se specificira izborom opcije Rack-optimized kao formata komunikacije. U tom sluaju pogodno je da se isti format specificira i u adapteru koji se nalazi u udaljenoj asiji. Ukoliko se to ne uradi, odnosno ukoliko se za asiju odabere drugaiji format, kontroler e uspostaviti dve veze (po jednu za svaki format).
SL. 2-17 KOMUNIKACIJA PREKO OPTIMIZIRANE VEZE
1

Taan broj i vrsta konfigurabilnih parametara zavisi od tipa U/I modula

Dig. ulazi Dig. izlazi

KOMUNIKACIJE/27

Korienje zajednike veze ima posebno smisla ako se radi o modulima iji podaci treba da se oitavaju ili auriraju u slinim vremenskim intervalima. U protivnom iako se postie uteda u broju veza, gubi se znaajno vreme na nepotrebnim komunikacijama. Vlasnit vo (Listen only opcija) Svaki modul, lokalni ili udaljeni ima svog "vlasnika" odnosno kontroler koji kreira primarnu konfiguraciju i nadzire komunikaciju. Meutim, kada je modul konfigurisan, onda i kontroler koji nije vlasnik moe da ima mogunost da prati rad tog U/I modula. Ovaj nain rada se ostvaruje kada se u okviru komunikacionog formata izabere opcija Listen Only xxxx1. Potrebno je da se istakne da postoji sutinska razlika pri specifikaciji ulaznih i izlaznih modula sa Listen Only opcijom. Ulazni moduli Kada je modul konfigurisan i uspostavljen njegov prvi vlasnik, mogue je dodeliti vlasnitvo nad tim modulom jo nekim kontrolerima uz uslov da oni imaju identine konfiguracione parametre i komunikacione formate kao i originalni vlasnik. Svi vlasnici e nastaviti da primaju podatke sa tog modula i kada originalni vlasnik prekine vezu sa njim. Izlazni moduli Dozvoljena je specifikacija samo jednog vlasnika. (Ukoliko se pokua dodeljivanje jo jednog vlasnitva, prijavljuje se greka.) Format komunikacije sa inf ormacijom o prenosu Tri opcije u okviru formata komunikacije omoguavaju da se dobiju dodatne informacije o podacima i dijagnostici prenosa. Sve opcije podrazumevaju direktnu vezu. Pri tome one vae i za module nad kojima kontroler ima vlasnitvo i za module koji se konfiguriu kao Listen Only. CST Time Stamped ova opcija obezbeuje da se ulazni ili izlazni podaci alju zajedno sa vrednou sistemskog asovnika iz lokalne asije. Ukoliko se radi o digitalnom uzlaznom modulu ovo vreme ukazuje na trenutak u kome je dolo do promene podatka. Kod digitalnih izlaznih modula, opcija CST time stamped fuse data omoguava da se uz podatke dobije i vreme u kome je dolo do pregorevanja ili resetovanja osiguraa. Full diagnostic data ova opcija obezbeuje da se pored vrednosti sistemskog asovnika dobiju i dijagnostiki podaci o samom prenosu. Scheduled data ova opcija je na raspolaganju samo kod digitalnih izlaznih modula. Ona obezbeuje slanje podatka sa modula zajedno sa vremenom u kome se oni alju.

2.3.2.

SPECIFIKACIJA VREMENA U KOME SE RAZMENJUJU PODACI SA U/I MODULIMA

U principu prenos podataka izmeu kontrolera i U/I modula se obavlja ili periodino ili kada se detektuje promena podataka. Vreme prenosa definie se postavljanjem odgovarajuih parametara. RPI (Requested packet inter val) period vremena ciklinog skeniranja podataka sa U/I modula (zadaje se u ms u SL. 2-18 SPECIFIKACIJA RPI INTERVALA opsegu od 0.2 do 750ms)2. Ovaj parametar ujedno odreuje i period sa kojim se podaci iz udaljenih U/I modula prenose preko mree, odnosno period sa kojim kontroler prima podatke sa ulaznih modula. RPI interval se specificira u okviru menija za konfiguraciju modula (Sl. 2-18).

1 2

xxxx zamenjuje jednu od opcija pri definisanju komunikacionog formata za direktnu vezu modula. Ukoliko se komunikacija obavlja preko ControlNet-a, u nizu podataka se rezervie jedan slot koji odgovara RPI intervalu, ime se obezbeuje zahtevana uestanost skeniranja

KOMUNIKACIJE/28

COS (Change of state) opcija koja postoji samo kod nekih modula i omoguava da se prenos uslovi promenom stanja na digitalnim U/I takama. Mogue je odabrati da li se eli detekcija promene sa 0 na 1, sa 1 na nula, ili svake promenu stanja. Kada se detektuje zahtevana promena stanja digitalni U/I obavljaju prenos podataka. Ukoliko se COS indikator ne postavi unutar vremena trajanja jednog RPI intervala, podaci e SL. 2-19 SPECIFIKACIJA COS-A biti preneti u skladu sa definisanom RPI periodom. Potrebno je istai da se ova opcija zapravo odnosi samo na module koji se nalaze u istoj asiji kao i kontroler. Naime, ako se radi o udaljenom modulu, on e emitovati podatke unutar udaljene asije u skladu sa COS parametrima, ali e se prenos ovih podataka preko mree ostvariti u skladu sa RPI intervalom. Specifikacija digitalnih taaka na modulu za koje se eli detekcija promene stanja vri se u okviru menija za konfiguraciju modula (Sl. 2-19). Kod digitalnih ulaznih modula se istovremeno specificira i vreme u okviru koga se oekuje da se promenjeni signal stabilizuje (Filter Time).

SL. 2-20 MENI ZA SPECIFIKACIJU PARAMETARA ANLOGNOG MODULA

RTS (Real time sample t ime) period odabiranja analognih ulaznih kanala. Nakon odabiranja prikupljeni podaci se sa analognog modula prenose u kontroler. Ovaj parametar se moe specificirati samo za analogne module koji se nalaze u lokalnoj asiji, pod uslovom da imaju tu opciju. Ukoliko modul nema RTS opciju, period odabiranja je specificiran RPI intervalom. Kada modul ima i RTS i RPI opciju onda se pomou RTS-a definie period odabiranja, a pomou RPI intervala period slanja podataka. To znai da e se u sluaju da je RPI period manji od RTS-a isti neizmenjeni podaci prenositi vie puta. Pri tome, nezavisno od odnosa ova dva perioda, svaki put kada nastupi RTS period, vri se prenos

KOMUNIKACIJE/29

podataka i asovnik koji meri RPI se resetuje. RTS interval se definie u okviru menija pri konfiguraciji analognog ulaznog modula. Potrebno je da se istakne da za konfiguraciju analognih ulaznih i izlaznih modula postoji jo itav niz opcija koje se odnose na nain vezivanja analognih ulaza, kalibraciju, pretvaranje u inenjerske jedinice, nivo alarma itd. Svaki modul ima svoje specifinosti koje je potrebno prouiti pre vezivanja u kontroler. Specifikacija opcija vri se u okviru menija koji je na raspolaganju pri izboru analognog modula (Sl. 2-20).

2.3.3.

OBEZBEIVANJE KONZISTENTNOSTI PODATAKA

Potrebno je da se obrati panja na injenicu da su prenosi podataka zahtevani RPI periodom i COS indikatorom asinhroni u odnosu na standardni programski sken ciklus, to znai da moe doi do promene podataka u toku izvravanja programske naredbe. Naime podaci koje koriste programske naredbe nalaze se u RAM memoriji iz koje ih preuzima Logix CPU. Ulazni podaci se smetaju u RAM memoriju preko ulaznog bafera koji se puni od strane Backplane CPU koji upravlja radom ulaznih modula. Budui da operacija prenoenja podataka iz bafera u RAM traje izvesno vreme lako je mogue da programska naredba koja koristi ulazne podatke zapravo operie sa meavinom starih i novih podataka, kao to je to ilustrovano na Sl. 2-21.

SL. 2-21 ILUSTRACIJA NEKONZISTENTNOSTI OBRAIVANIH PODATAKA

Ukoliko se eli spreiti nastanak nekonzistentnih podataka potrebno je obezbediti bafer za podatke. Ovo se moe izvriti korienjem CPS (Synchronous copy file) naredbe kojom se podaci prebaciti u jedan bafer na koji se onda poziva naredba za koju se eli obezbediti konzistentnost podataka. CPS naredba igra ulogu internog semafora koji blokira pristup podacima dok ih jedan od dva CPU-a koristi. Istovremeno ona spreava prekid od strane Backplane CPU-a sve dok traje kopiranje podataka.

2.3.4.

ZATITA MODULA (ELECTRONIC KEYING)

U toku konfiguracije modula definie se i redni broj slota u koji se taj modul postavlja. U cilju zatite modula od pogreno definisanja slota mogue je, izborom odgovarajue opcije, odrediti u kojoj meri je neophodno da se poklopi stvarna konfiguracija slota sa deklarisanom da bi se omoguila komunikacija procesora sa modulom koji se nalazi u slotu. Exact match zahteva potpuno slaganje tipa modula, katalokog broja, proizvoaa i brojeva osnovne i dodatne revizije Compat ible keying zahteva slaganje svih podataka izuzev broja dodatne revizije Disable keying - ne porede se informacije o konfigurisanom i postavljenom modulu.

2.3.5.

VREME AURIRANJA I PRENOSA PODATAKA

Prenos podataka koje generie kontroler, ulazni modul ili komunikacioni modul vri se asinhrono u odnosu na izvravanje samog programa. Pri tome, moduli koji su na raspolaganju za CompactLogix kontrolere imaju samo RPI opciju koja odreuje vreme prenosa. Otuda blok dijagram algoritma kojim se odreuje vreme prenosa ima izgled kao

KOMUNIKACIJE/30

na Sl. 2-22. Moduli koji se mogu vezivati na ControlLogix kontroler, po pravilu, imaju i COS, odnosno RTS opciju, te je i algoritam odreivanja vremena prenosa neto sloeniji (Sl. 2-23).

SL. 2-22 DIJAGRAM REALIZACIJE PRENOSA PODATAKA KOD COMPACTLOGIX KONTROLERA

SL. 2-23 DIJAGRAM REALIZACIJE PRENOSA PODATAKA KOD CONTROLLOGIX KONTROLERA

KOMUNIKACIJE/31

2.4. PROIZVEDENI I PRIMLJENI TAGOVI

SL. 2-24 PRENOS PROIZVEDENOG TAGA

Proizvedeni i primljeni tagovi (produced/consumed tags) obuhvataju podatke koje teorijski moe da koristi ceo sistem (Sl. 2-24). U osnovi ove vrste komunikacija lei injenica da veoma esto vie kontrolera treba da preuzme isti podatak iz jednog kontrolera. Samo se po sebi razume da se ova razmena moe obaviti i tako to bi svaki od tih kontrolera obavio zasebnu komunikaciju sa kontrolerom koji ima traeni podatak. Meutim, izvesno je da je komunikacija daleko efikasnija ako kontroler emituje taj podatak preko mree sa koje ga preuzmu svi kontroleri kojima je potreban.

SL. 2-25 MENI ZA SPECIFIKACIJU


PROIZVEDENOG TAGA

SL. 2-26 MENI ZA SPECIFIKACIJU


PRIMLJENOG TAGA

Potrebno je istai da kontroleri mogu razmenjivati ovu vrstu tagova samo u okviru jedne iste mree, to znai da se oni ne mogu prenositi preko bridge-a. Kod prenosa preko ControlNet mree ova komunikacija se svrstava u kategoriju scheduled tasks. Proizvedeni tag je neki podatak ija vrednost se menja programski u jednom kontroleru i prenosi drugim kontrolerima za koje je on definisan kao primljeni tag. Ovaj tag se mora definisati kao globalni tag (Sl. 2-25). Pri specifikaciji taga definie se tip podatka (DINT, REAL, polje ili korisniki definisani tag), kao i maksimalni broj ureaja koji e primiti ovaj tag (opcija Connection). Primljeni tag se specificira u okviru kontrolera u kome se eli primanje podatka koji je u nekom drugom kontroleru definisan kao proizvedeni tag (Sl. 2-26). Pri specificiranju ovog taga u svakom kontroleru se mora definisati i RPI interval sa kojim se vri prijem ovog podatka. Ovaj interval zapravo odreuje trenutke vremena u kojima e kontroler koji proizvodi tag otvoriti vezu sa kontrolerom koji ga prima i izvriti prenos podatka. Budui da

KOMUNIKACIJE/32

se za svaki kontroler prijemnik posebno definie primljeni tag i njemu pripadajui RPI interval, oigledno je da svaki od njih moe primati ovaj podatak u razliitim periodima vremena. RPI interval se specificira pomou opcije Connection (Sl. 2-27) Uprkos tome to se radi o zajednikoj komunikaciji svaki od ovih tagova zahteva uspostavljanje posebne veze u okviru EtherNet ili ControlNet mree. Kontroler koji proizvodi tag koristi jednu vezu za proizvedeni tag i po jednu vezu za svaki kontroler koji prima tag. Komunikacioni ureaj tog kontrolera koristi SL. 2-27 SPECIFIKACIJA PERIODA PRENOSA po jednu vezu za svaki ureaj koji prima tag. Samo se po sebi razume da se sa poveanjem broja kontrolera koji mogu da prime tag smanjuje broj raspoloivih veza u kontroleru koji proizvodi tag i u njegovom komunikacionom ureaju. Primljeni tag zahteva jednu vezu u kontroleru koji tag prima i jednu vezu na odgovarajuem komunikacionom ureaju. Ukoliko jedan kontroler treba da primi vie tagova od nekog drugog kontrolera onda je pogodno da se svi ti tagovi grupiu kao jedan tag ime se smanjuje broj potrebnih veza.

2.5. PRENOS PORUKA (MESSAGE)


Asinhroni prenos podataka izmeu dva ureaja obavlja se pomou message naredbi. Naime, ove naredbe se izvravaju programski, to znai da nema automatskog periodinog prenosa podataka. Za razliite vrste ureaja koriste se razliiti tipovi message naredbi. Pri tome se u okviru jedne message naredbe moe adresirati vie razliitih ureaja koji primaju podatke1. U pogledu realizacije prenosa podataka postoje dve vrste ovih naredbi: povezane i nepovezane (Sl. 2-28). Povezana msg naredba je naredba koja koristi vezu u kontroleru. Pri tome se, nezavisno od broja ureaja koji se u naredbi nalaze kao odredini ureaji, koristi samo jedna veza. To znai da je za minimizaciju potrebnih veza poeljno da se to vie ureaja navede u read ili write msg naredbi. Specifikacija odredinih ureaja moe se menjati i programski.
Baferi za nepovezane poruke MSG naredba Ulazni 3 Izlazni 10 - 40 Communication handler Veze kontrolera Podaci (iznose se iz ili se unose u kontroler) Nekeirane povezane poruke Otvaranje/zatvaranje veze

Nepovezane poruke

250 bafera za veze

Baferi za keirane poruke (32 MSG ili BT)

Keirane povezane poruke

SL. 2-28 OBRADA MESSAGE NAREDBI


1

Ove naredbe e kasnije biti detaljno razmatrane

KOMUNIKACIJE/33

Po zavretku prenosa ova veza se moe zatvoriti ili ostati otvorena (cashed). Ova opcija se definie prilikom formiranja naredbe. Izvesno je da je za uestale poruke efikasnije da se odabere da veza ostane otvorena. Povezane msg naredbe se mogu koristiti za CIP data table read/write, CIP generic, Block-transfer read/write msg naredbe kao i za msg naredbe za komunikaciju sa PLC-2-5 i SLC kontrolera preko DH+ mree. Nepovezana msg naredba je naredba koja ne koristi vezu kontrolera. Za komunikaciju sa kontrolerima PLC 2-5 i SLC mogu se koristiti iskljuivo ove naredbe. Podaci nepovezane msg naredbe se smetaju u ulazne ili izlazne bafere u kojima ostaju sve dok se prenos ne obavi.

2.6.

BROJ USPOSTAVLJENIH VEZA

Broj ukupnih veza koji e se koristiti u jednom kontroleru zavisi od vrste kontrolera, vrste modula koji se u njemu nalaze i osobina mree koja se uspostavlja. Maksimalni dozvoljeni broj veza koji se moe realizovati u jednom ureaju dat je u tabeli T. 2-1. Pri odreivanju broja upotrebljenih veza za formirani projekat treba voditi rauna o modulima koji se nalaze u lokalnoj asiji, kao i o modulima u udaljenim asijama. Pregled broja korienih veza pri korienju razliitih modula dat je u tabeli T. 2-2.
CONTROLLOGIX 1756 KONTROLER OD VEZA KONTROLERA MOE SE KORISTITI ZA 250 COMPACTLOGIX 1769 100 COMPACTLOGIX 1768 100
KEIRANE PORUKE

FLEXLOGIX 100

SOFTLOGIX 250

32

PRIJEMNI BAFERI ZA NEPOVEZANE PORUKE 3 PREDAJNI BAFERI ZA NEPOVEZANE PORUKE 10 (POVEAVA SE DO 40) ETHERNET KOMUNIKACIONI MODULI, ADAPTERI ILI UGRAENI PORT

ENBT, EN2T EWEB

128 CIP 64 TCP/IP

32 CIP 32 TCP/IP

32 CIP 64 TCP/IP

32 CIP 64 TCP/IP

128 CIP

CONTROLNET KOMUNIKACIONI MODULI, BRIDGE ILI UGRAENI PORT CN2(R) BRIDGE CNBT(R) 100 CIP 64 CIP 32 CIP 32 CIP 32 CIP 128 CIP

T. 2-1 DOZVOLJENI BROJ VEZA ZA POJEDINE UREAJE

Lokalni moduli, u principu, koriste po jednu direktnu vezu. Budui da CompactLogix i FlexLogix kontroleri imaju ogranien broj lokalnih modula, za njih nije potrebno da se posebno izraunava broj uspostavljenih veza. Za razliku od toga ControlLogix i SoftLogix kontroleri mogu sa ukupnim brojem povezanih modula da prekorae maksimalni dozvoljen broj veza. Otuda je za njih neophodno da se pri konfigurisanju kontrolera utvrdi i broj korienih veza.
LOKALNE VEZE

BROJ
VEZA

LOKALNI U/I MODUL (DIREKTNA VEZA) ETHERNET KOMUNIKACIONI MODUL CONTROLNET KOMUNIKACIONI MODUL DEVICENET KOMUNIKACIONI MODUL DHRIO KOMUNIKACIONI MODUL MOTION SERVO MODUL

1 0 0 2 1 3

KOMUNIKACIJE/34

PRISTUP RSLOGIX SOFTVER-A KONTROLERU


UDALJENE VEZE

1 0 1 1 1 0 1 1 1 1 1

UDALJENI ETHERNET ILI CONTROLNET KONFIGURISAN KAO DIRECT UDALJENI ETHERNET ILI CONTROLNET KONFIGURISAN KAO RACK OPTIMIZED UDALJENI U/I MODUL NA ETHERNET ILI CONTROLNET MREI KONFIGURISAN KAO DIRECT DRUGI UDALJENI KOMUNIKACIONI ADAPTER UDALJENI UREAJ NA DEVICENET MREI PROIZVEDENI TAG
ZA SVAKOG KORISNIKA PO

PRIMLJENI TAG POVEZANE PORUKE BLOK TRANSFER PORUKE T. 2-2 KORIENJE VEZA PRI KOMUNIKACIJI

U pogledu udaljenih modula broj i vrsta veza zavise od tipa modula. U principu, svi udaljeni U/I moduli konfigurisani sa direktnom vezom koriste po 1 vezu. Udaljeni U/I komunikacioni moduli, po pravilu, ne koriste vezu, ako su U/I u udaljenoj asiji specificirani sa direktnom vezom. Meutim, oni koriste po jednu vezu, ako su U/I specificirani kao "Rack optimized".
PR. 2-6 Posmatrajmo mreu kontrolera koja je prikazana na Sl. 2-29. Da bi se odredio potreban broj veza za 1756 ControlLogix kontroler potrebno je uoiti da on obavlja sledee aktivnosti koje zahtevaju komunikaciju preko veze Upravlja radom lokalnih U/I u istoj asiji. Upravlja radom udaljenih U/I modula preko DeviceNet mree. Razmenjuje povezane poruke (2 msg naredbe) sa CompactLogix kontrolerom preko Ethernet/IP mree. Proizvodi jedan tag koji kontroler 1794 FlexLogix moe da primi. Programira se preko radne stanice pomou RSLogix 5000 softvera. Potreban broj veza koji je neophodno da se uspostavi u skladu sa ovim aktivnostima dat je u tabeli T. 2-3. SL. 2-29 SPREGA CONTROLLOGIX KONTROLERA BROJ VEZA PO BROJ UKUPNO TIP VEZE UREAJU UREAJA/NAREDBI KONTROLER SA LOKALNIM U/I UREAJIMA 1 4 4 KONTROLER SA DBN MODULOM (UDALJENI U/I) 1 2 2 KONTROLER SA EBNT MODULOM 0 1 0 MESSAGE NAREDBE ZA COMPACTLOGIX 1 2 2 PROIZVEDENI TAG 1 1 1 PRIMLJEN TAG OD STRANE FLEXLOGIC 1 1 1 KONTROLER SA RSLOGIX 5000 SOFTVEROM 1 1 1 UKUPAN BROJ VEZA ZA CONTROLLOGIX KONTROLER 11 T. 2-3 POTREBAN BROJ VEZA ZA CONTROLLOGIX KONTROLER

PROJEKAT/35

3. Formiranje projekta
3.1. STRUKTURA PROJEKTA
Jedan projekat moe da se sastoji iz odreenog broja zadataka1. Zadatak odreuje prioritet i vreme izvravanja programa koji se nalaze u okviru njega. Struktura projekta prikazana je na Sl. 3-1.

SL. 3-1 STRUKURA PROJEKTA

Svaki zadatak se sastoji iz niza programa i/ili faza opreme. Program se sastoji od niza rutina (programskih celina) koje sadre izvrni programski kod. Jedna od ovih rutina se mora specificirati kao glavna rutina (main routine) ijim izvravanjem otpoinje rad programa. Preostale rutine pozivaju se na izvravanje u okviru koda glavne rutine. (U izvesnom smislu sve rutine izuzev glavne se mogu posmatrati kao ekvivalentne potprogramima za PLC ili SLC kontroler). Pored toga, jedna od definisanih rutina se moe specificirati kao rutina koja e obraivati sve greke koje nastanu pri izvravanju programa (Fault routine).
1

Dozvoljeno je ukupno 32 zadatka za kontrolere tipa CompactLogix i SoftLogix5800; i 8 zadataka za preostale tipove kontrolera.

PROJEKAT/36

Faza opreme je takoe programska celina koja definie model stanja opreme. U okviru ovog programa definiu se rutine koje realizuju pojedina stanja, kao to su: putanje u rad, rad, ekanje, zaustavljanje itd. Svaka rutina sadri uslov pod kojim se iz nje izlazi, kao i poziv za sledeu rutinu koja se izvrava. Na taj nain je omogueno programsko razdvajanje procedura kojima se specificira kako se pravi neki proizvod (receptura) od procedura upravljanja opremom u toku izrade proizvoda. Svaki program ima svoje tagove (Local tags) koji se mogu kreirati i koristiti samo u rutinama koje se nalaze u programu. Time je omogueno da vie promenljivih koje se nalaze u razliitim programima, a odnose se na istu vrstu signala imaju ista imena . Specifikacija projekta zapoinje izborom kontrolera. Pri tome se automatski generie jedan zadatak (Main Task), dok se korisniku ostavlja mogunost da, po potrebi, definie i druge zadatke (Sl. 3-2). U glavnom zadatku se odmah generie i jedan program (Main program), kao i glavna rutina. Istovremeno se kreiraju i potencijalni zadaci za obraivanje greaka koje nastaju u toku rada (Controller Fault Handler), kao i procedura putanja u rad nakon gubitka napajanja (Power-up Handler). Samo se po sebi razume da se, ukoliko se eli aktivacija ovih zadataka, u okviru njih moraju kreirati SL. 3-2 MENI PROJEKTA NAKON odgovarajui programi. SPECIFIKACIJE KONTROLERA Procedura definisanja zadataka, programa i rutina, kao i specifikacije glavne rutine i rutine koja prati greke u jednom programu ilustrovana je na Sl. 3-3.

SL. 3-3 ILUSTRACIJA POSTUPKA DEFINISANJA ZADATAKA, PROGRAMA I RUTINA

Prilikom definisanja novog programa, pored imena i opisa treba precizirati i uz koji zadatak se on izvrava (Sheduled in:). Svi programi koji su pridrueni jednom zadatku se

PROJEKAT/37

tretiraju kao rasporeeni (scheduled)1. Oni se izvravaju kada se zadatak aktivira. Ukoliko se oekuje da e u nekom trenutku biti potreban jo neki program, on moe da se napie i pridrui nerasporeenim programima (Unscheduled Programes/Phases). Ovakvi programi se nee izvravati dok se ne pridrue nekom zadatku. Da bi se neki program izbrisao neophodno je da se premesti meu nerasporeene programe.

3.2.

ZADACI

3.2.1.

TIPOVI ZADATAKA

Logix5000 kontroleri podravaju tri tipa zadataka Kont inualni zadat ak Zadatak koji se generie automatski kada se otvori projekat. U principu ovaj zadatak je identian programu koji se izvrava u klasinim malim PLC-ovima. im ovaj zadatak izvri sve operacije, odnosno ime se zavre svi programi u njemu (jedan programski sken ciklus), on poinje da se odvija iz poetka. Kod Logix multitasking maina programi u kontinualnom zadatku se izvravaju u pozadini u svim trenucima u kojima procesor SL. 3-4 PROZOR ZA KONFIGURACIJU GLAVNOG ZADATAKA nije zauzet izvravanjem drugih zadataka, obavljanjem komunikacije, kontrolom kretanja ili drugih aktivnosti. Novije verzije ovih kontrolera (poev od verzije 16) nameu obavezno izvravanje kontinualnog zadatka u trajanju od 1 ms. Na taj nain se smanjuje potreba za promenom alokacije resursa ime se oni efikasnije koriste. Pored toga, specifikacijom vremena u opciji watchdog korisnik definie maksimalno vreme (u ms) za koje jedan ciklus kontinulanog zadatka treba da se izvri. Ukoliko se ovo vreme prekorai kontroler prijavljuje greku. Samo jedan zadatak u projektu moe biti kontinualni. Pri tome, projekat ne mora da ima kontinualni zadatak. U tom smislu, se automatski kreiran kontinualni zadatak moe redefinisati u neki drugi tip (Sl. 3-4). Periodi ni zadatak izvravanje ovog zadatka otpoinje svaki put kada istekne zadani period vremena. Tada on prekida sve zadatke manjeg prioriteta, izvrava se u celini i potom vraa upravljanje izvravanjem u taki u kojoj je ono bilo prekinuto. Ovaj zadatak odgovora Selectable Timed Interrupts kod standardnih, malih PLC-ova. Perioda ponavljanja se moe specificirati
SL. 3-5 PROZOR ZA KONFIGURACIJU PERIODINOG ZADATAKA ControlLogix kontroleri podravaju do 100 rasporeenih programa, dok CompactLogix kontroleri podravaju do 32 rasporeena programa.
1

PROJEKAT/38

u opsegu od 0.1ms do 2000s1. Pri konfiguraciji zadatka ujedno se odreuje i njegov prioritet, kao i maksimalno vreme jednog izvravanja - watchdog (Sl. 3-5). Doga ajem uslovljen zadatak izvravanje ovog zadatka otpoinje sa nastankom nekog dogaaja, kao to je promena ulaznog digitalnog signala, novi odbirak analognog ulaznog signala, primljeni tag, neke operacije kretanja ili event naredba2. Po registrovanju nastanka dogaaja, zadatak prekida izvoenje svih zadataka manjih prioriteta, izvrava se jedanput u celini, i vraa upravljanje izvravanjem projekta na mesto gde je ono prekinuto. Samo se po sebi razume da svaki ovakav zadatak mora imati specifian dogaaj koji ga poziva na izvravanje. O konfiguraciji ovog zadatka bie kasnije vie rei.

3.2.2.

NIVOI PRIORITETA

Svi zadaci, izuzev kontinualnog, izvravaju se u skladu sa nivoom prioriteta koji im je dodeljen. Svi Logix5000 CPU nivo priroteta n+2 kontroleri podravaju do 15 nivoa prioriteta, izuzev kontrolera tipa 1 nivo priroiteta n+1 Redovi SoftLogix5800 koji podrava samo ekanja 3 3 nivoa. Prioriteti se oznaavaju aktivnih zadataka brojevima od 1 do 15 i to tako da nivo prioriteta n Prazan manji broj oznaava vii prioritet. U principu, zadatak koji treba da se izvrava zato to je posle isteka dolo vreme njegovog periodinog posle zavretka 2 vremena zadatka 2 izvoenja, ili zato to je registrovan dogaaj kojim je on Neaktivni zadaci uslovljen prelazi u aktivno stanje. Svi aktivni zadaci nalaze se u redovima ekanja koji se formiraju na svakom nivou prioriteta. U SL. 3-6 IZVRAVANJE ZADATAKA PO NIVOIMA PRIORITETA jednom trenutku samo red najvieg prioriteta ima pristup procesoru. To znai da zadaci vieg prioriteta prekidaju izvoenje zadataka nieg prioriteta, odnosno da red ekanja aktivnih zadataka ne moe da pone da se prazni sve dok redovi ekanja zadataka na nivoima viim od njega nisu u potpunosti ispranjeni. Aktivni zadaci koji su istog prioriteta, odnosno koji se nalaze u istom redu ekanja, izvravaju se po round robin principu i to tako to se svakome od njih dodeljuje procesor u vremenskom trajanju (time slice) od 1ms (Sl. 3-6). Pored navedenih pravila o tretiranju prioriteta, pri izvravanju zadataka potrebno je da se vodi rauna i o sledeim posebnima zadacima. Mot ion planner prekida sve druge zadatke nezavisno do njihovog prioriteta. Broj osa i period auriranja za celu grupu odreuje koliko esto se ovaj zadatak izvrava i koliko dugo traje. Zadatak za obr adu U/I podataka - CompactLogix, FlexLogix i DriveLogix kontroleri koriste poseban periodini zadatak u cilju obrade U/I podataka. Ovaj zadatak se izvrava na nivou prioriteta 7. On se ne prikazuje meu definisanim zadacima kontrolera i ne rauna u ukupan broj zadataka koji kontroler moe da podri. Period izvravanja zadatka odreen je najmanjim RPI intervalom koji je definisan u sistemu. Trajanje zadatka odreeno je vremenom potrebnim da se skeniraju svi konfigurisani U/I moduli. Zadatak za pr ikupljanje podat aka za trendove sve promene podataka koji se prenose u radnu stanicu u cilju praenja trendova se smetaju u bafer zajedno sa podatkom o vremenu nastanka promene. Ovi podaci se prenose u radnu stanicu u
1 2

Izvoenje ovog zadatka zavisi od tipa kontrolera i od logike koja je u njemu implementirana Vrsta dogaaja za koji se vezuje izvravanje zadatka zavisi od tipa kontrolera

PROJEKAT/39

regularnim vremenskim intervalima. S obzirom na zahtevanu tanost u prenosu ovaj zadatak radi na nivou prioriteta koji je vii od svih korisnikih zadataka.

3.2.3.

SISTEMSKI OVERHEAD

Sistemski overhead je vreme koje kontroler troi za nerasporeene (unscheduled) komunikacije, odnosno one koje nisu posebno konfigurisane definisanjem odgovarajuih veza U/I modula. Ovoj vrsti komunikacija pripadaju msg naredbe, komunikacija sa operaterom i radnim stanicama, kao i serijska komunikacija poruka i naredbi. Period obavljanja ovih komunikacija (system overhead time slice) specificira se odreivanjem procenta vremena koje kontroler posveuje ovom poslu, ne uraunavajui vreme za periodine zadatke i zadatke uslovljene dogaajem. Nespecificirane komunikacije imaju najnii nivo prioriteta i mogu prekinuti samo kontinualni zadatak. U jednom trenutku one mogu trajati najvie 1ms, posle ega se nastavlja izvoenje kontinualnog zadatka. To znai da period od n% odreuje procenat koji 1ms predstavlja u ukupnom vremenu trajanja kontinualnog zadatka do prekida od strane nerasporeenih komunikacija i trajanju nerasporeenih komunikacija. Ako se vreme trajanja kontinualnog zadatka do prekida od strane komunikacija oznai sa tz tada se ono moe izraunati prema relaciji 100 tz = 1 n Poveanjem overhead vremena poveava se broj tagova koji se moe preneti u jedinici vremena, ali se istovremeno poveava i vreme skeniranja kontinualnog taska. U sluaju veeg broja taskova izvravanje kontinualnog zadatka moe da traje isuvie dugo, pri emu se znatan deo vremena troi na realociranje resursa. Pored toga, ukoliko se u sistemu zahteva veoma mnogo komunikacija onda e se mnogo vremena utroiti na realokaciju resursa izmeu nerasporeenih komunikacija, kontinualnog zadatka i ostalih zadataka. U takvim aplikacijama moe biti pogodnije da se umesto kontinualnog zadatka koristi periodini zadatak. Konano, napomenimo da ukoliko u trenutku nastupanja overhead prekida nema nerasporeenih komunikacija, kontinualni zadatak e nastaviti svoj rad.
PR. 3-1
ZADATAK MP - MOTION PLANNER Z1 - ZADATAK 1 USLOVLJEN DOGAAJEM Z2 - ZADATAK 2 - PERIODIAN UI - U/I ZADATAK CM - SYSTEM OVERHEAD KN - KONTINUALNI ZADATAK PRIORITET 1 2 7 PERIOD 8 ms 12 ms 5 ms 20% TRAJANJE 1MS 1 MS 2 MS 1 MS 1 MS 20 MS

T. 3-1 PARAMETRI DEFINISANIH ZADATAKA Pretpostavimo da zadaci specificirani za CompactLogix kontroler imaju parametre koji su prikazani u T. 3-1. S obzirom na definisani procenat nerasporeenih komunikacija od 20%, sledi da se kontinualni zadatak prekida posle svakih 4ms trajanja, posle ega sledi 1ms nerasporeenih komunikacija. Uz pretpostavku da dogaaj kojim je uslovljen zadatak Z1 nastupa u 24. i 45. ms, vremenski dijagram izvravanja ovih zadataka imae izgled kao na Sl. 3-7.

PROJEKAT/40

M P

Motion planner T=8ms

M P

M P

M P

M P

M P

M P

Z1- prioritet 1 event 1ms

Z Z 1 1 S

Z 1

Z2 - prioritet 2 T=12ms ms

Z Z 2 2

Z Z Z Z 2 2 2 2 S S

Z Z 2 2

Z Z Z 2 2 2 S

U U I I S

U I

U I

U I

U I

U U U U I I I I S S S

U I

U I

U U I I S

U U I I S

U U I I S

Nerasporeena Komunikacija overhead 20%

C M

C M

C C C C C MMMM M S S S S

C M

C M

K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S 0 5 Zadatak se izvrava 10 15 20 25 30 35 40 45 50 55

Zadatak je aktivan, ali je u redu ekanja (suspendovan)

UI - prioritet 7 (CompactLogix, FlexLogix, DriveLogix) T odreen min RPI (5ms) ms

KN - Kontinualni zadatak ponovo otpoinje

SL. 3-7 VREMENSKI DIJAGRAM IZVRAVANJA ZADATAKA PR. 3-2 Pretpostavimo da izvravanje kontinualnog zadatka traje 40ms. Ukoliko se specificira 10% overhead-a, to znai da se kontinualni zadatak prekida posle svakih 9ms, posle ega sledi 1ms za nerasporeene komunikacije (Sl. 3-8). Na taj nain kontinualni zadatak e se izvriti za priblino 44ms. U intervalu od 60ms bie ukupno 6ms za nerasporeene komunikacije. Ako se overhead povea na 25%, kontinualni zadatak se prekida na svake 3 ms, pa e biti zavren za priblino 53ms, dok e u intervalu od 60ms biti ukupno 15ms za nerasporeene komunikacije. Meutim, ako se umesto kontinualnog zadatka definie periodini, sa periodom od 60ms, onda e preostati 20ms za nerasporeene komunikacije.
Kontinualni zadatak ponovo otpoinje 10% overhead 6ms od 60ms za nerasporeene komunikacije Kont Kont Kont Kont Kont Kont Kont Kont

25% overhead 15ms od 60ms za nerasporeene komunikacije Periodini zadatak (T=60ms) 20ms od 60ms za nerasporeene komunikacije 0 10

Periodian
Nerasporeene komunikacije

Periodian

20

30

40

50

60

70

80

Potrebno je da se istakne da injenica da periodini zadatak ostavlja najvie vremena za SL. 3-8 VREMENSKI DIJAGRAM RASPOREDA VREMENA ZA ZADATAK I KOMUNIKACIJE nerasporeene komunikacije ne mora nuno da znai da je to i najbolje reenje. Mogue je naime, da ukoliko ima mnogo komunikacija one budu usporene usled ekanja da pojedini moduli obave zahtevane komunikacije. U tom smislu moe biti pogodnije da se komunikacije vremenski razbiju na vie delova ime se daje prilika da pojedini moduli obave zahtevani posao pre nego to zapone sledea komunikacija.

PROJEKAT/41

3.2.4.

PRAENJE I UPRAVLJANJE IZVRAVANJEM ZADATKA

Pored specificiranog naina izvoenja i dodeljenog nivoa prioriteta, postoji jo jedan broj parametara koji omoguavaju upravljanje izvravanjem zadatka, kao i praenje uslova pod kojima se oni izvode. Svi ovi parametri mogu se definisati pomou menija pri konfiguraciji zadatka - Task Properties/Configuration (Sl. 3-9) ili programski. Meni takoe omoguava i direktno praenje uslova (Task Properties/Monitor). Tajmaut doga ajem uslovljenog zadatka U principu, zadatak ije izvravanje je uslovljeno dogaajem izvodi se onda kada nastupi specificirani dogaaj. Budui da se uestanost nastupanja spoljnih dogaaja ne moe predvideti, ostavljena je mogunost korisniku da obezbedi da se zadatak izvri unutar nekog intervala vremena. Ovo se postie definisanjem parametra Execute task if No SL. 3-9 PROZOR ZA SPECIFIKACIJU PARAMETARA ZADATKA Event Occurs Within (Sl. 3-9). Kada vrednost ovog parametra nije nula, posle svakog izvravanja zadatka pokree se interni asovnik. Ukoliko asovnik dostigne vrednost definisanu tajmaut intervalom, pokrenue se izvoenje zadatka i ako dogaaj nije nastupio. Ovaj asovnik se resetuje pri svakom nastupanju dogaaja. Prekrivanje (O ver lap) Fenomen prekrivanja nastaje u situaciji u kojoj se u toku izvravanja jednog zadataka steknu uslovi (istek vremena ili nastanak dogaaja) za njegovo ponovno otpoinjanje. U tom sluaju, zadatak se nee prekinuti, niti e po zavretku izvravanja ponovo otpoeti. To zapravo znai da e nastanak uslova biti ignorisan. Samo se po sebi razume da je potrebno da se izbegne nastanak prekrivanja, to se moe ostvariti produavanjem periode ponavljanja ili skraivanjem zadatka i podizanjem njegovog nivoa prioriteta. Svaki nastanak prekrivanja se registruje od strane kontrolera i moe se proveravati bilo runo pomou prozora za praenje zadatka (Sl. SL. 3-10 PROZOR ZA PRAENJE IZVRAVANJA ZADATKA 3-10) ili programski. Obrada izlaznih veli ina U principu po zavravanju svakog zadatka vri se automatska obrada svih izlaznih modula u sistemu. Izvesno je da ovo nee biti racionalno kod onih zadataka koji koriste manji broj izlaznih modula. U tom sluaju, mogue je, specifikacijom parametra Disable Automatic Output Processing (Sl. 3-9) spreiti automatsku obradu izlaznih modula, i posebno programskom naredbom (IOT) zahtevati obradu samo onih izlaznih modula koji

PROJEKAT/42

su vezani za zadatak. Zabrana izvr avanja zadatka U principu svaki zadatak se izvrava kada se steknu odgovarajui uslovi. Odstupanje od ovog principa moe se postii postavljanjem parametra zabrane izvravanja zadatka Inhibit task (Sl. 3-9). W atchdog Pored broja i vremena potrebnog za izvoenje pojedinih programskih naredbi, na duinu izvoenja jednog zadatka utiu i drugi faktori kao to su ukupan broj zadataka istog ili vieg nivoa prioriteta, vreme potrebno za komunikaciju itd. Samo se po sebi razume, da se u sluaju prekida u komunikaciji ili bilo koje druge greke u sistemu moe dogoditi da se zadatak nikada ne izvri. U cilju pravljenja razlike izmeu dozvoljene ili oekivane duine izvravanja i duine koja ukazuje na greku definie se parametar watchdog interval koji odreuje maksimalnu duinu izvravanja zadatka (Sl. 3-9). Ukoliko interni asovnik (watchdog timer) koji meri vreme od otpoinjanja izvoenja zadatka dostigne zadanu vrednost prijavljuje se greka (Watchdog controller fault). Kontroler prati izvoenje zadataka i sve neophodne informacije smeta u objekte koji su pridrueni pojedinim zadacima ili grekama. Ovim vrednostima se moe pristupiti i programski. Za programsko definisanje parametara koriste se SSV (Set System Value) naredba, dok se za pregled informacija koristi GSV (Get System Value) naredba. U ovim naredbama je potrebno da se specificira ime objekta (Class Name), instance (Instance Name) i atributa (Atribut Name), kao i tag ija se vrednost eli postaviti kao atribut (Source) u SSV naredbi, odnosno tag u koji se eli smestiti oitana vrednost (Dest) u GSV naredbi. Pregled naziva atributa tagova koji se programski postavljaju dat je u tabeli T. 3-2.
OBJEKAT INSTANCA ATRIBUT TIP PROME NLJIVE BIT 4 6 FAULTLOG STATUS DINT 9 10 0 STATUS DINT 1 2 OVERLAPCOUNT TASK IME
ZADATKA

OPIS Minor greka pri izvoenju naredbe Prekrivanje za neki od zadataka Minor greka na serijskom portu Potrebna zamena baterije Izvrena je EVENT naredba kojom je zadatak uslovljen Zadatak se izvrava zbog isteka timeout perioda Prekrivanje za taj zadatak Ukupan broj prekrivanja Period izvravanja periodinog zadatka (s) Timeout period za zadatak uslovljen dogaajem (s) 0 zabrani timeout zadatka 1 dozvoli timeout zadataka 0 obradi izlazni module 1 ne obrauj izlazne module 0 izvoenje zadatka je dozvoljeno 1 izvoenje zadatka nije dozvoljeno

DINT

RATE

DINT

ENABLETIMEOUT DISABLEUPDATE OUTPUTS INHIBITTASK

DINT DINT DINT

T. 3-2 ATRIBUTI (PARAMETRI) KOJIMA SE SPECIFICIRAJU USLOVI IZVRAVANJA ZADATAKA

PROJEKAT/43

3.3. SPECIFIKACIJA USLOVA ZA IZVRAVANJE ZADATKA 3.3.1. SIGNAL SA ULAZNOG MODULA


Signal kojim se uslovljava izvravanje zadatka moe doi sa digitalnog i analognog ulaznog modula. Teorijski ulazni modul kojim se uslovljava izvravanje zadatka moe da se locira bilo gde u sistemu. Meutim, ukoliko se on ne nalazi u lokalnoj asiji, onda vreme otpoinjanja izvravanja zadatka zavisi i od vremena potrebnog da se informacija o dogaaju prenese do kontrolera. U tom sluaju je pogodnije odabrati direktnu vezu, jer se time modul izoluje i omoguava bri prenos podataka. Pogodno je, takoe, i da se ogranii broj lokalnih modula koji uslovljavaju zadatke zato to pri veem broju dogaaja koji pokreu razliite zadatke moe doi do zaguenja u lokalnoj komunikaciji preko zadnje ploe.

SL. 3-11 DEFINISANJE ZADATKA USLOVLJENOG DIGITALNIM ULAZOM

SL. 3-12 SPECIFIKACIJA COS PARAMETRA ZA DIGITALNI MODUL KOJIM JE USLOVLJEN ZADATAK Z1

Ukoliko je signal digitalni, onda se zadatak izvrava svaki put kada se promeni

PROJEKAT/44

stanje na pinu modula za koji je definisan COS parametar. Tako e na primer, zadatak Z1 koji je povezan sa modulom koji se nalazi u slotu 1 (Sl. 3-11) biti izvren svaki put kada se promeni stanje na pinu 0 tog modula (Sl. 3-12). Informaciju o promeni vrednosti signala ulazni modul daje kontroleru preko brojaa iju vrednost alje zajedno sa podacima, a koji se poveava za jedan svaki put kada se podatak promeni. Potrebno je zapaziti da je registrovanje dogaaja vezano za modul a ne za pojedine pinove. To znai da ako se za vie pinova postavi COS parametar onda e svaka promena stanja na nekom od ovih pinova izazvati pokretanje svih zadataka koji su vezani za taj modul. U tom sluaju moe lako doi do prekrivanja. Otuda se preporuuje da se COS parametar postavi na samo jednom pinu modula. Ukoliko je zadatak vezan za analogni modul (Sl. 3-13), tada se on izvrava svaki put kada se zavri skeniranje ulaznih kanala na tom modulu. Potrebno je da se istakne da svi U/I moduli ne podravaju registrovanje dogaaja, da oni moduli koji mogu da se koriste imaju razliita vremena odziva, kao i da razliiti kontroleri imaju razliita vremena prenoenja komunikacija. Pored toga, ukoliko se uslov specificira u udaljenom modulu, neophodno je i da komunikacioni modul podrava generisanje dogaaja.

SL. 3-13 DEFINISANJE ZADATKA USLOVLJENOG ANALOGNIM ULAZ

Konano, ukoliko je ulazni modul udaljen, onda se nezavisno od trenutka promene podatka, on u kontroler prenosi sa RPI intervalom, to znai da se i dogaaj moe generisati samo u tim vremenskim trenucima.
PR. 3-3 Pretpostavimo da se u jednom kontroleru nalazi zadatak uslovljen dogaajem promene signala na ulaznom modulu. Zadatak se aktivira kada se promeni stanje prekidaa koji je vezan za 0 pin ulaznog modula. Za taj pin je definisan COS parametar (Sl. 3-12). Program u okviru zadatka obrauje signal koji prima sa ulaznog modula i u zavisnosti od toga da li je prekida otvoren ili zatvoren formira signal koji treba da se prenese na izlazni modul za koji je vezana sijalica (Sl. 3-14). Zadatak je konfigurisan tako da se ne obavlja automatsko auriranje izlaznih signala, ve se, po zavretku zadatka eljeni izlaz prenosi preko IOT naredbe. U principu za ovako formiran zadatak potrebno je ustanoviti duinu trajanja njegovog izvravanja kako bi se procenilo da li e i pod kojim uslovima doi do prekrivanja. Ukupno vreme potrebno za izvravanje ove aktivnosti moe se izraunati sabiranjem vremena potrebnih za pojedine aktivnosti, kao to je to prikazano u tabeli T. 3-3, za sluaj ukljuivanja prekidaa.

PROJEKAT/45

Ulazni modul 1756-IA16 2.1

Kontroler 1756-L63

Izlazni modul 1756-OB16D

Promena ulaza

Backplane komunikacija Kanjenje usled backplane komunikacije

Backplane komunikacija

Auriranje izlaza

Vreme obrade ulaznog filtra i vreme odziva ulaznog modula

Kanjenje usled backplane komunikacije Kanjenje CPU-a u Vreme odziva detekciji dogaaja i izlaznog modula izvravanje programskog koda Event zadatka

SL. 3-14 DETEKCIJA I PRENOS ULAZNOG PODATKA Aktivnost Period ulaznog filtra (specificiran pri konfiguraciji modula) 1 Vreme odziva ulaznog modula (prelaz On-Off) 2 Maksimalno vreme komunikacije u asiji sa 4 slota (backplane komunikacija) Vreme izvravanja svih programa u zadatku koji je uslovljen ovim dogaajem Maksimalno vreme komunikacije u asiji sa 4 slota (backplane komunikacija) Vreme odziva izlaznog modula (aktivira se sa IOT naredbom) Ukupno vreme (ako nema prekida od strane zadataka vieg prioriteta) Vreme skeniranja svih zadataka vieg prioriteta Maksimalno ukupno vreme Vreme (s) 1000 265 13 400 13 51 1742 1130 2872

T. 3-3 VREME IZVRAVANJA DOGAAJEM USLOVLJENOG ZADATKA (THROUGHPUT)

3.3.2.

PRIMLJENI TAG

SL. 3-15 DEFINISANJE ZADATKA USLOVLJENOG PRIMLJENIM TAGOM


1

Vreme odziva U/I modula zavisi od tipa modula, navodi se uz karakteristike svakog modula; pri tome se po pravilu razlikuju vremena On/Off i Off/On prelaza 2 Vreme zavisi od broja slotova u asiji; daju se minimalno i maksimalno vreme

PROJEKAT/46

Zadatak ije izvoenje se uslovljava prijemom taga koji je proizveden u nekom drugom kontroleru specificira se kao to je to prikazano na Sl. 3-15. U cilju obezbeivanja konzistentnosti podataka zadatak koji je uslovljen proizvedenim tagom nee biti aktiviran sve dok se ne zavri prenos svih podataka koje sadri taj tag.
PR. 3-4 Posmatra se zadatak ZPC definisan u skladu sa Sl. 3-15. Neka je tag kojim je zadatak uslovljen (Primljeni_tag) definisan prema Sl. 3-16 Kao to se vidi proizvedeni tag je jednodimenzionalno polje koje sadri tri celobrojne vrednosti.

SL. 3-16 SPECIFIKACIJA PRIMLJENOG TAGA KOJIM SE USLOVLJAVA ZADATAK ZP Kao to je ve reeno, parametar RPI specificira period sa kojim se eli prijem taga od strane kontrolera koji ga proizvodi (kontroler_2). To znai da se prenos podataka obuhvaenih ovim tagom obavlja periodino na svakih RPI jedinica vremena i to nezavisno od toga da li su oni promenjeni ili ne.

IOT

SL. 3-17 SPECIFIKACIJA PROIZVEDENOG TAGA KOJI PO PRIJEMU AKTIVIRA ZADATAK

PROJEKAT/47

Pretpostavimo, nadalje, da se u zadatku u kontroleru_2 u kome se menja posmatrani tag, u programu, neposredno posle promene taga nalazi IOT naredba, to znai da se prenos podataka inicira odmah po njihovoj promeni, kao to je to prikazano na Sl. 3-17.
IOT
Immediate Output Update Tag Proizvedeni_Tag

Proizvedeni_tag(1) Novi podaci Proizvedeni_tag(2) Proizvedeni_tag(3)

Primljeni_tag(1) Primljeni_tag(2) Primljeni_tag(3)

ZPC zadatak

Kontroler_2

Teri_1

SL. 3-18 ILUSTRACIJA AKTIVACIJE ZADATKA USLOVLJENOG PRIJEMOM TAGA Dalji postupak zavisi od tipa mree preko koje se tag prenosi. Ukoliko se radi o prenosu u okviru lokalnog kontrolera (preko backplane komunikacije) ili EtherNet mrei, IOT naredba e prouzrokovati trenutno generisanje vanrednog RPI impulsa, ime se obezbeuje trenutni prenos podataka. Po njihovom prijemu, kontroler koji prima ovaj tag e aktivirati zadatak ZPC koji je njime uslovljen. Meutim, pri prenosu preko ControlNet mree podatak e biti primljen tek u okviru regularnog RPI perioda, i odmah zatim e zadatak biti aktiviran (Sl. 3-19).
Promena taga Promena taga koji se prenosi Izvoenje IOT naredbe Prenos u lokalu preko zadnje ploe ili EtherNet mreom (generie se poseban RPI)

Prenose se novi podaci (zbog IOT)

RPI impuls Izvravanje zadatka ZPC ZPC

Prenos ControlNet mreom (obavlja se sa RPI periodom)

RPI impuls Izvravanje zadatka ZPC ZPC

Prenose se stari podaci

SL. 3-19 VREMENSKI DIJAGRAM REALIZACIJE ZADATKA USLOVLJENOG PRIMLJENIM TAGOM Pri korienju ovog tipa uslovljavanja zadataka potrebno je voditi rauna i o nainu na koji se definie tag koji se prenosi. Pri njegovoj specifikaciji potrebno je selektovati opciju za IOT naredbu (Send Data State Change Event To Consumer(s) (Sl. 3-19) ime se spreava ponovno prenoenje podatka pri zavretku zadatka. Ukoliko se to ne uini, ovaj tag e biti ponovo prenet (kao izmenjen) na kraju izvoenja svakog zadatka u kome se on aurira. Na taj nain e zadatak u drugom kontroleru koji prima tag biti aktiviran jo jedanput iako se podaci u sutini nisu promenili.

PROJEKAT/48

3.3.3.

EVENT NAREDBA

Zadatak se moe aktivirati i pomou EVENT naredbe u kojoj se navodi ime zadatka koji je za nju vezan. Pri tome je potrebno da se istakne da se ista naredba moe nai na vie mesta u razliitim programima. To znai da se njeno izvoenje moe zahtevati na vie mesta, pa je neophodno da se vodi rauna o eventualnom prekrivanju.

SL. 3-20 DEFINISANJE ZADATKA KOJI SE AKTIVIRA EVENT NAREDBOM

Ukoliko se unutar zadatka nalaze neke promenljive koje je neophodno povremeno aurirati, ak i ako se ne desi oekivani dogaaj, pri specifikaciji zadatka moe se odabrati opcija Execute Task if No Event Occurs Within, u okviru koje se definie granica vremenskog intervala po ijem isteku se zadatak izvrava i ako unutar njega nije registrovan nijedan dogaaj.

PROGRAMIRANJE/49

4. Programiranje kontrolera
4.1.1. UVOD
Za formiranje glavnog programa i potprograma u svim zadacima na raspolaganju je vie programskih jezika. Leder dijagrami namenjeni izvoenju niza, prvenstveno, logikih operacija, kreiranju i slanju poruka, ispitivanju stanja kontrolera u mrei, kao i operacijama koje bi trebalo da izvode operateri u sluaju detektovanja i otklanjanja izvesnih greaka. Dijagrami funkcijskih blokova namenjeni realizaciji kontinualnih procesa, upravljanju drajverima i upravljanju u zatvorenoj sprezi. Struktuiran tekst namenjen realizaciji sloenih matematikih operacija, obradi ASCII nizova i protokola, kao i obradi specijalnih tabela podataka. Dijagrami sekvencijalnih funkcija namenjeni sloenom hijerarhijskom upravljanju niza sekvencijalnih operacija koje se sreu kod upravljanja arnim procesima, nadzora i upravljanja stanjem mainskih grupa, repetitivnom sekvencijalnom upravljanju, upravljanju kretanjem itd. U principu prva tri jezika ukljuuju repertoar naredbi kojima se obavljaju jednostavnije logike i matematike operacije. Ona su namenjena klasinom programiranju upravljanja u zatvorenoj sprezi, sekvencijalnog upravljanja i obradi datoteka podataka. U tom smislu ovi jezici se u velikoj meri mogu alternativno koristiti za realizaciju pojedinih programskih rutina. Svaki od ovih jezika SL. 4-1 IZBOR PROGRAMSKOG JEZIKA ostavlja mogunost korisniku i da sam kreira niz naredbi Add-On-Instructions koje postaju sastavni deo repertoara. Dijagrami sekvencijalnih funkcija namenjeni su, meutim, potpuno drugaijoj filozofiji koncipiranja i programiranja upravljanja i nadzora. Oni omoguavaju da se ceo proces podeli u niz faza. U svakoj od faza se onda, uz pomo klasinih jezika programira niz operacija koje u njoj treba da se izvre. Izbor programskog jezika vri si pri kreiranju novog potprograma (Sl. 4-1). Program se realizuje kada je zadatak kome je on pridruen aktivan. Ako zadatak ima vie programa oni se izvode u redosledu u kome su sloeni u listi programa. Izvravanje programa zapoinje izvoenjem glavne rutine koja preuizima kontrolu nad daljom realizacijom rutina u tom programu. U principu programi se izvode tako to se obavi jedan sken ciklus kroz sve naredbe programa. Zatim se izvoenje prekida i prelazi na sledei program, ili sledei zadatak. Pored toga pri putanju u rad (prelaz kontrolera u RUN stanje) izvodi se jedan sken ciklus svih programa prescan. U presken ciklusu kontroler resetuje sva naredbe kojima se postavlja neko stanje. Pored toga se resetuju i jo neki bitovi u nekim naredbama. Efekat presken ciklusa zavisi od programskog jezika na kome je program napisan (T. 4-1). Presken ciklus ne treba meati sa prvim sken ciklusom. Naime u presken ciklusu se ne izvodi programska logika

PROGRAMIRANJE/50

ve se samo resetuju vrednosti. Pri tome, se ne vri nikakav prenos ulaznih ni izlaznih signala. Dve programske naredbe iniciraju i postscan ciklus u okviru koga se takoe resetuju vrednosti stanja. Postsken ciklus se inicira kada se detektuje izlaz iz jednog koraka sekvencijalnog dijagrama, kao i pri naputanju potprograma.
LEDER DIJAGRAM FUNKCIJSKIH BLOKOVA STRUKTUIRANI TEKST DIJAGRAM SEKVENCIJALNIH FUNKCIJA Kontroler resetuje neretentivne U/I i interne vrednosti Pored resetovanja neretentivnih U/I i internih vrednosti kontroler resetuje EnableIn parametar u svakom bloku Kontroler resetuje tagove tipa bita (BOOL) i postavlja numerike tagove na nulu Ugraeni struktuirani tekst se tretira na isti nain kao i progami napisani u struktuiranom tekst kodu Vrednosti indeksa elemenata polja mogu prouzrokovati greku u radu kontrolera za vreme presken ciklusa. Ukoliko je indeks neke promenljive vei od deklarisane dimenzije polja, kontroler prijavljuje znaajnu greku. Neophodno je povesti rauna da se to ne dogodi, ili formirati deo fault routine koji se stara o ovom problemu.

INDEKSIRANE VELIINE

T. 4-1 EFEKTI PRESKEN CIKLUSA

Konano, treba imati na umu da se podaci prenose asinhrono u odnosu na izvravanje programa. To znai da konzitentnost podataka unutar jednog programa, pa ak i jedne naredbe, nije zagarantovana. Ukoliko se eli obezbediti konzistentnost newophodno je da se koriste naredbe za kopiranje podataka.

4.2. LEDER DIJAGRAMI


Jedna programska linija leder jezika sastoji se iz niza grafikih simbola (programskih naredbi) koji predstavljaju razliite logike elemente i druge komponente kao to su asovnici i brojai, koji su poreani du horizontalne linije rang (rung) koja je na oba kraja spojena sa dvema vertikalnim linijama. Prema tome, leder dijagram ima SL. 4-2 RANG LEDER PROGRAMA izgled lestvica, odakle potie i njegov naziv (ladder lestvice). Svaki rang leder dijagrama sastoji se iz dva dela. Na levoj strani ranga nalazi se uslov izraen u formi kontaktne (prekidake) logike, dok se na desnoj strani ranga nalazi akcija koja treba da se izvri ukoliko je uslov ispunjen (true) (Sl. 4-2). Uslov U osnovi, grafikim simbolima na levoj strani ranga ispituje se istinosna vrednost tagova koji su pridrueni tim simbolima. Svaki simbol predstavlja jednu unarnu ili binarnu operaciju kojoj je pridruena odgovarajua tablica istinitosti. Uz grafiki simbol naznaava se i tag koji predstavlja operand. Pri ispitivanju istinitosti uslova smatra se da se nad svim simbolima u jednoj liniji (redna, serijska veza) obavlja logika I operacija. To znai da je uslov istinit ukoliko je svaki pojedinani iskaz istinit. Na levoj strani ranga dozvoljena su i granjanja (paralelne veze). Pri ispitivanju istinitosti uslova paralelne veze se tretiraju kao logika ILI operacija. To znai da e iskaz predstavljen nizom paralelnih grana biti istinit, ako bar jedna od grana sadri istinit iskaz. Potrebno je da se istakne da leva strana ranga moe biti formirana i tako da na njoj nema ni jednog simbola. U tom sluaju smatra se da je uslov koji se na taj nain definie uvek istinit. Akcija Grafiki simbol na desnoj strani ranga predstavlja jednu naredbu koja se

PROGRAMIRANJE/51

izvrava ako je uslov na desnoj strani istinit. Uz simbol se naznaava i tag ija se vrednost menja prilikom izvravanja naredbe, ili koji na bilo koji drugi nain uestvuje u realizaciji naredbe (npr. otpoinjanje ili zaustavljanje neke aktivnosti, skok na neki drugi rang, poziv potprograma itd.). Serijska veza na desnoj strani ranga nije dozvoljena, dok paralelna veza oznaava da se vie razliitih naredbi izvravaju kao rezultat ispitivanja istinitosti jednog istog uslova. Nema ogranienja u pogledu broja paralelnih grana na strani uslova. Pored toga, posle globalnog uslova, na strani akcije dozvoljeno je i grananje, tako da se pojedinim paralelnim granama dodaju na red dodatni uslovi. Ovakvo "ugnedavanje" izlaza moe imati najvie 6 nivoa. U principu, ukoliko u rangu ima vie naredbi uslova i akcije, one mogu biti slobodno rasporeene i tako da neka akcija, prethodi naredbi uslova. Neophodno je jedino da rang zapone sa uslovom i zavri se sa akcijom. Svaka rang naredba uslova ili akcije okarakterisana je sa dve bulovske vrednosti. Ulazni uslov (Rung-condition-In) istinosna vrednost bulovskog izraza koji formiraju naredbe sa leve strane. Izlazni uslov (Rung-condition-Out) istinosna vrednost naredbe koja zavisi od ulaznog uslova i same naredbe Naredbe uslova se izvravaju samo ako je ulazni uslov istinit. U protivnom, njima se automatski dodeljuje neistinit izlazni uslov. Budui da se neistinite naredbe, po pravilu, izvravaju bre nego istinite, izvesno ubrzanje u izvoenju programa moe se ostvariti tako to e se na poetak ranga, u serijskoj vezi, staviti one naredbe koje imaju veu verovatnou da budu neistinite. Leder program se izvrava u toku programskog sken ciklusa i to tako to se obrauje rang po rang u nizu kako su oni definisani. U svakom rangu ispituje se istinitost uslova i ukoliko je uslov istinit izvravaju se odgovarajue naredbe akcije. Ako se naredbom akcije dodeljuje neka vrednost tagu, onda e se tom prilikom ta vrednost promeniti. Potrebno je zapaziti, meutim, da ukoliko se tag u naredbi akcije odnosi na fiziki izlaz, vrednost izlaza nee biti promenjena u istom trenutku vremena. Vrednosti izlaza bie promenjene tek kada se ovi tagovi, u okviru komunikacija, koje se obavljaju asinhrono sa programskim skenom, prenesu na odgovarajue izlazne module. Slian efekat sree se i kod tagova koji su vezani za naredbe uslova. Za vreme programskog skena ispitivanje istinitosti uslova odnosi se na vrednosti tagova, koje su tu upisane u prethodnom ciklusu komunikacija. Imajui u vidu da je komunikacija asinhrona, nema garancije da e se ceo program skenirati sa istim vrednostima tagova. Ukoliko se eli konzistentnost ovih vrednosti neophodno je obezbediti kopiju podataka i programirati naredbe uslova da rade sa tom kopijom. Leder program kreira se pomou odgovarajueg programskog grafikog alata.

4.3. DIJAGRAMI FUNKCIJSKIH BLOKOVA


Funkcijski blok realizuje funkciju preslikavanja ulaznih tagova na izlazne tagove. Dozvoljeni broj ulaza i izlaza zavisi od odreene funkcije preslikavanja. Ulazne promenljive (Input reference - IREF) mogu biti bilo koji tagovi, ili izlazi drugih blokova. Vrednosti ovih tagova se obrauju u funkcijskom bloku. Rezultati obrade se prenose na izlazne promenljive (Output reference OREF), koje su takoe predstavljene tagovima. Programiranje korienjem programskog jezika dijagrama funkcijskih blokova obavlja se pomou grafikog editora koji ukljuuje repertoar funkcija preslikavanja koje se mogu koristiti, IREF i OREF blokove za kreiranje ulaznih i izlaznih tagova, kao i OCON i ICON konektore kojima se obezbeuje konekcija pojedinih udaljenih taaka u dijagramu (Sl. 4-3). Samo se po sebi razume da OCON i ICON konektori moraju biti u parovima, odnosno imati isto ime. Pri tome, jednom OCON konektoru mogu odgovarati vie ICON konektora sa istim imenom.

PROGRAMIRANJE/52

Svaki funkcijski blok identifikuje se funkcijom preslikavanja koju obavlja i svojim imenom tagom bloka. Prilikom definisanja bloka, njegovo ime se generie automatski, a korisnik ga moe po elji promeniti. Pri tome je svakom tipu funkcijskog bloka pridruena odgovarajua struktura iji su lanovi ulazni i izlazni signali, indikatori statusa i drugi parametri neophodni za realizaciju preslikavanja. U principu, svaka struktura ima jedan lan koji je vezan za omoguavanje i spreavanje operacije bloka (.Enableln). Kada je ovaj lan postavljen na 1, blok ne izvodi nikakvu operaciju. Isti tako, struktura ima i lan koji kada je postavljen ukazuje na to da je operacija korektno izvedena (.EnableOut).

SL. 4-3 GRAFIKA ILUSTRACIJA DIJAGRAMA FUNKCIJSKIH BLOKOVA

Vie blokova se moe povezati u jedan dijagram, pri emu je redosled operacija odreen tokom signala od ulaza u prvi blok. Na Sl. 4-4 prikazan je program u kome se realizuje operacija c = (a + b) b Ukoliko blokovi nisu meusobno povezani redosled obavljanja operacija je nebitan. U cilju vee preglednosti programa, blokovi se mogu rasporediti na vie strana programa. Prilikom izvoenja programa, izvravaju se sve strane jednog programa. Ukoliko za tim ima potrebe signali na razliitim stranama blokova mogu se povezati OCON i ICON konektorima. Pri obradi signala unutar bloka obavlja se aritmetika kliznog zareza sa jednostrukom tanou. Otuda je potrebno da se opseg vrednosti ogranii na 1015.
0.0 a ADD Add 0.0 SourceA 0.0 b SourceB Dest Multiply 0.0 SourceA SourceB Dest ... Blok_2 MUL ... c Blok_1

SL. 4-4 PROGRAM ZA REALIZACIJU OPERACIJE c = (a + b) b

PROGRAMIRANJE/53

4.3.1.

IZVRAVANJE PROGRAMA

Obrada ulaznih tagova Ulazni podaci koji se specificiraju pomou IREF bloka ne menjaju se u toku jednog sken ciklusa. Naime, kontroler aurira ove podatke samo na poetku svakog sken ciklusa programa. Zat vorena povr atna sprega Ukoliko su blokovi povezani tako da obrazuju zatvorenu povratnu spregu nee biti mogue da se odredi redosled izvoenja operacija. U cilju prevazilaenja ovog problema koristi se poseban indikator pretpostavljene raspoloivosti podatka (Assume Data Available Indicator). Postavljanjem ovog indikatora na ulaz nekog bloka indicira se da e on koristiti vrednost koju je ulazna promenljiva imala u prethodnom sken ciklusu, kao to je to ilustrovano na Sl. 4-5.
0.0 a 1 Blok_1 ADD Add 0.0 SourceA SourceB 0.0 b Dest SourceA SourceB Dest ... 2 Blok_2 MUL Multiply 0.0 ... c

SL. 4-5 PROGRAM ZA REALIZACIJU ZATVORENE PETLJE c = (a + c) b

Na Sl. 4-5 je prikazano stavljanje indikatora na drugi ulaz (SourceB) u bloku Blok_1. Time se izraz c = (a + c) b , posmatran kao vremenska funkcija izraunava kao c t = (at + c t 1 ) bt .
0.0 a ADD Add 0.0 SourceA 0.0 b SourceB Dest Source Dest ... SQR ... Blok_04 SQR_01

Square Root 0.0 d

SL. 4-6 PROGRAM ZA REALIZACIJU JEDININOG KANJENJA x t = at + bt ;

dt = x t 1

U principu, kada se radi o zatvorenoj sprezi, indikator se postavlja na jednoj taki u petlji, ime se zapravo unosi neophodno vremensko kanjenje. U protivnom dolazi do situacije u kojoj je nemogue odrediti redosled izraunavanja. Vano je istai da je kada se indikator kanjenja koristi u vezi izmeu dva bloka neophodno da sve linije koje spajaju blokove imaju taj indikator. Kreir anje jedini nog k anjenja Kanjenje u jednom sken ciklusu izmeu dva bloka moe se ostvariti ubacivanjem indikatora pretpostavljene raspoloivosti podatka (Sl. 4-6).

4.4. STRUKTURIAN TEKST


Struktuiran tekst je tekstualni programski jezik koji sadri niz komponenti kojima se formiraju programske naredbe. Jedna programska naredba sadri tagove, simbol za pridruivanje, izraze, naredbe i konstrukte. Sve naredbe se zavravaju znakom "taka zapeta" (;). Interpretator naredbi nije osetljiv na velika i mala slova. Komentari se oznaavaju pomou dve kose crte (//), ako su istom redu u kome je i naredba ili ako se proteu kroz vie redova kao (*komentar*), odnosno /*komentar*/

PROGRAMIRANJE/54

4.4.1.

PRIDRUIVANJE VREDNOSTI

Pridruivanje vrednosti vri se pomou znaka jednakosti kome prethodi dvotaka tag := izraz; pri emu tag i izraz moraju biti promenljive istog tipa. Pridruivanje vrednosti moe da se izvri i pomou neretentivnog znaka jednakosti tag [:=] izraz; Ovaj nain pridruivanja vrednosti razlikuje se po tome to se tag na levoj strani naredbe resetuje na nulu svaki put kada kontroler ue u run mode i kada se izvrava postsken u SFC dijagramu.

4.4.2.

IZRAZ
Izraz moe da bude aritmetiki, logiki ili relacioni.

Aritmeti k i izraz Aritmetiki izraz se formira kombinacijom tagova, operatora elementarnih matematikih operacija: +, -, *, **, / i funkcija, koje se identifikuju preko koda i izraza koji se navodi u zagradama. Elementarne operacije podravaju promenljive tipa DINT i REAL, dok neke funkcije podravaju ista ta dva tipa, a neke samo promenljive tipa REAL1. Logi k i izr az Logiki izraz se formira sa promenljivim bulovskog tipa, to znai da je i njegova vrednost istog tipa, odnosno da on moe biti istinit (1) ili Nivo Operacija neistinit (0). 1 () Za formiranje ovih izraza na raspolaganju su funkcija (...) 2 slede i logiki operatori: & ili AND, OR, XOR, NOT. 3 **
4 5 6 7 8 9 10 11 12 - (negacija) NOT *, /, MOD +, <, >, <=, >= =, <> & (AND) XOR OR

T. 4-2 HIJERARHIJA OPERACIJA

Relac ioni izraz Relacionim izrazima uspostavlja se odnos izmeu promenljivih tipa DINT, REAL ili STRING. Rezultat je promenljiva tipa BOOL, koja ima vrednost 1 (istinit) ako je relacija zadovoljena, odnosno 0 (neistinit) ako relacija nije zadovoljena. Otuda se relacioni izraz moe koristiti kao operand u logikom izrazu. Za formiranje ovih izraza na raspolaganju su sledei relacioni operatori: =, <, >, <=, >=, <> (nejednako).

Operacije nad bitovima Posebnu vrstu izraza ine izrazi u kojima su operandi promenljive tipa DINT, povezane logikim operatorima (& ili AND, OR, XOR, NOT). U ovim izrazima logike operacije se izvode nad pojedinim bitovima. Sve operacije koje se mogu koristiti pri formiranju izraza grupisane su u hijerarhijske nivoe (T. 4-2). Vrednost izraza se izraunava tako to se kao prvo izvravaju operacije koje su na najviem hijerarhijskom nivou. Ukoliko ima vie operacija koje su na istom nivou, one se izvravaju sa leva u desno. Operacija MOD predstavlja deljenje po modulu (rezultat je ostatak deljenja dva broja). Otuda ona, iako se zapravo definie kao funkcija, ima drugaiji hijerarhijski poloaj u odnosu na ostale funkcije.

4.4.3.

NAREDBE

Jedan niz naredbi koji je na raspolaganju u okviru leder ili FB programskih jezika moe se koristiti i u tekst programima2. U principu naredba se programira navoenjem
1 2

Pregled raspoloivih funkcija dat je uz pregled svih drugih naredbi. Pregled raspoloivih naredbi dat je uz pregled svih drugih naredbi.

PROGRAMIRANJE/55

koda i operanada u zagradama.

KOD (operandi meusobno razdvojeni zapetama);

4.4.4.

KONSTRUKTI

IF...THEN Us lovno izvravanje grupe naredbi IF bulovski_izraz THEN PROGRAMSKA NAREDBA; ; ; ELSIF bulovski_izraz THEN PROGRAMSKA NAREDBA; ; opciono ; ELSE PROGRAMSKA NAREDBA; ; ; END_IF;

CASE...OF Aritmet i k i sk ok na grupu naredbi CASE aritmetiki_izraz OF LABELA1: PROGRAMSKA NAREDBA; ; ; LABELA2: PROGRAMSKA NAREDBA; ; ; LABELA3: PROGRAMSKA NAREDBA; ; ;

ELSE PROGRAMSKA NAREDBA; ; ; END_CASE;

opciono

Naredba se izvrava tako to se izrauna vrednost aritmetikog izraza i u zavisnosti od nje skoi na onu labelu koja sadri tu vrednost. Ukoliko postoji mogunost da aritmetiki izraz ima i neku vrednost koja nije navedena meu labelama, pogodno je da se stavi ELSE deo naredbe koji se u tom sluaju izvrava. Labela moe biti: Konstanta Niz konstanti razdvojenih zapetama Opseg vrednosti koji se definie kao poetna konstanta ... zavrna konstanta Aritmetiki izraz moe biti SINT, INT, DINT ili REAL tipa. Ukoliko se koristi REAL tip, pogodno je da se kao labela navede opseg vrednosti, jer je daleko verovatnije da se vrednost REAL izraza nae u opsegu nego da bude tano odreena jednim brojem.

PROGRAMIRANJE/56

FOR...DO - Petlja FOR brojac := pocetna_vrednost TO krajnja_vrednost BY korak DO PROGRAMSKA NAREDBA; IF bulovski_izraz THEN EXIT; END_IF; END_FOR;

opciono

Broja, poetna i krajnja vrednost, kao i korak mogu biti promenljive SINT, INT i DINT tipa. Pri korienju petlje treba imati na umu da ona, na izvestan nain prekida izvravanje svih drugih naredbi. Naime, ona se u jednom skenu izvodi sve do kraja petlje, to moe dovesti i do prekoraenja watchdog intervala koji je definisan za taj zadatak. U tom sluaju kontroler prijavljuje znaajnu greku. Ukoliko se eli izlaz iz petlje i pre nego to broja stigne do krajnje vrednosti moe da se koristi EXIT naredba kombinovana sa nekim uslovom. W HILE...DO Uslovna pet lja WHILE bulovski izraz DO PROGRAMSKA NAREDBA; IF bulovski_izraz_1 THEN EXIT; END_IF; END_WHILE; REPEAT...UNTIL Uslovna petlj a REPEAT DO PROGRAMSKA NAREDBA; IF bulovski_izraz_1 THEN EXIT; END_IF; UNTIL bulovski izraz END_REPEAT;

opciono

opciono

4.5. DIJAGRAMI SEKVENCIJALNIH FUNKCIJA


Dijagram sekvencijalnih funkcija (SFC) omoguava grafiko predstavljanje toka procesa, odnosno prikazivanje svih stanja kroz koje proces prolazi. U principu, program se sastoji od niza stanja (Step) koje ine funkcionalne celine u okviru kojih se obavlja niz aktivnosti (Action). Prelaz u sledee stanje (Transition) dozvoljen je kada se steknu predefinisani uslovi, kao to je to ilustrovano na Sl. 4-7. Potrebno je da se istakne da se SFC dijagram razlikuje od drugih programa po tome to u okviru njega nalazi niz aktivnosti (programskih celina) koje se ciklino skeniraju sve dok je SFC dijagram aktivan. To znai da, za razliku od drugih programa, kod koga se ciklino skeniraju sve linije koda, unutar SFC dijagrama postoje delovi koji se repetitivno skeniraju i izvravaju, pre nego to se pree na sledee funkcionalne celine. Otuda se on koristi za organizaciju sistema u smislu formiranja funkcionalnih celina, kao i za programiranje upravljanja sistemom kroz niz sekvencijalnih koraka.

PROGRAMIRANJE/57

STEP funkcionalna celina (stanje)

... Inicijalizacija

P1

...

motor_on

motor.2 :=1;
D 3 ... pumpa_on

ACTION aktivnosti u okviru STEP-a

pumpa.3 :=1;

... nije_kraj A4

ini_done

Inicijalizacija.DN

TRANSITION prelaz na sledeci STEP, ako je uslov ispunjen

... upravljanje_motorima

... upravljanje_pumpama

ACTION paralelno izvrsavanje dve celine

...

gotovo

um_dn & up_dn

... vreme

+ BRANCH uslovno granjanje

...

nije_kraj

...

kraj

not vreme_dn
Branch A2 ACTION vrati se nazad

vreme_dn

Stop

SL. 4-7 ILUSTRACIJA DIJAGRAMA SEKVENCIJALNIH FUNKCIJA

4.5.1.

SPECIFIKACIJA SFC ZADATKA

Imajui u vidu specifinost naina izvravanja SFC dijagrama logino se postavlja pitanje koja vrsta zadataka i pod kojim uslovima se specificira pomou SFC dijagrama. U principu, ovde postoje dve mogunosti. SFC koordinira rad celog sistema SFC se specificira kao glavni zadatak koji se izvrava kontinualno SFC koordinira rad dela sistema SFC se specificira kao potprogram koji se poziva od strane glavnog programa.

PROGRAMIRANJE/58

PR. 4-1 Neka se u jednom sistemu upravlja radom pumpi i motora i to sa razliitim periodima odabiranja. Neka su nadalje obe grupe ureaja upravljane on-off signalima, pri emu se da li neki od ovih ureaja radi ili ne odreuje u zavisnosti od temperature koja se meri u odreenim takama sistema. Opisani problem se moe reiti tako to e se definisati dva periodina zadatka (Motori i Pumpe) koji e u zavisnosti od primljenih referenci generisati signale kojima se odgovarajui ureaji putaju u rad ili zaustavljaju. Pored toga, potrebno je da se formira jo jedan periodini zadatak (Temperatura) koji e prikupljati podatke o temperaturi. Rad celog sistema koordinira glavni zadatak koji je formiran kao SFC dijagram. Specifikacija potrebnih zadataka prikazana je na Sl. 4-8. Pri tome su programi za upravljanje motorima i pumpama realizovani u leder logici, dok je program za merenje temperature realizovan pomou funkcijskih blok dijagrama. SL. 4-8 SPECIFIKACIJA ZADATAKA

4.5.2.

SPECIFIKACIJA STANJA

Stanje (Step) predstavlja jednu funkcionalnu celinu koja ukljuuje aktivnosti koje se odvijaju u odreenom intervalu vremena, u odreenoj fazi procesa ili u odreenom podsistemu. Kada se u toku izvravanja programa doe do bloka stanja on postaje aktivan i sve pridruene aktivnosti se ciklino skeniraju sve dok se ne ispuni uslov koji oznaava da proces treba da pree u sledeu SL. 4-9 BLOK EMA STANJA fazu (Sl. 4-9). To zapravo znai da stanje, po pravilu, obuhvata aktivnosti koje dovode do promene u sistemu (dovoenje nekih delova do mainske grupe, zagrevanje procesa, dodavanje sastojaka, zatvaranje ventila itd.). Postoje dva tipa blokova koji predstavljaju stanje, a koja se specificiraju pri definisanju bloka: Initial stanje koje se izvrava samo jedanput kada kontroler poinje sa radom (prelazi u RUN mode); Normal stanje koje se izvrava svaki put kada je odgovarajui zadatak aktivan. Svakom stanju pridruuje se tag. Odabranom imenu taga automatski se pridruuje struktura tipa SFC_STEP, koja ima 17 lanova. Znaenje lanova prikazano je u tabeli T. 4-3. Svi potrebni parametri definiu se u okviru odgovarajueg prozora pri kreiranju bloka (Sl. 4-10). Neki parametri mogu da se zadaju i kao aritmetiki izraz koji se izraunava u toku izvoenja aktivnosti bloka.

PROGRAMIRANJE/59

SL. 4-10 SPECIFIKACIJA PARAMETARA STANJA INICIJALIZACIJA

LAN INICIJALIZACIJA.STATUS INICIJALIZACIJA.X INICIJALIZACIJA.FS INICIJALIZACIJA.SA INICIJALIZACIJA.LS INICIJALIZACIJA.DN INICIJALIZACIJA.OV INICIJALIZACIJA.ALARMEN INICIJALIZACIJA.ALARMLOW

TIP DINT BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL

OPIS Indikatori statusa, neki od njih pojavljuju se i kao posebni tagovi Ima vrednost 1 za svo vreme za koje je blok aktivan (istovremeno i .Status.31) Ima vrednost 1 samo (istovremeno i .Status.28) u prvom skenu kroz blok

Ima vrednost 1 za svo vreme za koje je blok aktivan osim u prvom i poslednjem skenu (istovremeno i .Status.29) Ima vrednost 1 samo u poslednjem skenu kroz blok (istovremeno i .Status.30) indikator dostizanja zadanog vremena aktivnosti (.T = .PRE) (istovremeno i .Status.27) Postavlja se na 1 ako je asovnik preao u negativne vrednosti (istovremeno i .Status.26) Omoguavanje praenja donje i gornje vremenske granice (istovremeno i .Status.25) Indikator trajanja aktivnosti bloka koje je manje od donje granice (.T < .LimitLow) (istovremeno i .Status.23)

PROGRAMIRANJE/60

INICIJALIZACIJA.ALARMHIGH INICIJALIZACIJA.RESET INICIJALIZACIJA.PRE INICIJALIZACIJA.T INICIJALIZACIJA.TMAX INICIJALIZACIJA.COUNT INICIJALIZACIJA.LIMITLOW INICIJALIZACIJA.LIMITHIGH

BOOL BOOL DINT DINT DINT DINT DINT DINT

Indikator trajanja aktivnosti bloka koje je due od gornje granice (.T > .LimitHigh) (istovremeno i .Status.24) Koristi se uz SFC Reset naredbu (SFR) (istovremeno i .Status.22) Zadano vreme aktivnosti bloka (ne prekida aktivnost kad se dostigne) Interni asovnik koji meri vreme za koje je blok aktivan Najdue vreme za koje je blok bio aktivan (u svim prolazima) Broja aktiviranja bloka, resetuje se pri prelazu kontrolera iz program mode u run mode, ukoliko je elemenat konfigurisan za otpoinjanje SFC dijagrama iz poetka Donja vremenska granica za aktivnost bloka Gornja vremenska granica aktivnosti bloka

T. 4-3 LANOVI STRUKTURE TIPA SFC_STEP

4.5.3.

IZVRAVANJE

STANJA

SL. 4-11 IZBOR NAINA IZVRAVANJA SFC DIJAGRAMA

U principu kada operativni sistem (OS), ako je SFC kontinualni zadatak, ili neki potprogram (JSR) zaponu izvravanje SFC dijagrama, SFC program aktivira odreen broj stanja1 i izvri jedno skeniranje svih aktivnosti svih aktivnih stanja i zatim vraa kontrolu operativnom sistemu ili pozivnom programu. Ukoliko izvravanje SFC dijagrama nije zavreno, ovaj program ostaje i dalje aktivan i nastavlja da se izvrava u skladu sa ranije opisanom multitask filozofijom. Budui da su neka od stanja ostala i dalje aktivna, ona e pri sledeem ulazu u SFC dijagram nastaviti da se izvravaju. Kada se stanje zavri, odnosno kada se uslov ispuni onda se sve aktivnosti u stanju skeniraju jo jedanput i zatim se prelazi na sledee stanje. Algoritam izvravanja jednog stanja u SFC dijagramu prikazan je na Sl. 4-12. Kada se stanje zavri, nain ulaza u poslednji sken ciklus zavisi od izbora opcije Execution control u okviru menija SFC execution, pri specifikaciji kontrolera (Sl. 4-11). Naime, u principu nakon zavretka pretposlednjeg sken ciklusa, kao i zavretka svakog drugog sken ciklusa jednog stanja kontrola izvravanje se vraa operativnom sistemu ili potprogramu koji je pozvao SFC na izvravanje. Ukoliko, se meutim eli ubrzavanje izvravanja SFC dijagrama moe se odabrati opcija (Execute until false transition) kojom se po zavretku jednog stanja odmah prelazi na izvravanje drugog stanja, sve dok se ne naie na prelaz iji je tag neistinit.

Pri zapoinjanju SFC dijagrama aktiviraju se sva stanja koja se nalaze u paralelnoj sprezi na poetku dijagrama.

PROGRAMIRANJE/61

SL. 4-12 DIJAGRAM TOKA IZVRAVANJA SFC DIJAGRAMA

Interni asovnik zapoinje sa radom kada se stanje aktivira. Princip rada asovnika i postavljanje indikatorskih bitova prikazani su na Sl. 4-13 i Sl. 4-14. Potrebno je obratiti panju na injenicu da se bitovi AlarmLow i AlarmHigh ne resetuju automatski, to znai da se korisnik mora starati o tome. Svi bitovi koji ukazuju na vreme trajanja stanja, resetuju se kad stanje sledei put postane aktivno.

SL. 4-13 INTERNI ASOVNIK I INDIKATORSKI BITOVI

PROGRAMIRANJE/62

stanje_1.AlarmEn

stanje_1.X

stanje_1.limitHigh

stanje_1.limitLow

stanje_1.T

stanje_1.AlarmLow

stanje_1.AlarmHigh

stanje_1 aktivirano

stanje_1 stanje_1 aktivirano deaktivirano

stanje_1 deaktivirano

SL. 4-14 POSTAVLJANJE BITOVA KOJI UKAZUJU NA TRAJANJE IZVRAVANJA STANJA

4.5.4.

SPECIFIKACIJA AKTIVNOSTI

Svaka aktivnost identifikuje se pomou taga kome se automatski pridruuje struktura SFC_ACTION. Kada je stanje aktivno, aktivnosti koje su mu pridruene skeniraju se u nizu u kome su navedene u SFC dijagramu. Struktura SFC_ACTION ima 6 lanova, ije je znaenje prikazano u tabeli T. 4-4. Postoje dve vrste aktivnosti Non-Boolean Activity kompletnu ukljuuje proceduru koja se izvrava, a koja se programira kao SL. 4-15 SPECIFIKACIJA PARAMETARA AKTIVNOSTI MOTOR_ON struktuiran tekst koji se izvrava kao zasebna rutina u okviru stanja. U okviru tekst programa moe se koristiti i poziv nekog potprograma, koji moe biti napisan u lederu ili jeziku fukcijski blokova. Boolean Activity ne ukljuuje proceduru, ve samo postavlja Q bit u strukturi koja je pridruena tagu aktivnosti. Podrazumeva se da se taj bit koristi kao uslov za izvravanje neke druge rutine koja nije sastavni deo aktivnosti. To znai da ta rutina mora biti aktivna kada je stanje aktivno. Najee se ovaj bit koristi za pozivanje nekog potrpograma u okviru koga je realizovana eljena aktivnost.

PROGRAMIRANJE/63

LAN
MOTOR_ON.STATUS

TIP DINT BOOL

OPIS Indikatori statusa, neki od njih pojavljuju se i kao posebni tagovi Ako je aktivnost bulovska ima vrednost 1 za svo vreme za koje je blok aktivan Ako aktivnost nije bulovska ima vrednost 1 do poslednjeg sken ciklusa, kada se resetuje na nulu (istovremeno i .Status.30) Ima vrednost 1 za svo vreme za koje je blok aktivan (istovremeno i .Status.31) Vremensko ogranienje ili kanjenje; aktivnost se prekida ili zapoinje kada se dostigne zadano vreme Interni asovnik koji meri vreme za koje je blok aktivan Broja aktiviranja bloka, resetuje se pri prelazu kontrolera iz program mode u run mode, ukoliko je elemenat konfigurisan za otpoinjanje SFC dijagrama iz poetka

MOTOR_ON.Q

MOTOR_ON.A MOTOR_ON.PRE MOTOR_ON.T MOTOR_ON.COUNT

BOOL DINT DINT DINT

T. 4-4 LANOVI STRUKTURE TIPA SFC_ACTION PR. 4-2 Na slici su prikazane dve aktivnosti pridruene stanju Inicijalizacija. 0 Inicijalizacija Aktivnost motor_on je ne bulovskog tipa i motor.2 :=1; ukljuuje jednu tekst naredbu kojom se bit broj 2 B N ... pumpa_on taga motor postavlja na vrednost 1. Aktivnost pumpa_on je bulovskog tipa. To znai da se ona izvrava tako to se tag SL. 4-16 NE BULOVSKA I BULOVSKA AKTIVNOST pumpa_on.q postavlja na vrednost 1. Ukoliko se eli da se ovom aktivnou dodeli vrednost 1 bitu broj 2 taga pumpa onda se za to mora napisati poseban program. Ovaj program moe da sadri samo jednu leder naredbu kao to je to prikazano na Sl. 4-17.
... N ... motor_on radi

pumpa_on.Q 0

pumpa.2

SL. 4-17 LEDER PROGRAM KOJIM SE REALIZUJE AKTIVNOST

Tip aktivnosti (bulovska ili ne) kao i ostale vrednosti parametara definiu se u okviru odgovarajueg prozora (Sl. 4-15). Pored parametara koji su lanovi strukture, moe da se definie i indikatorski tag, koji predstavlja promenljivu ija vrednost se eli pratiti u okviru bloka kojim je reprezentovana aktivnost. Posebnu grupu parametara ine kvalifikatori aktivnosti kojima se zapravo odreuje nain na koji se ona izvrava. Mogui naini izvravanja prikazani su u tabeli T. 4-5.
Kvalifikator N S L D P P1 Non-Stored Stored Time-Limited Time Delayed Pulse Pulse (Rising Znaenje Zaponi kada stanje postane aktivno i zavri kada se ono deaktivira Zaponi kada stanje postane aktivno i zavri kada se izvri Reset aktivnost Zaponi kada stanje postane aktivno i zavri kada istekne zadano vreme (.PRE) ili kada se stanje deaktivira Zaponi kada od trenutka kada je stanje postalo aktivno istekne zadano vreme (.PRE) i stanje je jo uvek aktivno i zavri kada se stanje deaktivira Izvri se jedanput kada se stanje aktivira i jedanputa kada se deaktivira Izvri se jedanput kada se stanje aktivira

PROGRAMIRANJE/64

edge) PO SL Pulse (Falling edge) Stored and Time Limited Stored and Time Delayed Time Delayed and stored Reset Izvri se jedanput kada se stanje deaktivira Zaponi kada stanje postane aktivno i zavri kada se izvri Reset aktivnost ili kada istekne zadano vreme (ak i ako je stanje u meuvremenu deaktivirano) Zaponi kada od trenutka kada je stanje postalo aktivno istekne zadano vreme, ak i ako se u meuvremenu stanje deaktiviralo i zavri kada se izvri Reset aktivnost Zaponi kada od trenutka kada je stanje postalo aktivno istekne zadano vreme i stanje je jo uvek aktivno i zavri kada se izvri Reset aktivnost Aktivnost ije izvrenje prekida sve stored aktivnost istog imena (taga) T. 4-5 KVALIFIKATORI AKTIVNOSTI

SD

DS R

U principu sve aktivnosti koje su pridruene jednom stanju, a nemaju kvalifikator "stored" zavravaju S ... merenje_vremena ... se kada stanje prestane da bude aktivno. Za svoj timer_on :=1; vreme zavretak, "stored" aktivnosti zahtevaju da se u nekom drugom stanju postavi aktivnost istog imena ali sa kvalifikatorom "reset" (Sl. 4-18). Tipian primer korienja ove kombinacije je situacija u kojoj neki ureaj treba da radi u toku izvravanja vie stanja. Pretpostavimo da se on aktivira u nekom stanju. Ako bi se dozvolilo da se po zavretku tog R ... merenje_vremena ... stanja ureaj zaustavi, da bi se onda u sledeem ponovo vreme pokrenuo imali bi nepotrebne udare koji ne pogoduju radu ureaja. Isti efekat bi se mogao postii ako bi se stanja u SL. 4-18 START/STOP AKTIVNOSTI kojima aktivnost treba da se izvrila programirala da rade simultano (u paraleli), naravno ukoliko logika rada to dozvoljava. Pored toga, mogue je i da se sva stanja u okviru kojih neka aktivnost treba da se izvrava grupiu u jedno veliko stanje.

. . .

4.5.5.

IZVRAVANJE POSLEDNJEG SKEN CIKLUSA

U zavisnosti od odabrane opcije, nakon izlaska iz stanja, odnosno pri prelazu stanja iz aktivnog u pasivno kontroler moe obaviti takozvani postscan ciklus u kome se sve naredbe izvravaju tako kao da je uslov za njihovo izvoenje neistint1. Time se zapravo omoguava resetovanje bitova ija je stanje vezano za uslove. U zavisnosti od kvalifikatora koji su pridrueni pojedinim aktivnostima, postscan se moe izvriti pre ili posle poslednjeg sken ciklusa. Pri specifikaciji poslednjeg sken ciklusa korisnik moe da izvri izbor izmeu tri mogunosti (Sl. 4-19) Don't scan Izvravaju se samo aktivnosti tipa P i PO. Svi podaci koji nisu obuhvaeni ovim aktivnostima zadravaju svoje trenutne vrednosti. To znai da se za one vrednosti koje se ele resetovati mora formirati jedna aktivnost PO tipa koja e biti poslednja u nizu aktivnosti. U ovoj opciji kontroler ne izvrava postscan ciklus. Programmatic reset Izvravaju se sve aktivnosti u skladu sa svojom programskom logikom ime se i postavljaju poslednje vrednosti podataka. Ukoliko se eli resetovanje nekih vrednosti
Potrebno je da se istakne da je ovo opte pravilo koje vai za veinu naredbi u postscan ciklusu (detalji o svakoj pojedinoj naredbi mogu se nai u odgovarajuim uputstvima za pojedine kontrolere iz ove familije)
1

PROGRAMIRANJE/65

neophodno je da se u odgovarajuim aktivnostima koriste indikatorski bitovi stanja ili aktivnosti, ili da se formira zasebna aktivnost PO tipa. U ovoj opciji kontroler ne izvrava postscan ciklus.

SL. 4-19 SPECIFIKACIJA POSLEDNJEG SKEN CIKLUSA

Automatic reset Aktivnosti P i PO tipa izvravaju se u skladu sa programskom logikom. Sve ostale aktivnosti izvravaju se u postcan nainu rada. Ovo se odnosi kako na ugraene tekst naredbe, tako i na potprograme koji se pozivaju u okviru aktivnosti. To znai da je za resetovanje pojedinih vrednosti neophodno da se u aktivnostima postave naredbe kojima se u postscan-u vrednosti postavljaju na nulu ili da se u tekst naredbama koristi neretentivna jednakost [:=] koja se u postscan-u izvrava tako to se tag na levoj strani znaka jednakosti postavlja na nulu. Vrednosti postavljene u toku izvoenja P i PO aktivnosti ostae nepromenjene sve do ponovnog aktiviranja tog stanja kada se, pre otpoinjanja skeniranja, izvri postscan svih P i PO aktivnosti.
PR. 4-3 Pretpostavimo da je pri zapoinjanju jednog stanja neophodno da se motor pusti u rad. Rad motora se prekida kada se zavri to stanje. Postavljeni zadatak se moe reiti na vie naina, a u zavisnosti od odabrane opcije za izvravanje poslednjeg ciklusa.
... pokretna_traka P0 ... zaustavi N ... pusti_u_rad

... traka

...

pusti_u_rad_001

motor_radi :=1;

motor_radi :=0;

If NOT(traka.LS) Then motor_radi :=1; Else motor_radi :=0; End_if;

Don't scan ili Programmatic reset

Programmatic reset

SL. 4-20 RESETOVANJE U DON'T SCAN U PROGRAMMATIC OPCIJI


... pokretna_traka_2 N ... pusti_u_rad_002

motor_radi [:=] 1;

SL. 4-21 RESETOVANJE U AUTOMATIC OPCIJI

PROGRAMIRANJE/66

4.5.6.

SPECIFIKACIJA PRELAZA
Svaki prelaz (transition) identifikuje se pomou taga tipa BOOL (Sl. 4-22). Prelaz se izvrava tako to se ispituje uslov koji se navodi pri specifikaciji prelaza. Ukoliko je uslov istinit tagu se dodeljuje vrednost 1, a ukoliko je neistinit tag dobija vrednost 0. Ako je vrednost taga 1 zavrava se stanje koje prethodi prelazu i aktivira se sledee stanje ili vie sledeih stanja, ako su ona vezana paralelno. Uslov se moe izraziti kao logiki izraz ili kao skok na potprogram u kome se izraunava uslov.
PR. 4-4 Pretpostavimo da su definisane tri taga tipa BOOL, a, b i c. Neka je uslov istinit ako su i a i b i c istiniti. Prelaz iji je tag uslov se moe definisati direktnim navoenjem logikog izraza ili skokom na potprogram. Odgovarajui delovi SFC dijagrama prikazani su na Sl. 4-23.

SL. 4-22 PRELAZ

... Step_002

... Step_002

...

prelaz

...

prelaz

a&b&c

JSR(prelaz_sbr,3,a,b,c,uslov);

SL. 4-23 RAZLIITI NAINI SPECIFIKACIJE USLOVA Potrpogram u okviru koga se definie uslov prelaz_sbr moe If a&b&c then da se realizuje kao struktuiran tekst (Sl. 4-24) ili leder dijagram (Sl. uslov_st :=1; 4-25). U oba slu aja on mora da se zavri sa EOT naredbom (End Of else Transition ) koja vra a vrednost taga u SFC dijagram. uslov_st :=0; end_if; EOT(uslov_st); SL. 4-24 TESKT POTRPOGRAM PRELAZ_SBR
a 0 EOT End Of Transition State Bit uslov b c uslov

SL. 4-25 LEDER POTRPOGRAM PRELAZ_SBR PR. 4-5 ZADATAK Formirati prelaz tako da se stanje prekida posle isteka 15 s. REENJE Da bi se realizovao ovaj prelaz neophodno je da se u stanju koje prethodi prelazu (Stanje_1) definie tag Stanje_1.PRE=15000. U tom sluaju, prelaz se moe realizovati ispitivanjem vrednosti DN bita. To se postie tako to se kao uslov prelaza postavi stanje_1.DN, kao to je to prikazano na Sl. 4-26.

... stanje_1

...

prelaz

stanje_1.DN

SL. 4-26 PRELAZ POSLE PR. 4-6 ZADATAK Formirati deo SFC dijagrama kojim se ostvaruje sledea operacija: ukoliko se prethodno
DATOG VREMENA

PROGRAMIRANJE/67

... stanje_2

stanje (stanje_2) zavri za 8s, nastavi proces, u protivnom obori ceo sistem. REENJE Pri konfiguraciji stanja neophodno je da se definie stanje_2.LimitHigh=8000, i stanje_2.AlarmEn=1. U tom sluaju prelaz se moe realizovati kao to je to prikazano na Sl. 4-27, pri emu se podrazumeva da e prelaz iji je tag prelaz_OK voditi na sledee stanje u

...

kraj

...

prelaz_OK

not stanje_2.AlarmHigh

stanje_2.AlarmHigh

SL. 4-27 GRANJANJE U ZAVISNOSTI OD PROTEKLOG VREMENA procesu, a prelaz kraj voditi na stanje kojim se obara sistem.

4.5.7.

ZAVRAVANJE, RESETOVANJE I PREKIDANJE IZVRAVANJA FSC DIJAGRAMA


U principu izvravanje SFC dijagrama zavrava se kada se naie na elemenat STOP. Ukoliko se, meutim, ovaj elemenat nalazi samo u jednoj od paralelnih grana onda se samo ta grana zavrava, dok ostale nastavljaju regularno izvravanje. Pri nailasku na elemenat STOP sve aktivnosti tipa stored ostaju i dalje aktivne. Svakom STOP elementu pridruuje se struktura tipa SFC_STOP koja ima 4 lana ije je znaenje prikazano u tabeli .
TIP DINT BOOL BOOL DINT OPIS Indikatori statusa, neki od njih pojavljuju se i kao posebni tagovi Bit dobija vrednost 1 kada se pri izvravanju SFC dijagrama naie na STOP element (istovremeno i .Status.31) Bit koji ukazuje na koji nain zapoinje ponovno izvravanje SFC dijagrama Broja aktiviranja elementa STOP, resetuje se pri prelazu kontrolera iz program mode u run mode, ukoliko je elemenat konfigurisan za otpoinjanje SFC dijagrama iz poetka

kraj

SL. 4-28 STOP


ELEMENT

LAN
KRAJ.STATUS KRAJ.X KRAJ.RESET

KRAJ.COUNT

T. 4-6 LANOVI STRUKTURE TIPA SFC_STOP

SL. 4-29 IZBOR OPCIJE ZA NAIN PONOVNOG ZAPOINJANJA SFC DIJAGRAMA

Kada se SFC dijagram zavri pomou STOP naredbe on se moe ponovno zapoeti samo ako se bit .X postavi na nulu. Taka u SFC dijagramu od koje otpoinje izvravanje zavisi od izbora opcije pri konfigurisanju kontrolera. Naime, izvravanje moe

PROGRAMIRANJE/68

otpoeti od prvog stanja (iz poetka) ili od stanja koje je poslednje izvreno pre naputanja SFC dijagrama (Sl. 4-29). Postoji i druga opcija kojom se moe zahtevati ponovno otpoinjanje izvravanja a to je SFR (reset) naredba. Ovom naredbom se prekida izvravanje SFC dijagrama, sve aktivnosti tipa stored se takoe prekidaju i izvravanje otpoinje od stanja SFC dijagrama koje je navedeno u SFR naredbi. Ova naredba se moe postaviti bilo u leder dijagramu bilo u struktuiranom tekst programu. Jo jedan nain za privremeno zaustavljanje i ponovno otpoinjanje SFC dijagrama prua SFP (pause) naredba. Istom naredbom se zaustavljeni SFC dijagram nastavlja od stanja u kome je zaustavljen. Funkcija koju obavlja SFP naredba zavisi od definisanog parametra Target State, koji se moe postaviti na 1 (execute) ili 0 (pause). Na Sl. 4-30 prikazan je deo leder programa kojim se, pod odreenim uslovom, resetuje SFC dijagram resetovanje i ponovo zapoinje od stanja pokretna:traka.
radi <pumpa.5> 0 SFR SFC Reset SFC Routine Name resetovanje Step Name pokretna_traka

radi <pumpa.5> /

SFP SFC Pause SFC Routine Name resetovanje Target State 1

SL. 4-30 LEDER NAREDBE ZA UPRAVLJANJE IZVRAVANJEM SFC DIJAGRAMA

4.5.8.

UGNEDENI FSC DIJAGRAMI

Jedan od naina formiranja SFC dijagrama sastoji se u tome da se vea funkcionalna celina opie preko nekoliko globalnih stanja, a da se zatim svako od tih stanja razrauje kroz niz detaljnijih SFC dijagrama. U tom sluaju, aktivnosti SFC dijagrama koji daje globalni pregled koriste se za pozivanje detaljnijih SFC dijagrama. Na taj nain formiraju se ugnedeni SFC dijagrami. Kod ugnedenih SFC dijagrama ako su odabrane opcije poslednjeg sken ciklusa Don't scan i Programmatic reset SFR naredba ostavlja dijagram u tekuem stanju. U sluaju da je odabrana opcija Automatic reset i da je kontroler konfigurisan za Restart at initial step, SFR naredba obezbeuje resetovanje dijagrama na poetno stanje i postavljanje indikatorskog bita X na nulu.
PR. 4-7 Na Sl. 4-31 prikazana je deo SFC dijagrama koji igra ulogu glavnog, nadreenog, programa u okviru koga su ugnedeni drugi SFC dijagrami. U svakom stanju ovog programa poziva se po jedan SFC dijagram kojim se realizuje to stanje. Otuda je, svaki put kada se u glavnom programu ue u stanje, neophodno da se ugnedeni SFC dijagram resetuje, odnosno pripremi za otpoinjanje od prvog stanja. Istovremeno se resetuje i bit X koji je postavljen pri prethodnom zavretku ugnedenog SFC dijagrama. Prikazani program odgovara specifikaciji poslednjeg sken ciklusa kao Don't scan i Programmatic reset SFR, to znai da je neophodno da se ovo resetovanje izvri programski, to je uinjeno u aktivnosti prvi_korak. Ukoliko se, meutim, odabere Automatic reset, ova aktivnost se izostavlja. Druga aktivnost koristi se za pozivanje ugnedenog SFC dijagrama. Pri tome je pretpostavljeno da se u taj dijagram unosi parametar a, i da se on iz njega iznosi. Po prirodi stvari, prelaz na sledee stanje u glavnom programu, obavlja se kada je prethodni ugnedeni SFC dijagram zavrio rad. Samo se po sebi razume, da ovaj uslov moe biti i drugaiji.

PROGRAMIRANJE/69

... faza_1

P1

...

prvi_korak

// u prvom skenu restuj ugnezdeni SFC na pocetak sfr(faza_1_sfc,poc); // resetuj indikator STOPa faza_1_sfc_stop.X :=0;
N ... poziv

// skoci na ugnezdeni sfc, 1 parametar (a) se prenosi JSR(faza_1_sfc,1,a);

...

sledeca_faza

// ako je ugnezdeni SFC zavrsio nastavi dalje faza_1_sfc_stop.X

SL. 4-31 DEO NADREENOG SFC DIJAGRAMA

... poc

... akt_1

motor :=1; a := motor.3;

specifikacija prenosa parametara

...

uslov_1

...

SBR Subroutine

motor.5
a

RET ... nastavak N ... Action_010 a Return

pumpa :=1;

...

uslov_2

radi

faza_1_sfc_stop

SL. 4-32 UGNEDENI SFC DIJAGRAM Ugnedeni SFC dijagram prikazan je na Sl. 4-32. Budui da se eli prenoenje parametara izmeu nadreenog i ugnedenog SFC dijagrama, ovde je neophodno da se koristi SBR/RET blok u okviru koga se definiu tagovi podataka koji se prenose. U datom primeru to je tag a.

Ugnedeni SFC dijagram e se izvravati svaki put kada ga nadreeni pozove, sve dok ne doe do STOP bloka, kada postaje neaktivan, odnosno kada se faza_1_sfc_stop.X bit postavlja na 1.

4.5.9.

PRENOS PARAMETARA

Kao to je ve reeno prenos parametara u ili iz SFC dijagrama obezbeuje se postavljanjem SBR/RET bloka. U okviru ovog bloka specificiraju se tagovi koji se prenose u SFC dijagram i tagovi koji se iz njega iznose (Sl. 4-33). Parametri se prenose u SFC dijagram pred poetak svakog sken ciklusa, a iz njega iznose na kraju sken ciklusa kada se kontrola vraa operativnom sistemu ili

PROGRAMIRANJE/70

pozivnom programu (Sl. 4-34).

...

SBR Subroutine

...

SBR

a b RET Return c

Subroutine RET Return

SL. 4-33 SPECIFIKACIJA PARAMETARA KOJI SE PRENOSE

SL. 4-34 BLOK DIJAGRAM PRENOSA PARAMETARA

FAZE/71

5. Kreiranje i upravljanje fazama


5.1. FAZE JEDNE OPERACIJE 5.1.1. FAZA
itav niz sloenih operacija odvija se kroz sukcesivni niz razliitih aktivnosti. Tako se na primer pri procesu pravljenja smee u nekom rezervoaru prvo u rezervoar ubacuje jedna po jedna komponenta, zatim se one meaju, eventualno greju na odgovarajuu temperaturu da bi se izazvala reakcija izmeu njih. Na kraju se dobijena smea izbacuje iz rezervoara. Upravljanje ovakvom operacijom oigledno zahteva da se ona posmatra da dva nivoa. Sa jedne strane neophodno je obezbediti da se sve aktivnosti izvode u utvrenom redosledu. Sa druge strane, realizacija svake od aktivnosti zahteva upravljanje nizom ventila, motora, grejaa ili drugih izvrnih organa. Da bi se proces upravljanja pojednostavio mogue je celu operaciju podeliti na faze. Svaka faza odreuje skup operacija koji treba da se obavi, kao i vremenski trenutak u kome se one obavljaju. Nain deobe procesa na faze zavisi od samog procesa. Po pravilu kada se izvri deoba procesa na faze, onda se uz svaku fazu navodi i spisak izvrnih organa i senzora koji e uestvovati u njenoj realizaciji.
PR. 5-1 ZADATAK Posmatra se jedan reaktor u kome se odreeni sastojci meaju sa zagrejanom vodom. Sistem radi tako to se kao prvo sipa voda u reaktor. Zatim se voda zagreva do odreene temperature. Kad se postigne temperatura u reaktor se ubace sastojci, smea se promea i gotov proizvod se izbacuje iz reaktora. Opisan proces prikaza je ematski na Sl. 5-1. Potrebno je specificirati razliite faze u radu reaktora i specificirati potrebnu opremu za jednu od faza.

SL. 5-1 EMATSKI PRIKAZ REZERVOARA REENJE Oigledno je da se u radu reaktora uoava pet faza: Faza punjenja vodom Faza zagrevanja vode Faza dodavanja sastojaka Faza meanja Faza pranjenja Zapazimo da u okviru ovog procesa postoji niz aktivnosti koje su vezane za otvaranje i

FAZE/72

zatvaranje pojedinih ventila. Meutim, sam proces upravljanja ventilom je suvie jednostavan da bi bio specificiran kao faza. Na isti nain recimo i aktivnost kuvanja smee nije pogodna za fazu, jer je isuvie sloena. Faza punjenja vodom realizuje se tako to treba da se otvori ventila na liniji za ulaz vode i da se aktivira pumpa. Voda e uticati u rezervoar sve dok se ne dostigne neki zadani nivo. To znai da u rezervoaru mora da postoji i neki granini prekida koji e reagovati na nivo vode. U skladu sa time faza punjenja vodom je vezana za rad sledee opreme Pumpa za vodu Ventil za vodu Granini prekida PR. 5-2 ZADATAK Posmatra se inteligenta pokretna traka iji je zadatak da ravnomerno rasporeuje proizvode na izlaznom delu trake (Sl. 5-2). Proizvod se prvo kree po tzv. gruboj traci, zatim prelazi na finu da bi na kraju uao na izlaznu traku na tano utvrenom mestu. Potrebno je specificirati razliite faze u ovom procesu i specificirati potrebnu opremu za jednu od faza.

Senzori

AC indukcioni motor

Beskontaktni servo motori (MP-serija)

Kinetix 6000 Vie-osni servo drajveri

SL. 5-2 EMATSKI PRIKAZ POKRETNE TRAKE REENJE Budui da ova traka obavlja samo jednu aktivnost - rasporeivanje proizvoda ona ima samo jednu fazu. Neka se ova faza zove smart traka. Pri realizaciji ove faze neophodno je upravljati kretanjem. U tom smislu fazi se pridruuje upravljanje motorima na gruboj traci, finoj traci i izlaznoj traci.

5.1.2.

KREIRANJE FAZE U CONTROLLOGIX KONTROLERIMA

Kao to je ve ranije reeno faza je jedan od zadataka koji se moe formirati u okviru RSLogix5000 softverskog alata. U principu faza se kreira na isti nain kao i program. To znai da se ona mora pridruiti nekom zadatku. U okviru definisanog zadataka korisnik ima mogunost izbora kreiranja programa ili faze (Sl. 5-4). U principu jedan zadatak moe sadravati kombinaciju programa i faza. Sutinska razlika je u tome to se radom faza dodatno upravljanja od strane menadera faza (Phase manager) o kome e kasnije biti vie rei. Kontroleri ControlLogix i SoftLogix mogu da podravaju do 100 razliitih faza po jednom zadatku, dok CompactLogix i FlexLogix podravaju do 32 faze. Na Sl. 5-3 su prikazane sve faze koje su kreirane za posmatrane primere proizvodnje smee i inteligentne trake. Pri tome je proizvodnja smee pridruena glavnom

FAZE/73

zadatku, dok je za pokretnu traku kreiran novi zadatak

SL. 5-4 KREIRANJE FAZE U OKVIRU ZADATKA

Fazu ne treba meati sa programom, odnosno algoritmom koji e se koristiti za upravljanje izvrnim organima koji uestvuju u izvoenju operacija u toj fazi. Kao to je ve reeno, jedna faza zapravo samo specificira ta je potrebno da se uradi i kada se to radi. Ove informacije e koristiti menader faza u toku izvravanja aplikacije na kontroleru. Drugim reima uz svaku fazu neophodno je i da se kreira odreeni broj rutina u okviru kojih se upravlja opremom koja realizuje zahtevane aktivnosti. Ulazak u jednu fazu je samo znak da je potrebno aktivirati pridruene rutine i eventualno im preneti referentne signale. Kada SL. 5-3 SPECIFICIRANE FAZE programi obave svoje aktivnosti oni fazi daju relevantne informacije o stanju opreme, obavljenom poslu itd., kao to je to ilustrovano za izvravanje faze punjenja vode (Sl. 5-5).

SL. 5-5 RELACIJA IZMEU FAZE I PRIDRUENIH PROGRAMA

FAZE/74

5.2. STANJA PRI IZVRAVANJU FAZE 5.2.1. DIJAGRAM STANJA


Kao to je ve reeno u svakoj fazi realizacije sloene operacije obavljaju se neke aktivnosti. Pri tome, oprema za poetak rada moe biti spremna, ali je mogue i da je neophodno da se ona resetuje i tako pripremi za rad. Pored toga, aktivnosti se mogu izvravati ili ve biti izvrene. Ako se tome doda i mogunost nastanka nekog problema zbog koga aktivnosti moraju da se privremeno ili trajno prekinu, onda se vidi da se svaka od ovih aktivnosti moe nalaziti u nizu u razliitih stanja. U osnovnoj podeli aktivnost moe biti u radnom stanju ili u stanju mirovanja. Ova stanja se nadalje dele po samoj prirodi radnog stanja, odnosno stanja ekanja. Otuda svakoj aktivnosti odgovara zapravo jedan opti dijagram stanja koji ima oblik kao to je to prikazano na Sl. 5-6. Potrebno je zapaziti da sistem prelazi iz jednog stanja u drugo pomou odgovarajuih komandi. Pri tome se podrazumeva da se u stanje zaustavljanja i naputanja moe ui iz bilo kog drugog stanja u sistemu (komande Stop i Abort). Otuda se ovi signali na dijagramu ne vode iz nekog posebnog stanja, ve se postavljaju kao zbirni signali koji obuhvataju sva regularna stanja opreme.

Spreman

Start

Hold Radi DONE ekanje Hold Restartovanje

DONE Prekinut

Resetovanje

Restart

DONE Reset Zavren

Stop Abort

Abort

Detektovana greka (fault) LEGENDA

Zaustavljanje DONE Zaustavljen

Naputanje DONE Naputen

Radno stanje Mirovanje Xxxx - komanda DONE - indikator

Reset NORMALAN REIM RADA HAVARIJSKI REIM RADA (GREKE, ISPADI, )

SL. 5-6 DIJAGRAM STANJA SISTEMA

U principu svaki dijagram stanja ima dva dela od kojih je jedan namenjen normalnom reimu rada, a drugi havarijskom. Pri tome, havarijsko stanje moe biti brzo uklonjeno karaktera, to znai da rad moe biti privremeno prekinut, a zatim ponovo nastavljen (restartovanje). Ukoliko to nije sluaj, havarijsko stanje e dovesti do naputanja operacije ili do zaustavljanja celog sistema. Kada se razlozi koji su doveli do havarijskog stanja uklone, sistem se resetuje i ponovo je spreman za rad. Svako radno stanje zavrava se postavljanjem "done" indikatora. Ovaj indikator se postavlja u programu koji realizuje operacije tog stanja i predstavlja uslov za prelaz iz radnog stanja ula u stanje mirovanja. Na isti nain i detekcija greke nije komanda ve se programski proverava da li je detektovana neka greka koja onda prouzrokuje naredbu Abort. U okviru svakog od navedenih stanja navodi se funkcionalna specifikacija onoga to sistem treba da uradi, ili onoga to treba da se proveri da bi se znalo da je taj deo aktivnosti obavljen. U osnovi funkcionalna specifikacija pojedinih stanja daje odgovore na sledea pitanja.

FAZE/75

STANJA MIROVANJA Spreman (Idle) ta je potrebno proveriti da bi se utvrdilo da je oprema spremna za rad? Zaustavljen ( Stopped) U kom je stanju sistem pre nego to se ukljui napajanje? Zavren ( Complete) Kako se detektuje da je oprema zavrila taj deo posla? Prek inut (Held) Kako se ustanovljava da je oprema privremeno, ali kontrolisano, prekinula rad? Naputen (Aborted) Kako se provera da je rad bezbedno prekinut u sluaju detekcije grek e? RADNA STANJA Radi (Running) ta oprema radi da bi se obavio dati posao? ek anje (Holding) Kako se oprema privremeno zaustavlja bez posledica po sam posao? Restartovanje (Restarting) Kako oprema nastavlja rad posle privremenog zaustavljanja? Resetovanje ( Resett ing) Kako se oprema priprema za zapoinjanje posla? Zaustavljanje (Stopping) ta se deava u toku normalnog zaustavljanja aktivnosti? Naputanje (Aborting) Kako se oprema zaustavlja u sluaju detekcije greke? Samo se po sebi razume da dijagram ne mora da ukljui sva stanja.
PR. 5-3 ZADATAK Formirati dijagram stanja za fazu punjenje vodom iz primera Pr. 5-1. REENJE

SL. 5-7 DIJAGRAM STANJA FAZE PUNJENJA REAKTORA VODOM Dijagram stanja za fazu ubacivanja vode prikazan je na Sl. 5-7. Kao to se vidi sistem ne obavlja nikakve funkcije u stanju resetovanja, zato to nije potrebno da se vre bilo kakve

FAZE/76

pripremne radnje pre ponovnog punjenja reaktora vodom. Ovo stanje e prema tome samo postaviti "done" indikator koji e omoguiti prelaz us stanje "spreman". PR. 5-4 ZADATAK Formirati dijagram stanja za fazu smart traka iz primera Pr. 5-2.Pr. 5-1 REENJE Dijagram stanja prikazan je na. Budui da sistem ima samo jednu fazu, ona zapravo nikad nije zavrena sve dok se sistem ne zaustavi. Zato se stanje "zavren" ne koristi.

SL. 5-8 DIJAGRAM STANJA FAZE "SMART TRAKA"

5.2.2.

SPECIFIKACIJA

RUTINA STANJA

SL. 5-9 KREIRANJE RUTINE STANJA

Svakom radnom stanju unutar jedne faze, ukoliko je ono specificirano dijagramom

FAZE/77

SL. 5-10 RUTINE STANJA

stanja, mora da se pridrui po jedna rutina u okviru koje se specificiraju aktivnosti koje treba da se obave. Za ovu rutinu se odabere stanje kome ona odgovara, kao i programski jezik u kome e kod biti napisan (Sl. 5-9). Potrebno je zapaziti da se stanjima mirovanja ne pridruuju rutine jer se u njima nita i ne radi. Ona su samo uslovi pod kojima sistem miruje izmeu dva radna stanja ekajui zahtev da pree u sledee. Na slici (Sl. 5-10). Prikazana je struktura kontrolera kod koga su za fazu Punjenje_vodom kreirane rutine koje odgovaraju svim radnim stanjima u koje sistem moe da ue u toj fazi.

5.2.3.

KONFIGURISANJE RUTINE FAZE

Prilikom definisanja faza RSLogix5000 omoguava i specifikaciju dodatnih opcija koje mogu biti ukljuene u toku izvravanja faze. Ove opcije specificiraju se kao osobina faze (properties), a u okviru prozora Configuration (SL. 6-15). Pre svega izvesno je da se jedno od mirnih stanja u fazi mora specificirati kao poetno stanje sistema, odnosno stanje u kome e se sistem nai kada se kontroler pusti u rad. Teoretski bilo koje mirno stanje moe da se definie kao poetno pa su te opcije i na raspolaganju. Sa praktine take gledita logino je da sistem polazi iz stanja spreman, zavren ili zaustavljen.

SL. 5-11 KREIRANJE RUTINE STANJA

Pored toga, mogue je fazi pridruiti jo dve rutine od kojih prva Prestate slui za detekciju greaka, a druga Fault za reakciju na greke. Naime, rutina koja je definisana kao Prestate se izvrava svo vreme nezavisno od toga da li je stanje aktivno ili ne. Budui da se ona izvrava pre svakog skena stanja u okviru nje se moe formirati programski kod za proveru ispravnosti ureaja koje to stanje koristi. Druga rutina, namenjena reakcijama na detektovane otkaze se formira u skladu sa reakcijama koje je neophodno izvriti u sluaju pojedinih otkaza. Ovom rutinom se resetuju znaajne greke koje bi mogle da prouzrokuju prestanak rada kontrolera.

FAZE/78

Izborom opcije Inhibit Equipment Phase izvravanje faze se spreava, to moe da bude od koristi za vreme testiranja programa. Opcija Complete State Immediately If not Implemented ostavlja mogunost korisniku da zahteva da se stanje koje nije implementirano uvek preskae. Initial Step Index je opcija kojom se moe definisati poetna vrednost koraka u SFC dijagramu kojom se realizuje rutina faze. Ovu opciju ima smisla koristiti samo ako je neka od rutina stanja napisana u leder dijagramu ili struktuiranom tekstu i pri tome neka od naredbi koristi ovaj broja. Ukoliko je rutina napisana u SFC dijagramu broja se automatski podeava. Kontroler resetuje ovaj broja svaki put kada faza promeni stanje. Poslednje dve opcije namenjene su mogunosti korienja eksternog softvera (RSBizWare Batch) za upravljanje fazom.

5.2.4.

STRUKTURA PHASE

Svako kreiranje faze automatski povlai i formiranje odgovarajueg taga ija je struktura PHASE. Najvei broj lanova strukture se ne mogu programski menjati ve se samo koriste kao indikatori statusa. Jedan broj se moe i menjati programskim naredbama. Pregled i znaenje pojedinih lanova dati su u tabeli T. 5-1.
LAN STRUKTURE Ime.State Ime.Running Ime.Holding Ime.Restarting Ime.Stopping Ime.Aborting Ime.Resetting Ime.Idle Ime.Held Ime.Complete Ime.Stopped Ime.Aborted Ime.Substate Ime.Pausing Ime.Paused Ime.AutoPause Ime.StepIndex Ime.Failure Ime.UntilD Ime.Owner Ime.PendingRequest TIP DINT BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT BOOL BOOL BOOL DINT DINT DINT DINT DINT OPIS Svaki bit je indikator jednog stanja Indikator stanja (1 kad je stanje on) Indikator stanja (1 kad je stanje on) Indikator stanja (1 kad je stanje on) Indikator stanja (1 kad je stanje on) Indikator stanja (1 kad je stanje on) Indikator stanja (1 kad je stanje on) Indikator stanja (1 kad je stanje on) Indikator stanja (1 kad je stanje on) Indikator stanja (1 kad je stanje on) Indikator stanja (1 kad je stanje on) Indikator stanja (1 kad je stanje on) Svaki bit je indikator jednog podstanja Indikator podstanja (1 kada je u tom podstanju) Indikator podstanja (1 kada je u tom podstanju) Indikator podstanja (1 kada je u tom podstanju) Indikator trenutnog koraka u SFC dijagramu (moe da se menja programski) Indikator izuzetka za neku fazu (postavlja se sa PFL i resetuje sa PCLF) Unit ID jedne faze postavlja ga RSBizWare Batch Pravo kontrole nad izvrenjem faze (programski ili runo) Indikator spoljnjeg zahteva (svaki bit drugaiji zahtev) ispituje se pomou PXRQ

FAZE/79

Ime. DownLoadInputParameters Ime.DownLoadInputParametersSubset Ime. UPLoadInputParameters Ime.UPLoadInputParametersSubset Ime. DownLoadOutputParameterLimits Ime.AcquireResources Ime.ReleaseResources Ime.SendMessageToLinkedPhase Ime.SendMessageToLinkedPhaseAndWait Ime.ReceiveMessageFromLinkedPhase Ime.CancelMessageToLinkedPhase Ime.SendMessageToOperator Ime.ClearMessageToOperator Ime.GenerateESignature Ime.DownloadBatchData Ime.DownloadMaterialTrackDataContainerInUse Ime.DownloadContainerBindingPriority Ime.DownloadSufficientMaterial Ime.DownloadMaterialTrackDatabaseData Ime.UploadMaterialTrackDataContainerInUse Ime.UploadContainerBindingPriority Ime.UploadMaterialTrackDatabaseData Ime.AbortingRequest Ime.NewInputParameters Ime.Producing Ime.Standby

BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL

Indikator pojedinanog spoljnjeg zahteva Indikator pojedinanog spoljnjeg zahteva Indikator pojedinanog spoljnjeg zahteva Indikator pojedinanog spoljnjeg zahteva Indikator pojedinanog spoljnjeg zahteva Indikator pojedinanog spoljnjeg zahteva Indikator pojedinanog spoljnjeg zahteva Indikator pojedinanog spoljnjeg zahteva Indikator pojedinanog spoljnjeg zahteva Indikator pojedinanog spoljnjeg zahteva Indikator pojedinanog spoljnjeg zahteva Indikator pojedinanog spoljnjeg zahteva Indikator pojedinanog spoljnjeg zahteva Indikator pojedinanog spoljnjeg zahteva Indikator pojedinanog spoljnjeg zahteva Indikator pojedinanog spoljnjeg zahteva Indikator pojedinanog spoljnjeg zahteva Indikator pojedinanog spoljnjeg zahteva Indikator pojedinanog spoljnjeg zahteva Indikator pojedinanog spoljnjeg zahteva Indikator pojedinanog spoljnjeg zahteva Indikator pojedinanog spoljnjeg zahteva Indikator naputanja PXRQ naredbe Indikator novih parametara koji postavlja RSBizWare Batch softver Iniciranje producing stanja Iniciranje standby stanja

T. 5-1 IZGLED STURKTURE TIPA PHASE

5.3. FORMIRANJE PROGRAMSKOG KODA RUTINA STANJA 5.3.1. KREIRANJE ZAJEDNIKIH TAGOVA

Pre nego to se pristupi samom pisanju programskog koda neophodno je da se definiu tagovi koji e sluiti kao interfejs izmeu rutine koja predstavlja stanje u nekoj fazi i programa kojim se realizuju aktivnosti unutar tog stanja, kao to je to ilustrovano na Sl.

FAZE/80

5-12. Budui da treba da se koriste u vie od jednog programa ovi tagovi moraju da se specificiraju kao tagovi kontrolera.

SL. 5-12 ILUSTRACIJA FUNKCIJE INTERFEJS TAGOVA

Da bi odredili neophodni interfejs tagovi pogodno je da se saini spisak veliina koje faza treba da prenese odgovarajuem programu, kao i veliina koje od njega prima. U principu ulazi u program koji realizuje aktivnosti treba da budu Zahtev u pogledu naina rada Reference Komande kao to su "on", "off", "start", "stop" itd. Dozvole za rad Hijerar hija Izlazi koje program vraa fazi su Stanje u pogledu naina rada Upravljake veliine Indikator zavretka Alarmi Greke Ispravnost opreme Ukupne akumulirane vrednosti Imajui u vidu da e pojedine aktivnosti da se ponavljaju u vie faza pogodno je da se ovi tagovi definiu kao korisniki (User Defined Data Type).
PR. 5-5 ZADATAK Definisati interfejs tagove za fazu punjenje vodom iz primera Pr. 5-1. REENJE Imajui u vidu sve to je do sada reeno vidi se da faza punjenja vodom treba programu da prenosi signal za otpoinjanja rada Prog_zahtev i identifikaciju stanja u koje treba da ue State_komanda. Faza od programa prima indikatore o izvoenju programa Prog_radi, grekama Fault, stanju hardvera Hardver i stanju punjenja vode Stanje. Budui da su sve SL. 5-13 STRUKTURA KORISNIKOG TAGA OPSTI_INTERFEJS prikazan je na (Sl. 5-13). promenljive indikatori one se mogu definisati kao promenljive bulovskog tipa. Korisniki tag formiran po ovom principu

FAZE/81

SL. 5-14 KREIRANJE INTERFEJS TAGA ZA FAZU PUNJENJE VODOM Sada se na osnovu ovog taga moe formirati i tag za fazu punjenja vode Pun_vode_interfejs (Sl. 5-14). Potrebno je zapaziti da je za opseg vaenja taga odabran ceo kontroler. Rezultujua struktura taga data je na Sl. 5-15.

SL. 5-15 STRUKTURA TAGA PUN_VODE_INTERFEJS PR. 5-6 ZADATAK Definisati interfejs tagove za fazu smart traka iz primera Pr. 5-2. REENJE Polazei od funkcionalnih zahteva za rad trake, kao i od principa na kojima se realizuje upravljanje kretanjem, naredbe i indikatori koje treba da razmene faza smart traka i odgovarajua rutina mogu se specificirati prema tabeli T. 5-2. Svi podaci se grupiu u jedan korisniki tag. Neka

FAZE/82

to bude tag Konvejer_interfejs. Na osnovu njega Smart_traka_interfejs. Signali za programe (naredbe) ENABLE ABORT DISABLE FAULTRESET HOME STOP ACTIVATERUN ARMREGISTRATION ENABLEPRODUCT DISABLEPRODUCT ENABLECYCLING DISABLECYCLING

se onda definie interfejs za posmatranu fazu Indikatori uslova i stanja ENABLECYCLINGDONE FAULTSCROLL FAULTED DISABLECYCLINGDONE ENABLEDONE ABORTINGDONE DISABLEDONE FAULTRESETDONE HOMEDONE STOPPINGDONE ACTIVATERUNDONE SELECTED ENABLEPRODUCTDONE REGISTRATIONARMED DISABLEPRODUCTDONE

T. 5-2 PREGLED INTERFEJS TAGOVA ZA FAZU SMART TRAKA Nadalje, imajui u vidu da upravljanje svim pomeranjima na tri trake zahteva iste interfejs signale, logino je da se svi neophodni signali i indikatori sakupe u jedan korisniki definisan tag. U tabeli T. 5-3 je prikazana struktura taga Axis_Interface koji se koristi za sve tri trake. Signali za programe (naredbe) Indikatori uslova i stanja ENABLE ABORT STATE AXISSELECTED DISABLE STOP ON GEARACTIVE HOME ACTIVATERUN OK CAMACTIVE AUTORUN AUTO MOVEACTIVE RESETFAULT JOGGING HOMEDONE NOMOTION RUNDONE HOMED T. 5-3 KORISNIKI TAG AXIS_INTERFACE ZA UPRAVLJANJE KRETANJEM Ovaj korisniki tag se sada moe upotrebiti za upravljanje pojedinim osama kao to je to prikazano na Sl. 5-16.

SL. 5-16 INTERFEJS TAGOVI

5.3.2.

FORMIRANJE

KODA ZA IZVRAVANJE STANJA FAZE

Kao to je ve reeno za programiranje rutine faze moe se koristiti bilo koji od raspoloivih programskih jezika. Ipak, u najveem broju sluajeva zbog prirode odvijanja same faze pogodno je koristiti SFC dijagram. Formiranje ovog programa treba da se vri zajedno sa formiranjem programa koji e da upravlja aktivnostima unutar faze. To znai da se programski kod za izvravanje aktivnosti jednog stanja faze sastoji iz dve programske celine: odgovarajue rutine stanja faze i programa koji izvrava aktivnosti koje su specificirane u dijagramu stanja za to stanje.
PR. 5-7 ZADATAK Definisati rutinu za stanje Running faze punjenje vodom iz primera Pr. 5-1, kao i odgovarajui program koji realizuje aktivnosti..Pr. 5-1

REENJE
Za realizaciju aktivnosti kreiran je periodini zadatak Aktuatori_vode i u okviru njega FB program Voda. Rutina faze razvijena je kao SFC dijagram. Oba programa prikazana su na Sl. 5-17.

FAZE/83

Rutina "Running" Faze Punjenje vodom


... cekaj_pocetak Ceka da program voda postavi indikator da je poceo sa radom S ... Preuzmi_programsku_kontrolu

Pun_vode_interfejs.Prog_zahtev:=1;

1
...

preiuzeta_programska_kontrola

Pun_vode_interfejs.Prog_radi

2
... Pocni_punjenje Punjenje traje dok rezervoar nije pun N ... Zapocni_punjenje

Pun_vode_interfejs.State_komanda:=1;

3
...

Rezervoar_je_pun

Pun_vode_interfejs.Stanje

... signaliziraj_kraj_stanja

P1

...

gotovo_punjenje

PSC();

Program "Voda"
Ako je dat zahtev za pocetak punjenja i ako je nivo nizak otvori ventil i startuj pumpu kad se nivo dostigne ventil se zatvara i pumpa zaustavlja Ventil ulazi u stanje 1 kada je prekidac ventil_otvoren off, a ventil_zatvoren on

uslov_punjenja 0 Pun_vode_interfejs.State_komanda BAND ... Ventil 0 In1 0 nivo_nizak In2 Out D2SD

Boolean And

...

Programska komanda definise izlaz za ventil 0

Discrete 2-State Device ProgCommand FB0 Out 0 Device0State 0 FB1 Device1State 0 ProgProgReq ProgOper Programska komanda definise izlaz za pumpu otvori_ventil

0 ventil_otvoren 0 ventil_zatvoren

0 Pun_vode_interfejs.Prog_zahtev stanje_nivoa_vode Pumpa_za_vodu D2SD 0 pumpa_nije_u_pogonu 0 pumpa_u_pogonu ProgCommand State1Perm FB0 FB1 ProgProgReq Pumpa ulazi u stanje 1 kada je pumpa_nije_u_pogonu on pumpa_u_pogonu off i ventil u stanju 1 Out 0 Device0State 0 Device1State 0 ProgOper BAND ... Pun_vode_interfejs.Prog_radi 0 In1 In2 Out Kada su i pumpa i ventil primili zahtev za preuzimanje programske kontrole program moze da pocne da radi program_startovan Discrete 2-State Device 0 In2 Kada su i ventil i pumpa u stanju 1 rezervoar je pun ... BAND ... pumpa_on

Boolean And 0 In1 Out Pun_vode_interfejs.Stanje

Boolean And

SL. 5-17 PROGRAMSKI KOD ZA REALIZACIJU RUNNING STANJA FAZE PUNJENJE VODOM

FAZE/84

PR. 5-8 ZADATAK Definisati rutinu stanja "Resetting" faze Smart traka iz primera Pr. 5-2, kao i odgovarajui program koji realizuje aktivnosti za to stanje.Pr. 5-1

REENJE
Za realizaciju aktivnosti Ressetting stanja kreiran je periodini zadatak Izvravanje_aktivnosti i u okviru njega leder program Resetovanje_greaka. Resseting rutina faze razvijena je kao SFC dijagram. Deo rutine faze i leder program koji obavlja zahtevane aktivnosti prikazani su na Sl. 5-18.

Rutina Resetting faze Smart_traka


... pocetak_resetovanja P1 ... Resetuj_greske

Smart_traka_interfejs.FaultReset:=1;
P0 ... resetuj_signal_za_reset_gresaka

Smart_traka_interfejs.FaultReset:=0;
... cekanje_kraja_resetovanja

Smart_traka_interfejs.FaultResetDone
P1 Omoguci_kretanje_motora

... omoguci_kretanje

...

Smart_traka_interfejs.Enable:=1;
P0 ... Resetuj_omogucavanje_kretanja_motora

Smart_traka_interfejs.Enable:=0;

...

cekanje_da_se_izvrsi_enable

Smart_traka_interfejs.EnableDone

Program "Resetovanje greaka"

SL. 5-18 PROGRAMSKI KOD ZA REALIZACIJU RESSETING STANJA FAZE SMART TRAKA

5.4. UPRAVLJANJE IZVRAVANJEM FAZA I STANJA 5.4.1. VLASNITVO NAD FAZOM

U principu stanja unutar jedne faze menjaju se u skladu sa dijagramom stanja i aktivnostima koje treba da se obave u pojedinom stanju. Promena ovih stanja moe da se

FAZE/85

izvri pod programskom kontrolom pomou odgovarajuih naredbi RSLogix softvera. Pored toga, promena moe da se vri pomou posebnog softverskog alata RSBizWare Batch. Ovaj alat se aktivira pomou posebne programske naredbe i onda on preuzima kontrolu nad izvravanjem stanja. Konano kroz stanja se moe prolaziti i runim komandama koje se zadaju u monitoru stanja. Ovo je posebno pogodno u fazi instalacije i testiranja aplikacije. Postojanje razliitih mogunosti za upravljanje stanjima zahtevalo je da se uspostavi pojam "vlasnitva" (ownership) nad kontrolom stanja. Vlasnitvo se specificira aktiviranjem monitora faza koji otvara dijagram stanja (Sl. 5-19). Ukoliko je aplikacija instalirana u kontroleru, ovaj dijagram je hiperaktivan, to znai da se pritiskom na odgovarajue komande prelazi iz stanja u stanje. Pri tome, pre nego to se aktivira dijagram mora se odabrati vlasnik. To moe biti trenutna aplikacija, neka druga aplikacija koja ima mogunost upravljanja fazama ili korisnik. Kada korisnik preuzme vlasnitvo nad stanjima veina programskih naredbi ne moe da se izvri.

SL. 5-19 POZIVANJE MONITORA FAZE I OTVARANJE DIJAGRAMA STANJA

5.4.2.

NAREDBE ZA RAD SA FAZAMA

Naredbe za upravljanje stanjima faza mogu da se formiraju u leder dijagramima i struktuiranom tekstu. U leder programima u pre i postskenu izlazni uslov se resetuje, dok u struktuiranom tekstu nema nikakve akcije.

FAZE/86

PRELAZ IZMEU STANJA PSC Phase Stat e Complete Ovom naredbom prekida se radno stanje u kome se sistem nalazi i on prelazi u odgovarajue mirno stanje. (Npr. iz stanja PSC PSC ( ); running u stanje complete). Naredbom se ne prekida sken ciklus, ve se odmah po zavretku skena ulazi u mirno stanje i postavlja odgovarajui indikator u pridruenoj phase strukturi (Ime.state[n] i u odgovarajuoj bulovskoj promenljivoj). Po logici stvari ova naredba mora da bude poslednja u svakoj rutini radnog stanja1.
Leder dijagram Struktuirani tekst

PCMD - Equipment Phas e Command


Leder dijagram
PCMD Equipment Phase Command Phase Name Grejanje_vode Command Restart Result kodiranaporuka

Struktuirani tekst

PCMD(Grejanje_vode, Restart, kodiranaporuka);

Ovom naredbom se sistem iz mirnog stanja (ili podstanja) prebacuje u neko od radnih stanja (ili podstanja) u koje je dozvoljen prelaz na osnovu dijagrama stanja. Ukoliko se naredbom zahteva prelaz u neko stanje koje nije dozvoljeno po dijagramu stanja naredba se nee izvriti. Naredbom se specificira ime faze (PhaseName) na koju se naredba odnosi kao i stanje u koje se eli ui (Command). U skladu sa dijagramom stanja dozvoljene komande su Start prelaz iz stanja spreman u stanje radi Stop - prelaz iz bilo kog stanja u stanje zaustavljanje Reset prelaz iz stanja zaustavljen ili zavren u stanje resetovanja Hold prelaz iz stanja radi ili stanja restartovanja u stanje hold Restart prelaz iz stanja zaustavljen u stanje restartovanje Abort prelaz iz bilo kog stanja u stanje naputen Kao rezultat (Result) postavlja kodirana informacija DINT tipa o tome da li je zahtev ispunjen i ako nije ta je uzrok tome. Imajui u vidu da se ovom naredbom menja stanje, logino je da ona ne moe da bude izvrena vie od jedanput u jednom skenu. Da bi se to obezbedilo pogodno je vezati njeno izvoenje ne za uslov, ve za uzlaznu ili silazni ivicu. Da bi se naredba izvrila program u kome se ona nalazi mora imati vlasnitvo nad fazom. POVR Equipment Phas e Override
Leder dijagram
POVR Equipment Phase Override Command Phase Name Mesanje Command Abort Result kodiranaporuka

Struktuirani tekst

POVR(Mesanje, Abort, kodiranaporuka);

Ovom naredbom izdaje se Hold, Stop ili Abort naredba (Command) u okviru faze (PhaseName). Naredba mora da se nalazi u rutini faze. Razlika izmeu ove i PCMD naredbe je u tome to e se POVR naredba izvriti nezavisno od toga ko ima vlasnitvo nad fazom. Naime, ukoliko je neophodno da se proces zaustavi onda to mora biti najvii prioritet.

To je razlog zato se rutina Running faze punjenja vodom (Sl. 5-17) zavra ovom naredbom.

FAZE/87

R E G U L I S A N J E V L A S N I TV A PATT Attach to Equipment Phase


Leder dijagram
PATT Attach to Equipment Phase Phase Name Mesanje Result spoljni

Struktuirani tekst PATT(Mesanje, spoljni);

Ovom naredbom se preuzima vlasnitvo nad fazom ime se spreava neki drugi program da komanduje promenom stanja. Kao rezultat se dobija kodirana poruka o uspehu operacije. PDET Det ach f rom Equipment Phase
Leder dijagram
PDET Detach from Equipment Phase Phase Name smart_traka

Struktuirani tekst PDET(smart_traka);

Ovom naredbom se ukida preuzeto vlasnitvo nad upravljanjem fazom. D E TE K C I J A I T R E T M A N G R E A K A PFL - Equipment Phase Failure
Leder dijagram
kodgreske PFL

Struktuirani tekst PFL(kodgreske);

Ovom naredbom moe da se postavi kod greke do koje je dolo u nekoj fazi. Kod se definie preko odgovarajueg taga.

PCLF - Equipment Phase Clear Failure Ovom naredbom se resetuje kod greke u fazi .
Leder dijagram
PCLF Equipment Phase Clear Failure Phase Name Praznjenje_rezervoara

Struktuirani tekst PCLF(Praznjenje_rezervoara);

PRIVREMENI PREKID RADA PPD - Equipment Phase Paused


Leder dijagram
PPD

Struktuirani tekst PPD( );

Postavljanje privremenih programa radi lakeg testiranja.

pauzi

logici

SPOLJNO UPRAVLJANJE PXRQ - Equipment Phase Ext ernal Request


Leder dijagram
PXRQ Equipment Phase External Request Phase Instruction spoljnizahtev External Request Download Input Parameters Data Value zahtev[0] EN ER IP PC

Struktuirani tekst PXRQ(spoljnizahtev, DownloadINputParameters, zahtev[0]);

Ovom naredbom se inicira komunikacija sa RSBizBatch softverom. Naredbom se mora definisati prvi operand - tag posebne struktura PhaseInstruction drugi operand zahtev koji se upuuje ime (na raspolaganju je odreeni broj striktno kodiranih zahteva) trei operand parametri zahteva - polje DINT tipa

FAZE/88

PRNP - Equipment Phase New Parameter s Resetuje NewINputParameters bit. Leder dijagram Struktuirani tekst
PRNP

PRNP( );

5.4.3.

DETEKCIJA GREAKA

Samo se po sebi razume da nema nekog opteg pravila u pogledu detekcije greaka i reakcije na greke. U principu svi delovi opreme koji mogu da otkau treba da se periodino proveravaju i da se o tome operator izvetava. Za ovu svrhu se najee koristi prestate rutina, koja e ako se u toku rada detektuje otkaz prouzrokovati prekid rada i prelaz u stanje ekanja ili zaustavljanja.
PR. 5-9 Na Sl. 5-20 je prikazana prestate rutina faze punjenje_vodom koja proverava stanje interfejs taga vezanog za hardver sve vreme dok je faza u stanju radi i daje komandu za prelaz u stanje ekanje ukoliko se detektuje neki kvar. Sam interfejs tag se postavlja u zasebnoj rutini u kojoj se kao ulazi dovode sve informacije o grekama koje se dobijaju sa ulaznih i izlaznih modula. Ove informacije definisane su kao alias tagovi.

BOR_01 BOR ...

Boolean Or 0 ventil_otvoren_fault 0 ventil_zatvoren_fault 0 otvori_ventil_fault 0 pumpa_u_pogonu_fault 0 pumpa_nije_u_pogonu_fault 0 pumpa_on_fault In6 In5 In4 In3 In2 In1 Out 0 Pun_vode_interfejs.Hardver

SL. 5-20 DETEKCIJA GREKE U PRESTATE RUTINI

FAZE/89

5.4.4.

PROGRAMIRANJE REALIZACIJE KOMPLETNE FUNKCIJE

Budui da je cela funkcija podeljena u niz faza neophodno je da se one odvijaju u utvrenom redosledu. U tom cilju neophodno je da se formira poseban program koji ne dozvoljava otpoinjanje sledee faze pre nego to se prethodna zavri odnosno ue u stanje zavren (complete). Pri tome se, po pravilu, istovremeno i daje komanda za resetovanje faze koja je zavrena.
PR. 5-10 Na Sl. 5-21 je prikazan program koji realituje sve faze pravljenja smee iz primera Pr. 5-1.
... Voda_idle Rad otpocinje na komandu operatera tag "operator" je alias za digitalni ulaz

...

pocetak

operator

... sipaj_vodu

P1

...

Action_000

PCMD(Punjenje_vodom, Start,0);
P0 ... Action_001

Kad operator da komandu ulazi se u korak "sipaj_vodu" koji otpocinje sa komandom "start" u fazi "punjenje_vodom"; ova komanda uvodi fazu u stanje radi, odnosno aktivira rutinu Running; kada je rezervoar pun, poslednja naredba rutine Running (PSC) ga prebacuje u stanje Zavrsen (complete). Kada je taj uslov ispunjen izlazi se iz koraka "sipaj_vodu" i pri izlasku daje komanda "reset" kojom se ova faza vraca u "idle" stanje (spreman)

PCMD(Punjenje_vodom, Reset,0);
... rezervoar_pun

Punjenje_vodom.complete

... grejanje

P1

...

Action_002

PCMD(Grejanje_vode, Start,0);
P0 ... Action_003

PCMD(Grejanje_vode, Reset,0);

...

voda_zagrejana

Grejanje_vode.complete

... sastojci

P1

...

Action_004

PCMD(Dodavanje_sastojaka, Start,0);
P0 ... Action_005

PCMD(Dodavanje_sastojaka, Reset,0);
... sastojci_ubaceni

Dodavanje_sastojaka.complete

... mesalica

P1

...

Action_006

PCMD(Mesanje, Start,0);
P0 ... Action_007

PCMD(Mesanje, Reset,0);

...

smesa_promesana

Dodavanje_sastojaka.complete

... praznjenje

P1

...

Action_008

PCMD(Praznjenje_rezervoara, Start,0);
P0 ... Action_009

PCMD(Praznjenje_rezervoara, Reset,0);
... kraj

Praznjenje_rezervoara.complete

Stop_000

SL. 5-21 UPRAVLJANJE PROIZVODNJOM SMEE

NAREDBE/91

6. Programske naredbe za realizaciju algoritama


6.1. BIT NAREDBE
Sve bit naredbe imaju po jedan operand i on mora biti tipa BOOL.

6.1.1.

NAREDBE USLOVA

Naredbama uslova ispituje se stanje operanda i u zavisnosti od uslova naredbe postavlja izlazni uslov na istinit ili neistinit (1 ili 0). Bit naredbe su definisane samo za leder programiranje. Meutim, efekat koji se postie bit naredbama moe se ostvariti i u okviru struktuiranog teksta korienjem konstrukta IF... THEN. U tom sluaju, ukoliko je uslov ispunjen izvrava se naredba koja sledi iza uslova. Ovo je ekvivalentno situaciji u kojoj se u leder dijagramu posle naredbe uslova nalazi naredba akcije. Ukoliko se eli doslovno ekvivalentiranje ovih naredbi onda se konstruktom IF...THEN...ELSE definisati izlazni uslov leder naredbe. Naredbe uslova date su u tabeli T. 6-1. Simbol n predstavlja istinosnu vrednost koja se dodeljuje naredbi, odnosno izlazni uslov (rung-condition-out), pri tome je predpostavljeno da je ulazni uslov (rung-condition-in) istinit.
NAZIV LEDER PROGRAM SIMBOL LOGIKA STRUKTUIRANI TEKST IF a THEN n :=1; ELSE n :=0; END_IF; IF NOT a THEN n :=1; ELSE n :=0; END_IF;

a=0n =0
Examine If Closed (XIC)
a

a =1 n =1 Pre -sken: n = 0 Post-sken: n = 0 a = 0 n =1 a =1 n = 0 Pre-sken: n = 0 Post-sken: n = 0

Examine If Open (XIO)

c /

T. 6-1 BIT NAREDBE USLOVA

6.1.2.

NAREDBE AKCIJE
NAZIV LEDER PROGRAM LOGIKA STRUKTUIRANI TEKST

SIMBOL
a

Otput Energize (OTE)

Output Latch (OTL)

a L

Output Unlatch (OTU)

a U

uslov = 1 a = 1; n = 1 uslov = 0 a = 0; n = 0 Pre-sken: a=0, n = 0 Post-sken: a=0, n = 0 uslov = 1 a = 1; n = 1 uslov = 0 a se ne menja ; n = 0 Pre-sken: a-ne menja se, n = 0 Post-sken: a-ne menja se, n = 0 uslov = 1 a = 0; n = 1 uslov = 0 a se ne menja ; n = 0 Pre-sken: a-ne menja se, n = 0 Post-sken: a-ne menja se, n = 0
T. 6-2 BIT NAREDBE AKCIJE

a [:=] uslov;

IF uslov THEN a :=1; END_IF; IF uslov THEN a :=0; END_IF;

Naredbama akcije dodeljuje se vrednost operandu. Nain na koji se izvrava naredba akcije zavisi od istinosne vrednosti ulaznog uslova. U tabeli T. 6-2 u kojoj je dat

NAREDBE/92

pregled naredbi akcije ova vrednost je oznaena kao uslov, dok je izlazni uslov ranga oznaen sa n. Bit naredbe nisu definisane za strukturirani tekst, ali se odgovarajuim programskim naredbama moe postii isti efekat (T. 6-2).

6.1.3.

NAREDBE VEZANE ZA UZLAZNU ILI SILAZNU IVICU

Ova grupa bit naredbi je aktivna ukoliko se uslov, ili ulaz u blok menja sa neistinit na istinit (uzlazna ivica) ili sa istinit na neistint (silazna ivica). Naredbe se mogu realizovati u sva tri programska jezika. Leder naredbe Sve naredbe (T. 6-3) koriste interni bit (storage bit), pomou koga se detektuje nastupanje uzlazne ili izlazne ivice. Ovaj bit se u leder programu mora definisati kao tag tipa BOOL.
LEDER PROGRAM NAZIV LOGIKA SIMBOL

u = 1 a = 0 n = 1; a = 1 u = 1 a = 1 n = 0; a = 1
One Shot (ONS)

One Shot Rising (OSR)

One Shot Falling (OSF)

u = 0 a = 0; n = 0 Pre-sken: n = 0, a=1 Post-sken: n = 0, a=0 u = 1 a = 0 n = 1; b = 1; a = 1 u = 1 a = 1 n = 0; b = 1; a = 1 u = 0 n = 0; b = 0; a = 0 Pre-sken: n = 0, b=0, a=1, Post-sken: n = 0, b-ne menja se, a=0 u = 0 a = 0 n = 0; b = 0; a = 0 u = 0 a = 1 n = 0; b = 1; a = 0 u = 1 n = 1; b = 0;a = 1 Pre-sken: n = 0, b=0, a=0 Post-sken: izvodi se kao silazna ivica

a ONS

OSR One Shot Rising Storage Bit Output Bit

a b

SB OB

OSF One Shot Falling Storage Bit Output Bit

a b

SB OB

T. 6-3 BIT NAREDBE LEDER PROGRAMA KOJE SU AKTIVNE NA UZLAZNU ILI SILAZNU IVICU

Funk cijsk i blok i struk turirani tek st Naredbama za detekciju uzlazne i izlazne ivice u okviru funkcijskih blokova i struktuiranog teksta pridruuje se tag koji je struktura tipa FBD_ONESHOT. Ona ima etiri lana BOOL tipa.
LAN STRUKTURE u_ivica.EnableIn u_ivica.InputBit u_ivica.EnableOut u_ivica.OutputBit OPIS Ima efekat samo u FB programu; ako je bit jednak 0, blok ne obrauje ulazni bit, i .EnableOut bit se postavlja na 0 Ulaz u blok, ekvivalentan uslovu kod ledera (u) Ima vrednost 1, ako je naredba izvrena Izlaz iz bloka, ekvivalentan izlazu kod ledera (b) T. 6-4 LANOVI STRUKTURE FBD_ONESHOT

U osnovi ove naredbe se izvravaju na isti nain kao i kod leder dijagrama. Razlika je samo u realizaciji, odnosno u tome to ovde nema potrebe da se posebno specificira storage bit, ve se koristi injenica da je ulazni bit deo strukture pa se uzlazna ili silazna ivica detektuju pomou logike "I" operacije izmeu prethodne (upamene) vrednosti

NAREDBE/93

ulaznog bita i trenutne vrednosti. Da bi se omoguilo poetno poreenje pri prvom izvoenju ovih naredbi prethodna vrednost ulaznog bita (InputBit)n-1 se postavlja u prvom skeniranju i prvom izvoenju ovih naredbi.
NAZIV LOGIKA
.InputBit = 1 (InputBit)n 1 = 0 OutputBit = 1

FB I TEKST
u_ivica OSRI ...

One Shot Rising (OSRI)

.InputBit = 0 (InputBit)n1 = 1 OutputBit = 0 U pre i post skenu ne izvrava se nikakva akcija U prvom prolazu (InputBit)n-1 =1

One Shot Rising with Input 0 InputBit OutputBit

OSRI (u_ivica);
s_ivica

.InputBit = 0 (InputBit)n 1 = 1

OutputBit = 1

OSFI

...

One Shot Falling (OSFI)

.InputBit = 1 (InputBit)n1 = 0 OutputBit = 0 U pre i post skenu ne izvrava se nikakva akcija U prvom prolazu (InputBit)n-1 =0

One Shot Falling with Input 0 InputBit OutputBit

OSFI (s_ivica); T. 6-5 BIT NAREDBE TEKST I FB PROGRAMA KOJE SU AKTIVNE NA UZLAZNU ILI SILAZNU IVICU PR. 6-1 Na slici prikazane su tri programske realizacije kojima se vrednost promenljive b postavlja na 1 kada se detektuje uzlazna ivica u promeni signala u.
u 4 OSR One Shot Rising Storage Bit Output Bit

a b

SB OB

u_ivica OSRI ...

One Shot Rising with Input 0 u InputBit OutputBit 0 b

u_ivica.InputBit :=u; OSRI(u_ivica); b =u_ivica.OutputBit;

SL. 6-1 DETEKCIJA UZLAZNE IVICE

6.2. ASOVNIK I BROJA 6.2.1. PRINCIP REALIZACIJE ASOVNIKA


asovnik se realizuje softverski, to znai da za sve asovnike mora da postoji neki zajedniki generator takta koji meri realno vreme. Svakom softverskom asovniku pridruen je memorisjki prostor u koji se u vreme skeniranja asovnika upisuje trenutno vreme koje se dobija tako to se prethodno zabeleenom vremenu (ACC) dodaje razlika vremena koje pokazuje asovnik realnog vremena i vremena u kome je asovnik poslednji put skeniran. Generator takta meri vreme u mili sekundama. On radi kao broja sa duinom od 22 bita, to znai da je maksimalno vreme koje moe da se upie 69 minuta, pre nego to ponovo zapone brojanje od nule. Otuda je, za ispravan rad asovnika, neophodno da se on skenira u intervalima vremena koji nisu vei od 69 minuta.

NAREDBE/94

U svim programskim jezicima asovniku se pridruuje odgovarajua struktura i to TIMER za leder program (T. 6-6), odnosno FBD_TIMER za funkcijski blok i struktuiran tekst (T. 6-7).
LAN STRUKTURE Ime_cas.PRE Ime_cas.ACC Ime_cas.EN Ime_cas.TT Ime_cas.DN TIP DINT DINT BOOL BOOL BOOL Zadano vreme, izraeno u ms Trenutno izmereno (akumulirano) vreme, izraeno u ms Bit koji dobija vrednost ulaznog uslova naredbe Ima vrednost 1 kada asovnik radi (Timer timing) Postavlja se u zavisnosti od naredbe i odnosa zadanog i izmerenog vremena (Done asovnik je zavrio rad) T. 6-6 LANOVI STRUKTURE TIMER LAN STRUKTURE Ime_cas_FB.EnableIn Ime_cas_FB.TimerEnable Ime_cas_FB.PRE Ime_cas_FB.Reset Ime_cas_FB.Enableout Ime_cas_FB.ACC Ime_cas_FB.EN Ime_cas_FB.TT Ime_cas_FB.DN Ime_cas_FB.Status Ime_cas_FB.InstructFault Ime_cas_FB.Presetlnv TIP BOOL BOOL DINT BOOL BOOL DINT BOOL BOOL BOOL DINT BOOL BOOL OPIS Ako je bit jednak 0, blok se ne obrauje (nema efekta kod tekst programa) Ulazni bit, u zavisnosti od vrednosti asovnik radi ili ne radi Zadano vreme, izraeno u ms Ulazni bit, ako je 1 asovnik se resetuje Ako je 1 naredba je ispravno izvrena Trenutno izmereno (akumulirano) vreme, izraeno u ms Bit koji dobija vrednost jednaku .TimerEnable bitu Ima vrednost 1 kada asovnik radi (Timer timing) Postavlja se u zavisnosti od naredbe i odnosa zadanog i izmerenog vremena (Done asovnik je zavrio rad) Indikatori statusa bloka Ako je 1, dolo je do greke u izvoenju naredbe Ako je 1, zadana vrednost (.PRE) je neispravna OPIS

T. 6-7 LANOVI STRUKTURE FBD_TIMER

6.2.2.

NAREDBE ZA RAD ASOVNIKA

Svi programski jezici omoguavaju korienje tri vrste asovnika. Timer On Delay meri vreme dok je ulazni uslov (bit) istinit; restuje se im uslov postane neistinit, postavlja DN bit na 1 kad dostigne zadano vreme (Sl. 6-2). Timer OFF Delay meri vreme dok je ulazni uslov (bit) neistinit; restuje se im uslov postane neistinit, resetuje DN bit kad izmeri zadano vreme (Sl. 6-3). Retentive Timer On meri vreme dok je ulazni uslov istinit; kada uslov postane neistinit, pamti izmereno vreme i nastavlja sa merenjem kada uslov ponovo postane istinit, postavlja DN bit kad izmeri zadano vreme (Sl. 6-4). Pri definiciji asovnika, neophodno je dodeliti ime tagu, kao i definisati zadanu vrednost (PRE). Za razliku od TON i TOF naredbe kod leder programa u okviru kojih se asovnik automatski resetuje kad je uslov neistinit, za resetovanje RTO asovnika mora se koristiti RES naredba. Kod funkcijskih blok dijagrama resetovanje se vri pomou posebnog

NAREDBE/95

ulaznog bita (Reset).


TON Timer On Delay Timer Ime_cas Preset 4000 Accum 0

EN DN

Pre-sken: EN, TT, DN, ACC i izlazni uslov se resetuju, Post-sken: izlazni uslov se resetuje

Ime_cas_FB TONR ...

Timer On Delay with Reset 0 TimerEnable PRE Reset ACC 0 DN

Pre i post sken ne menjaju bitove TONR (ime_cas); SL. 6-2 TON NAREDBA SIMBOL I ALGORITAM
TOF Timer Off Delay Timer Ime_cas_1 Preset 5000 Accum 0

EN DN

Pre-sken: EN, TT, DN, i izlazni uslov se resetuju; ACC=PRE Post-sken: izlazni uslov se resetuje
Ime_cas_FB_1 TOFR ...

Timer Off Delay with Reset 0 TimerEnable PRE Reset ACC 0 DN

Pre i post sken ne menjaju bitove

TOFR(ime_cas);

SL. 6-3 TOF NAREDBA SIMBOL I ALGORITAM

NAREDBE/96

RTO Retentive Tim er On Timer Ime_cas_2 Preset 2000 Accum 0

EN DN

Pre-sken: EN, TT, DN, i izlazni uslov se resetuju, ACC se ne menja Post-sken: izlazni uslov se resetuje
Ime_cas_FB_2 RTOR ...

Retentive Timer On with Reset 0 TimerEnable PRE Reset ACC 0 DN

Pre i post sken ne menjaju bitove

RTOR(ime:cas);
SL. 6-4 RTO NAREDBA SIMBOL I ALGORITAM

Ukoliko se eli koristiti asovnik u struktuiranom tekstu, on se poziva naredbom oblika kod(ime); pri emu je kod jedna od naredbi funkcijskih blokova. Samo se po sebi razume, da se posebnim naredbama mora zadati PRE vrednost, ispitivati stanje asovnika.

6.2.3.

BROJAI

Brojai su takoe realizovani softverski i to tako to broje samo uzlazne ivice ulaznog uslova u rangu, odnosno signala na ulazu u blok. Pri tome, broja moe da broji unapred (poveava akumuliranu vrednost) i unazad (smanjuje akumuliranu vrednost). Pri tome, broja nastavlja da broji i kada se dostigne zadana vrednost, to znai da se, ako se eli brojanje od poetka, mora resetovati. Ova operacija se kod leder naredbi obavlja pomou RES naredbe, a kod FB naredbi pomou odgovarajueg ulaznog signala. Ukoliko se broja ne resetuje on e, ako broji unapred, kada dostigne maksimalnu vrednost, da nastavi da broji od minimalne vrednosti. Isto tako, kod brojanja unazad, broja e kada pree minimalnu vrednost nastaviti da broji od maksimalne (Sl. 6-5).

SL. 6-5 KRUNI RAD BROJAA

U programskoj realizaciji brojau se pridruuje odgovarajua struktura i to COUNTER za leder program (T. 6-8), odnosno FBD_COUNTER za funkcijski blok i struktuiran tekst (T. 6-9).

NAREDBE/97

LAN STRUKTURE Ime_brojac.PRE Ime_brojac.ACC Ime_brojac.CU Ime_brojac.CD Ime_brojac.DN Ime_brojac.OV Ime_brojac.UN

TIP DINT DINT BOOL BOOL BOOL BOOL BOOL

OPIS Zadani broj Trenutno izbrojane uzlazne ivice Broja unapred; bit dobija vrednost ulaznog uslova naredbe Broja unazad; bit dobija vrednost ulaznog uslova naredbe Done broja je izbrojao zadanu vrednost Ima vrednost 1 kada broja premai maksimalnu vrednost Ima vrednost 1 kada broja premai minimalnu vrednost T. 6-8 LANOVI STRUKTURE COUNTER

LAN STRUKTURE Ime_brojac_FB.EnableIn Ime_brojac_FB.CUEnable Ime_brojac_FB.CDEnable Ime_brojac_FB.PRE Ime_brojac_FB.Reset Ime_brojac_FB.Enableout Ime_brojac_FB.ACC Ime_brojac_FB.CU Ime_brojac_FB.CD Ime_brojac_FB.DN Ime_brojac_FB.OV Ime_brojac_FB.UN

TIP BOOL BOOL BOOL DINT BOOL BOOL DINT BOOL BOOL BOOL BOOL BOOL

OPIS Ako je bit jednak 0, blok se ne obrauje (nema efekta kod tekst programa) Ulazni bit, kod brojaa unapred Ulazni bit, kod brojaa unazad Zadani broj Ulazni bit, ako je 1 broja se resetuje Ako je 1 naredba je ispravno izvrena Trenutno izbrojane uzlazne ivice Broja unapred; bit dobija vrednost ulaznog uslova naredbe Broja unazad; bit dobija vrednost ulaznog uslova naredbe Done broja je izbrojao zadanu vrednost Ima vrednost 1 kada broja premai maksimalnu vrednost Ima vrednost 1 kada broja premai minimalnu vrednost

T. 6-9 lanovi strukture FBD_COUNTER


Ime_brojac_FB CTUD

CTU Count Up Counter Preset Accum CU Ime_brojac 78 0 DN

...

CTD Count Down Counter Ime_brojac_1 Preset 0 Accum 200

CD DN

Count Up/Down 0 CUEnable CDEnable PRE Reset ACC 0 DN

Pre-sken: CU=1, izlazni uslov se resetuje Post-sken: izlazni uslov se resetuje

Pre-sken: CD=1, izlazni uslov se resetuje Post-sken: izlazni uslov se resetuje

Pre i post sken ne menjaju bitove

CTUD(ime_brojaca);

SL. 6-6 SIMBOLI NAREDBE BROJAA

Oba brojaa rade na taj nain to kada je ulazni uslov (ili ulazni bit) jednak 1, ispituju stanje CU, odnosno CD bita. Ukoliko je bit 0, akumulirana vrednost se poveava, odnosno smanjuje. Zatim se bit postavi na 1 i ostaje na toj vrednosti sve dok je ulazni uslov istinit. Kada je ulazni uslov neistinit CU, odnosno CD bit se resetuje. Kod brojaa unapred DN bit se postavlja kada je ACCPRE, a kod brojaa unazad kada je ACCPRE.

NAREDBE/98

6.3. NAREDBE ZA POREENJE


Sa izuzetkom jedne naredbe za poreenje (CMP) koja je definisana samo za leder program, sve ostale postoje i za leder i za funkcijske blokove. U principu, ove naredbe nisu definisane za struktuirani tekst, ali se mogu realizovati pomou relacionih izraza. Naredbe za poreenje pripadaju kategoriji uslova. Rezultat poreenja postavlja izlazni uslov ranga, odnosno odreuje izlazni signal iz FB bloka.

6.3.1.

CMP POREENJE POMOU ALGEBARSKOG IZRAZA LEDER PROGRAM

CMP naredba se izvrava kada je ulazni uslov istinit. U okviru naredbe ispituje se istinosna vrednost relacije navedene kao Expression. Rezultat ispitivanja je izlazni uslov ranga. Ukoliko u izrazu nema relacionog operatora izraz se poredi sa nulom. Ako je SL. 6-7 CMP NAREDBA Izraz 0, izlazni uslov = 1; Izraz = 0, izlazni uslov = 0 Kada je ulazni uslov neistinit, izlazni uslov se postavlja na nulu. U pre i post skenu izlazni uslov se postavlja na 0.
CM P Compare Expression x+y>z

6.3.2.

POREENJE LEDER PROGRAM I FUNKCIJSKI BLOKOVI

Grupa naredbi za poreenje ima po dva operanda i relaciju koja se izmeu njih ispituje. Kod leder programa operandi se navode direktno unutar bloka naredbe i mogu biti SINT, INT, DINT, REAL, String kod_FB EQU tipa. Kod funkcijskog bloka operandi Equal EQU ... ime_1 Source A su ulazni signali tipa REAL. Equal 0 Rezultat je izlazni uslov, 0 Source B ime_2 odnosno izlazni bit koji ima vrednost SourceA Dest 0 istinit ili neistinit. SourceB Tag funkcijskog bloka je Pre i post sken: izlazni Pre i post sken nema struktura tipa FBD_COMPARE koja uslov se resetuje akcije ima 5 lanova (T. 6-10).
SL. 6-8 SIMBOLI NAREDBI ZA POREENJE LAN STRUKTURE TIP OPIS kod_FB.EnableIn BOOL Ako je bit jednak 0, blok se ne obrauje kod_FB.Source A REAL Prvi operand kod_FB.Source B REAL Drugi operand kod_FB.Enableout BOOL Ako je 1 naredba je ispravno izvrena kod_FB.Dest BOOL Rezultat poreenja

Raspoloive naredbe za poreenje prikazane su u T. 6-11, dok su odgovarajui simboli dati na Sl. 6-8.
Kod naredbe EQU NEQ LES LEQ GRT GEQ Ime naredbe Equal (jednako) Not equal (nejednako) Less than (manje) Less than or equal (manje ili jednako) Greater than (vee) Greater than or equal (vee ili jednako) T. 6-11 NAREDBE ZA POREENJE relacija istinita ako je neistinita ako je A=B AB A=B AB A<B A>B AB AB A>B A<B AB AB

T. 6-10 LANOVI STRUKTURE FBD_COMPARE

NAREDBE/99

6.3.3.

POREENJE POJEDINIH BITOVA MEQ (MASK EQUAL TO)

Ova naredba slui za poreenje delova pojedinih rei . Naime na poloaju onih bitova koji ne uestvuju u poreenju (maskirani bitovi) u maski se stavljaju nule. Ostali bitovi maske, koji odgovaraju bitovima koji se porede (nemaskirani bitovi), se postavljaju na 1 . Ukoliko su bitovi operanda (Source) i reference (Compare) SL. 6-9 ILUSTRACIJA POREENJA SA MASKOM koji nisu maskirani meusobno jednaki naredba ima vrednost istinit Sl. 6-9. U protivnom ona ima vrednost neistinit. Pri definisanju maske, pogodno je koristiti heksadecimalnu konstantu ili promenljivu. Kod leder programa operandi se navode direktno unutar bloka naredbe i mogu biti tipa SINT, INT, DINT ili REAL. Kod funkcijskog bloka operandi su ulazni signali tipa DINT. Rezultat je izlazni uslov, odnosno izlazni bit, tipa BOOL koji ima vrednost istinit ili neistinit. (Sl. 6-10).
MEQ Mask Equal Source ime_1 0 Mask maska 0 Compare ime_2 0
MEQ_01 MEQ Mask Equal 0 Source Mask Compare Dest ...

Pre i post sken: izlazni uslov se resetuje

Pre i post sken nema akcije

SL. 6-10 SIMBOLI MEQ NAREDBE

Tag MEQ bloka u FB jeziku je struktura tipa FBD_MASK_EQUAL (T. 6-12)


LAN STRUKTURE MEQ_01.EnableIn MEQ_01.Source MEQ_01.Mask MEQ_01.Compare MEQ_01.Enableout MEQ_01.Dest TIP BOOL DINT DINT DINT BOOL BOOL OPIS Ako je bit jednak 0, blok se ne obrauje Operand koji se poredi Maska Referenca za poreenje Ako je 1 naredba je ispravno izvrena Rezultat poreenja

T. 6-12 LANOVI STRUKTURE FBD_MASK_EQUAL

6.3.4.

LIM - ISPITIVANJE PRIPADNOSTI SEGMENTU


LIM naredbom se proverava da li se vrednost operanda Test nalazi unutar datih granica. Ako je donja granica manja od gornje granice, vrednost naredbe je istinita ako operand pripada segmentu koji odreuju granice. Potrebno je obratiti panju na injenicu da donja granica moe biti i vea SL. 6-11 ZNAENJE GRANICA U LIM NAREDBI od gornje granice. U

NAREDBE/100

tom sluaju naredba je istinita ako se operand nalazi izvan granica ili na njima, a neistinita ako operand pripada intervalu koji odreuju granice (Sl. 6-11). Kod leder programa operandi se navode direktno unutar bloka naredbe i mogu biti tipa SINT, INT, DINT ili REAL. Kod funkcijskog bloka operandi su ulazni signali tipa REAL. Rezultat je izlazni uslov, odnosno izlazni bit, tipa BOOL koji ima vrednost istinit ili neistinit. Ako je operand test konstanta, onda obe granice moraju biti adrese promenljivih. Meutim, ukoliko je test adresa promenljive, onda granice mogu biti bilo adrese promenljivih bilo konstante.
LIM Limit Test (CIRC) Low Limit donja 25 Test ime_1 0 High Limit gornja 61
LIM_01 LIM ...

Limit Test (CIRC) 0 LowLimit Test HighLimit Dest

Pre i post sken: izlazni uslov se restuje

Pre i post sken nema akcije

SL. 6-12 SIMBOLI LIM NAREDBE

Pri realizaciji bloka u FB jeziku formira se struktura tipa FBD_LIMIT (T. 6-13).
LAN STRUKTURE LIM_01.EnableIn LIM_01.LowLimit LIM_01.Test LIM_01.HighLimit LIM_01.Enableout LIM_01.Dest TIP BOOL REAL REAL REAL BOOL BOOL OPIS Ako je bit jednak 0, blok se ne obrauje Donja granica (odnosno jedna od granica) Promenljiva koja se ispituje Gornja granica (druga granica) Ako je 1 naredba je ispravno izvrena Rezultat poreenja

T. 6-13 LANOVI STRUKTURE FBD_LIMIT

6.4. MATEMATIKE I LOGIKE NAREDBE 6.4.1. LOGIKE


OPERACIJE

Operacije nad bitovima Operandi (a i b) i rezultat (d) mogu biti SINT, INT, ili DINT tipa. Interno, SINT i INT tipovi se pretvaraju u DINT. Operacije se izvode nad bitovima.
Kod aredbe AND OR XOR NOT Struk. tekst AND, ili & OR XOR NOT Ime naredbe Logiko I Logiko ILI Eksluzivno ILI Negacija (unarna operacija) Operacija d = ab (bit po bit) d = ab (bit po bit) d = ab (bit po bit) d = a (bit po bit)

T. 6-14 KODOVI NAREDBI ZA LOGIKE OPERACIJE NAD BITOVIMA


AND Bitwise AND Source A op_1 0 Source B op_2 0 Dest rez 0
AND_01

NOT Bitwise NOT Source op_1 0 Dest rez 0

NOT_01
AND Bitwise AND 0 SourceA SourceB Dest ...

NOT

...

Bitwise NOT 0 Source Dest

Ledder - Pre i post sken izlazni uslov se resetuje

FB - Pre i post sken nema akcije

SL. 6-13 SIMBOLI LOGIKIH NAREDBI

NAREDBE/101

Tag funkcijskih blokova je struktura tipa FBD_LOGICAL, ili FBD_CONVERT.


LAN STRUKTURE AND_01.EnableIn AND_01.Source A AND_01.Source B AND_01.Enableout AND_01.Dest LAN STRUKTURE NOT_01.EnableIn NOT_01.Source NOT_01.Enableout NOT_01.Dest TIP BOOL DINT DINT BOOL DINT OPIS Ako je bit jednak 0, blok se ne obrauje Prvi operand Drugi operand Ako je 1 naredba je ispravno izvrena Rezultat operacije

T. 6-15 LANOVI STRUKTURE FBD_LOGICAL TIP BOOL DINT BOOL DINT OPIS Ako je bit jednak 0, blok se ne obrauje Operand Ako je 1 naredba je ispravno izvrena Rezultat operacije

T. 6-16 LANOVI STRUKTURE FBD_CONVERT

Logi k i (Bulovsk i) operandi Operandi su tipa BOOL, i rezultat (d) je promenljiva istog tipa. Kodovi su isti za struktuiran tekst, no razlika je u tipu promenljive nad kojom se operacija izvodi.
Kod naredbe BAND BOR BXOR BNOT Struk. tekst AND, ili & OR XOR NOT Ime naredbe Logiko I Logiko ILI Eksluzivno ILI Negacija (unarna operacija)

T. 6-17 KODOVI NAREDBI ZA LOGIKE OPERACIJE NAD BULOVSKIM PROMENLJIVIM

Za svaki FB blok definie se odgovarajua struktura tipa FBD_BOOLEAN_AND, FBD_BOOLEAN_OR, FBD_BOOLEAN_XOR i FBD_BOOLEAN_NOT. Pri tome BAND i BOR naredba dozvoljavaju do osam ulaznih operanada i imaju strukture istog izgleda. BXOR operacija ima dva operanda, a BNOT samo jedan.
LAN STRUKTURE FB_BAND_BOR.EnableIn FB_BAND_BOR.In1 FB_BAND_BOR.In2 FB_BAND_BOR.In3 FB_BAND_BOR.In4 FB_BAND_BOR.In5 FB_BAND_BOR.In6 FB_BAND_BOR.In7 FB_BAND_BOR.In8 FB_BAND_BOR.Enableout FB_BAND_BOR.Out LAN STRUKTURE BNOT_01.EnableIn BNOT_01.In BNOT_01.Enableout BNOT_01.Out TIP BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL OPIS Ako je bit jednak 0, blok se ne obrauje Prvi operand Drugi operand Trei operand etvrti operand Peti operand esti operand Sedmi operand Osmi operand Ako je 1 naredba je ispravno izvrena Rezultat operacije

T. 6-18 LANOVI STRUKTURE FBD_BOOLEAN_AND I FBD_BOOLEAN_OR TIP BOOL BOOL BOOL BOOL OPIS Ako je bit jednak 0, blok se ne obrauje Operand Ako je 1 naredba je ispravno izvrena Rezultat operacije

T. 6-19 LANOVI STRUKTURE FBD_BOOLEAN_NOT

NAREDBE/102

LAN STRUKTURE BXOR_01.EnableIn BXOR_01.In1 BXOR_01.In2 BXOR_01.Enableout BXOR_01.Out


FB_BAND_BOR BAND ...

TIP BOOL BOOL BOOL BOOL BOOL

OPIS Ako je bit jednak 0, blok se ne obrauje Prvi operand Drugi operand Ako je 1 naredba je ispravno izvrena Rezultat operacije

T. 6-20 LANOVI STRUKTURE FBD_BOOLEAN_BXOR

Boolean And 0 In1 In2 In3 In4 In5 In6 In7 In8
In
BXOR_01

Out

BNOT_01 BNOT ...

BXOR

...

Boolean Exclusive Or 0

Boolean Not 0 Out

In1 In2

Out

Pre i post sken nema akcije SL. 6-14 SIMBOLI LOGIKIH NAREDBI NAD BULOVSKIM PROMENLJIVIM

6.4.2.

MATEMATIKE BINARNE OPERACIJE

Kod leder programa operandi i rezultat su promenljive koje se navode direktno unutar bloka naredbe i mogu biti tipa SINT, INT, DINT ili REAL. Kod funkcijskog bloka operandi su ulazni signali tipa REAL, a rezultat je izlazni signal tipa REAL.
Kod ADD SUB MUL DIV MOD 1 XPY Struktuirani tekst + / MOD Ime naredbe Add (sabiranje) Subtract (oduzimanje) Multiply (mnoenje) Divide (deljenje) Deljenje po modulu X to the power of Y (stepenovanje) Operacija d=a+b d=ab d = ab d = a/b d ostatak deljenja a/b y d=x

T. 6-21 KODOVI NAREDBI ZA BINARNE MATEMATIKE OPERACIJE

Tag FB bloka je struktura tipa FBD_MATH.


LAN STRUKTURE FB_math.EnableIn FB_mathSource A FB_math.Source B FB_math.Enableout FB_math.Dest TIP BOOL REAL REAL BOOL REAL OPIS Ako je bit jednak 0, blok se ne obrauje Prvi operand Drugi operand Ako je 1 naredba je ispravno izvrena Rezultat operacije

T. 6-22 LANOVI STRUKTURE FBD_MATH

U naredbi XPY ukoliko eksponent (y) nije ceo broj, vrednost izraza se rauna prema relaciji (ylog x) d=2 2 . To znai da ako je osnova (x) negativna, eksponent mora da bude ceo broj.

NAREDBE/103

ADD Add Source A op_1 0 Source B op_2 0 Dest rez 0

FB_math ADD Add 0.0 SourceA SourceB Dest ...

Pre i post sken: izlazni uslov se Pre i post sken nema akcije resetuje SL. 6-15 SIMBOLI NAREDBI ZA BINARNE MATEMATIKE OPERACIJE

6.4.3.

MATEMATIKE UNARNE OPERACIJE

Ove operacije imaju samo jedan operand. Kod leder programa i operand i rezultat su promenljive koje se navode direktno unutar bloka naredbe i mogu biti tipa SINT, INT, DINT ili REAL. Kod funkcijskog bloka operand je ulazni signal tipa REAL, a rezultat je izlazni signal tipa REAL.
Kod NEG ABS SQR DIV LN LOG SIN COS TAN ASN ACS ATN RAD DEG Struktuirani tekst ABS (...) SQRT (...) / LN (...) LOG (...) SIN (...) COS (...) TAN (...) ASIN (...) ACOS (...) ATAN (...) RAD(...) DEG(...) Ime naredbe Add (sabiranje) Subtract (oduzimanje) Multiply (mnoenje) Divide (deljenje) Natural log (prirodni logaritam) Log to the base 10 (dekadni logaritam) Sine (sinus) Cosine (kosinus) Tangent (tangens) Arc Sine (arkus sinus) Arc Cosine (arkus kosinus) Arc Tangent (arkus tangens) Konverzija stepena u radijane Konverzija radijana u stepene d = a d= a Operacija

d= a d = a/b d = ln(a) d = log(a) d = sin(a) d = cos(a) d = tg(a) d = arcsin(a) d = arccos(a) d = artg(a) d = (/180)*a d = (180/)*a

T. 6-23 KODOVI NAREDBI ZA UNARNE MATEMATIKE OPERACIJE

Tag odgovarajueg FB bloka je struktura tipa FBD_MATH_ADVANCED.


LAN STRUKTURE FB_func.EnableIn FB_func.Source FB_func.Enableout FB_func.Dest TIP BOOL REAL BOOL REAL OPIS Ako je bit jednak 0, blok se ne obrauje Operand Ako je 1 naredba je ispravno izvrena Rezultat operacije

T. 6-24 LANOVI STRUKTURE FBD_MATH_ADVANCED


SQR Square Root Source op_1 0 Dest rez 0
FB_func SQR ...

Square Root 0.0 Source Dest

Pre i post sken: izlazni uslov se Pre i post sken nema akcije resetuje SL. 6-16 SIMBOLI NAREDBI ZA UNARNE MATEMATIKE OPERACIJE

NAREDBE/104

6.4.4.

CPT COMPUTE (IZRAUNAVANJE ARITMETIKOG IZRAZA)


CPT

Compute Dest

rez 0 Expression op_1*0.2+SIN(op_2)

Ova naredba postoji samo u leder programu i namenjena je izraunavanju sloenog matematikog izraza. Sintaksa izraza odreena je pravilima koja vae i za struktuiran tekst. Operandi i rezultat mogu biti promenljive SINT, INT, DINT i REAL tipa, kao i konstante. U pre i post skenu izlazni uslov naredbe se resetuje.

SL. 6-17 SIMBOL CPT NAREDBE

6.5. NAREDBE ZA MANIPULACIJU SA NUMERIKIM PODACIMA


Naredbe za manipulaciju sa podacima slue za definisanje vrednosti promenljivih ili za odreene izmene u formi prezentacije podataka. U tom smislu one se ne razlikuju bitno od matematikih naredbi. Naime, nema nikakve sumnje da se matematikim naredbama takoe vri odreena manipulacija sa podacima. Izdvajanjem ovih naredbi u posebnu grupu se zapravo eli naglasiti specifinost oblika same naredbe i obrade podataka koja se njima vri.

6.5.1.

NAREDBE ZA POSTAVLJANJE VREDNOSTI


MOV

CLR Clear Dest rez 0

Move Source Dest

op_1 0 rez 0

Pre i post sken: izlazni uslov se resetuje SL. 6-18 SIMBOL CLR I MOV NAREDBE

Zadavanje i resetovanj e vrednost i Ove dve naredbe raspoloive su samo u leder programima i to kao naredbe akcije. Operandi mogu biti SINT, INT, DINT ili REAL tipa. CLR naredbom se operand (dest) postavlja na nulu, a MOV naredbom se izlazni operand (dest) postavlja na vrednost ulaznog operanda (source)

MVM ( MVMT) naredba Kopiranje pojedinih bitova Ovom naredbom se samo nekim (nemaskiranim) bitovima menja vrednost. Maskiranim bitovima, koji se ne menjaju u maski odgovaraju vrednosti 0, dok nemaskiranim bitovima odgovaraju vrednosti 1 (Sl. 6-19).
MVMT_01 MVMT ...

SL. 6-19 IZVRAVANJE MASKIRANE MOVE NAREDBE


MVM Masked Move Source op_1 0 Mask op_2 0 Dest rez 0

Masked Move with Target 0 Source Mask Target Dest

Pre i post sken: izlazni uslov se resetuje

MVMT(mvmt_01); - tekst naredba Pre i post sken nema akcije

SL. 6-20 SIMBOLI MVM NAREDBI

Pri formiranju odgovarajueg bloka, ili stavljanju naredbe u struktuirani tekst program kreira se struktura FBD_MASKED_MOVE (T. 6-25). Podaci koji se obrauju pozivom naredbe u tekst programu prenose se navoenjem imena strukture (Sl. 6-20).

NAREDBE/105

LAN STRUKTURE MVMT_01.EnableIn MVMT_01.Source MVMT_01.Mask MVMT_01.Target MVMT_01.Enableout MVMT_01.Dest

TIP BOOL DINT DINT DINT BOOL DINT

OPIS Ako je bit jednak 0, blok se ne obrauje Ulazni operand iji se pojedini bitovi prenose Maska Operand ija se vrednost smeta na odredite pre nego to se prenesu maskirani bitovi Ako je 1 naredba je ispravno izvrena Rezultat je kombinacija bitova iz lana .Target i lana .Source

T. 6-25 LANOVI STRUKTURE FBD_MASKED_MOVE

SL. 6-21 IZVOENJE BTD NAREDBE

BTD (BTDT) Kopiranje i translacija pojedinih bitova Ovom naredbom se samo jedan broj bitova iz ulaznog operanda prenosi u rezultat i to ne nuno na isto mesto. Pri formiranju odgovarajueg bloka, ili stavljanju naredbe u struktuirani tekst program kreira se struktura FBD_BIT_FIELD_DISTRIBUTE. Podaci koji se obrauju pozivom naredbe u tekst programu prenose se navoenjem imena strukture.
BTDT_01

BTD Bit Field Distribute Source op_1 0 Source Bit 4 Dest rez 0 Dest Bit 5 Length 6

BTDT

...

Bit Field Distribute with Target Source SourceBit Length DestBit Target Dest

Pre i post sken: izlazni uslov se resetuje

BTDT(btdt_01); - tekst naredba Pre i post sken nema akcije

SL. 6-22 SIMBOLI BTD NAREDBI LAN STRUKTURE BTDT_01.EnableIn BTDT_01.Source BTDT_01.SourceBit BTDT_01.Length BTDT_01.DestBit BTDT_01.Target BTDT_01.Enableout BTDT_01.Dest TIP BOOL DINT DINT DINT DINT DINT BOOL DINT OPIS Ako je bit jednak 0, blok se ne obrauje Ulazni operand iji se pojedini bitovi prenose Poloaj najnieg bita od koga poinje kopiranje Broj bitova koji se kopira Poloaj najnieg bita od koga na odreditu poinje kopiranje Operand ija se vrednost smeta na odredite pre nego to se prenesu bitovi koji se kopiraju Ako je 1 naredba je ispravno izvrena Rezultat je kombinacija bitova iz lana .Target i lana .Source

T. 6-26 LANOVI STRUKTURE FBD_BIT_FIELD_DISTRIBUTE

SW PB naredba Ovom naredbom, koja je raspoloiva u leder i struktuiranom tekst programu se

NAREDBE/106

zamenjuju vrednosti bajtova u rei. Operandi mogu biti tipa INT, DINT ili REAL. Kako se INT tip interno tretira kao DINT, to znai da se operie ukupno SWPB sa 4 bajta. Swap Byte Mogui naini premetanja bajtova su:
Source op_1 0 Order Mode REVERSE Dest rez 0
REVERSE WORD

ABCD DCBA

SL. 6-23 SIMBOL SWPB


NAREDBE

ABCD CDAB - ABCD BA DC U tekstualnom programu naredba se koristi kao poziv potprograma SWPB (Source, OrderMode, Dest);. HIGH/LOW

6.5.2.

BINARNO KODIRANA DECIMALNA PREZENTACIJA BROJEVA

BCD kod (Binary coded decimal) je kd kod koga se svaka decimalna cifra predstavlja pomou jednog etvorocifrenog binarnog broja (jednog bajta), kao to je to ilustrovano na (Sl. 6-24). Samo se po sebi razume da obe SL. 6-24 PREDSTAVLJANJE BROJEVA U BCD KODU promenljive moraju biti celobrojnog tipa. Imajui u vidu da podatak u dvostrukoj tanosti zauzima 8 bajtova, ove naredbe mogu operisati sa brojevima koji nemaju vie od 8 cifara. To znai da je 99,999,999 najvei broj koji se moe predstaviti u ovom kodu. Ukoliko se kao celobrojni podatak u BCD naredbi unese negativan broj ili broj koji je vei od maksimalno dozvoljenog, postavie se overflow indikator i konverzija nee biti izvrena. Konverzija se obavlja pomou dve naredbe koje su na raspolaganju u leder programu i funkcijskim blokovima (Sl. 6-25). TOD (To BCD code) decimalni broj (predstavljen kao binarni podatak) se konvertuje u BCD kod FRD (From BCD code) podatak predstavljen u BCD kodu se konvertuje u binarni podatak
TOD To BCD Source op_1 0 Dest rez 0
TOD_01 TOD To BCD 0 Source Dest ...

Pre i post sken: izlazni uslov se resetuje

Pre i post sken nema akcije

SL. 6-25 SIMBOLI NAREDBI ZA KONVERZIJU U BCD KOD

Pri formiranju odgovarajueg FBD_CONVERT (T. 6-16).


LAN STRUKTURE TOD_01.EnableIn TOD_01.Source TOD_01.Enableout TOD_01.Dest

funkcijskog

bloka,

kreira

se

struktura

TIP OPIS BOOL Ako je bit jednak 0, blok se ne obrauje DINT Podatak koji se konvertuje BOOL Ako je 1 naredba je ispravno izvrena DINT Rezultat konverzije T. 6-27 LANOVI STRUKTURE FBD_CONVERT

NAREDBE/107

6.5.3.

NAREDBA ZA ODSECANJE DECIMALNOG DELA BROJA

Ovom naredbom, koja je na raspolaganju u leder programu, funkcijskim blokovima i struktuiranom tekstu, vri se odsecanje decimalnog dela realnog podatka, tako da se kao rezultat dobija ceo broj, predstavljen kao celobrojni podatak.
TRN Truncate Source op_real 0.0 Dest rez_int 0
TRN_01 TRN Truncate 0 Source Dest ...

Pre i post sken: izlazni uslov se resetuje

Pre i post sken nema akcije

SL. 6-26 SIMBOLI NAREDBI ZA KONVERZIJU U BCD KOD

Pri formiranju odgovarajueg FBD_TRUNCATE (T. 6-28).


LAN STRUKTURE TOD_01.EnableIn TOD_01.Source TOD_01.Enableout TOD_01.Dest

funkcijskog

bloka,

kreira

se

struktura

TIP OPIS BOOL Ako je bit jednak 0, blok se ne obrauje REAL Podatak koji se konvertuje BOOL Ako je 1 naredba je ispravno izvrena DINT Rezultat konverzije T. 6-28 LANOVI STRUKTURE FBD_TRUNCATE

U tekstualnom programu naredba se koristi kao poziv potprograma dest :=TRN(source);

6.6. NAREDBE ZA RAD SA POLJIMA PODATAKA 6.6.1. OPTE NAPOMENE

Naredbe za rad sa poljima podataka namenjene su manipulaciji sa nizom podataka koji su smeteni u sukcesivnim elementima jednog polja. U principu podaci u polju mogu biti razliitih tipova, ali u tom sluaju moe doi do gubitka tanosti i greaka zaokruivanja. Ove naredbe su na raspolaganju samo u leder programima. Meutim, isti efekti obrade mogu se postii i odgovarajuim kombinacijama struktuiranih tekst naredbi. Sve naredbe iz ove grupe koriste polja. Pri tome se kao tag polja u naredbi uvek navodi prvi element od koga operacija zapoinje (polje[i], ili polje[i,j] ili polje[i,j,k]). Ovaj element zapravo odreuje baznu adresu niza koji se obrauje (Sl. 6-27). Pored toga, kod nekih naredbi moe i da se specificira du koje od tri dimenzije polja se obrauju podaci. Elemenat polja koji se obrauje odreuje se pomou pointera (position POS). injenica da postoji samo jedan pointer ukazuje na to da se sa gledita obrade sva polja tretiraju kao SL. 6-27 POSTUPAK OBRADE POLJA jednodimenzionalna, odnosno da se kod viedimenzionalnih polja, podaci obrauju u nizu u kome su smeteni u memoriji, odnosno po redovima (menja se prvo poslednji indeks). U principu poetna vrednost pointera se moe proizvoljno definisati. Uobiajeno je ipak da ona bude 0, jer se kod veine naredbi, po zavretku zahtevane operacije,

NAREDBE/108

vrednost pointera resetuje na 0. Broj podataka, odnosno duina niza, koji se obrauje definie se pomou parametra length - LEN. Ukoliko definisana duina premauje veliinu polja onda e se za podatke koji nisu korisniki definisanog tipa prenos zavriti kada se stigne do kraja polja. Meutim za korisniki definisan tip podataka, prenos se nastavlja i preko dimenzija polja. U oba sluaja ne generie se informacija o znaajnoj greci. U principu, ukoliko se naredbom prenose podaci u neko polje, pogodno je da su i izvorni podaci i odredino polje promenljive istog tipa. Ukoliko to nije sluaj, podatak se pri smetanju na odredite konvertuje u tip koji odgovara odreditu. To zapravo znai da je ukupan broj promenjenih bajtova odreen kao proizvod specificirane duine i broja bajtova koji zauzima elemenat odredinog polja. Kod nekih naredbi pointer i duina niza, kao i odgovarajui indikatorski bitovi pamte se u posebnoj strukturi tipa CONTROL. Ova struktura se generie pri formiranju naredbe. Samo se po sebi razume da se ista struktura moe koristiti u vie razliitih naredbi vezanih za isto polje podataka ili da se isti tip naredbi vezan za isti niz podataka, moe nai u vie razliitih rangova u programu. Od korisnika se, pri tome, oekuje da ima na umu da se prilikom izvravanja svake od ovih naredbi menja vrednost pointera i da vodi rauna da jednom od tih naredbi ne pokvari eljeni efekat druge naredbe.

6.6.2.

ODREIVANJE VELIINE JEDNE DIMENZIJE POLJA (SIZE)


Ovom naredbom odreuje se jedna od dimenzija polja. Naredba ima tri operanda:

SIZE Size in Elements Source polje_1[0,0,0] 0 Dim. To Vary 1 Size vel_1 0

Source polje ija se dimenzija odreuje; podaci mogu biti celobrojni, realni, strukture ili string tipa Dim To Vary dimenzija polja koja se odreuje; podatak je konstanta 0, 1 ili 2.

Si ze promenljiva u koju se smeta rezultat, odnosno maksimalna (definisan) veliina odgovarajue dimenzije polja. U struktuiranom tekst programu naredba se definie kao poziv potprograma koji ima ista ova tri parametra Size(polje_1, 1, vel_1); Razlika u odnosu na leder program (Sl. 6-28) sastoji se u tome to se navodi samo tag polja, a ne njegov prvi element. U pre i post skenu ova naredba nema nikakve akcije.
SL. 6-28 SIMBOL LEDER SIZE NAREDBE

6.6.3.

PUNJNENJE POLJA PODATAKA (FLL)

Ovom naredbom se jedan isti podatak, koji je definisan kao source prenosi u sve elemente odredinog polja dest - i to poev od elementa polja FLL koji je naveden u naredbi. Ukupan broj podataka odreen je Fill File Source 4 parametrom length. Dest polje_1[0,0,0] Izvorni podatak moe biti celobrojna ili realna Length vel_1 promenljiva ili konstanta, dok odredino polje moe imati elemente koji su celobrojni, realni ili strukture1. SL. 6-29 SIMBOL LEDER Odredini podatak moe biti i samo jedna promenljiva. U FLL NAREDBE tom sluaju duina niza se mora zadati kao 1. U pre i post skenu izlazni uslov u rangu se resetuje. U struktuiranom tekst programu ova naredba se moe realizovati pomou FOR_DO konstrukta.

Preporuuje se da se za inicijalizaciju strukture koristi naredba za kopiranje

NAREDBE/109

6.6.4.

KOPIRANJE POLJA PODATAKA (COP, CPS)

Ovom naredbom se podaci iz jednog polja, poev od elementa koji je naveden u naredbi (Source) prenose, odnosno kopiraju, u drugo polje, poev od elementa koji se navodi u naredbi (Dest). Podaci u poljima mogu biti celobrojni, realni, string ili strukture. Duina length moe biti konstanta ili promenljiva tipa DINT. COP U toku kopiranja podataka koji pripadaju klasi Copy File Source polje_1[0,0,0] proizvedenih i primljenih tagova, U/I tagova ili baznim Dest polje_2[1,1,1] podacima sa kojima moe da radi i neki drugi zadatak, moe Length 5 doi do promene nekih elemenata ovih polja. To e se desiti uvek kada je zadatak u kome se nalazi ova naredba prekinut od strane nekog zadataka koji ima vii prioritet, a koji na neki SL. 6-30 SIMBOL LEDER nain koristi elemente izvornog polja. Ukoliko se to ne eli, COP I CPS NAREDBE odnosno ukoliko je potrebno da se obezbedi konzistentnost elemenata polja umesto COP naredbe treba koristiti CPS (Synchronous copy) naredbu koja ne dozvoljava da se izvri zahtevani prekid sve dok se ne okona kopiranje podataka. CPS naredba ima iste argumente kao i COP naredba. U struktuiranom tekst programu naredba se definie kao poziv potprograma koji ima ista tri parametra Cop(polje_1[0,0,0],polje_2[1,1,1], 5); Potrebno je da se istakne da se pomou ovih naredbe moe ostvariti i translacija itavog niza podataka unazad (u smeru opadajuih adresa) za odreeni broj mesta. Ovo se ostvaruje tako to se obe adrese veu za istu datoteku, s tim to se kao source adresa definie adresa koja je vea od bazne adrese odredita dest za iznos koji odgovara broju mesta za koji se vri translacija. Ukoliko se eli translacija unapred (u smislu rastuih adresa) onda je to mogue da se ostvari samo ako je razlika izmeu odredine i izvorne adrese vea od duine niza podataka. U protivnom, ako taj uslov nije ispunjen, doi e do preklapanja podataka i deo niza podataka e biti izgubljen. U pre i post skenu ova naredba nema nikakve akcije.

6.6.5.

OBRADA I POREENJE POLJA PODATAKA

Kao i sve druge leder naredbe, naredbe za obradu i poreenje polja podataka poinju da se izvravaju kada ulazni uslov u rangu prelazi sa neistinit na istinit (uzlazna ivica). U principu ove naredbe zahtevaju manipulaciju sa celom zadanom duinom, to znai da njihovo izvravanje moe biti zahtevno u pogledu potrebnog vremena. Da bi se korisniku omoguila kontrola utroenog vremena, ove naredbe pruaju mogunost definisanja naina obrade podataka. ALL u jednom skenu se obrauju svi elementi FAL definisane duine niza, pre nego to se pree na File Arith/Logical EN izvravanje sledee naredbe. Control con_1 NUMERICAL1 u jednom skenu se obrauje Length 13 DN Position 0 deo podataka unutar definisane duine niza. Broj Mode INC ER podataka koji se obrauje se specificira u samoj Dest polje_1[0,1,0] naredbi. Pri tome, kada naredba pone da se izvrava 0 ona e u nizu sukcesivnih skenova obraditi sve Expression op_1+op_2 podatke, ak i ako u meuvremenu ulazni uslov postane neistinit. SL. 6-31 SIMBOL LEDER FAL INCREMENTAL svaki put kada ulazni uslov u NAREDBE rangu pree sa neistinit na istinit obrauje se po jedan podatak u polju. Za obradu podataka na raspolaganju su dve naredbe: FAL (File Arithmetic and Logic) i FSC (File Search and Compare) naredba.
1

Ova opcija je raspoloiva samo za neke tipove kontrolera

NAREDBE/110

FAL naredbom se rezultat zadanog aritmetikog izraza smeta u elemente polja, u skladu sa vrednou pointera. FSC naredbom vri se poreenje elemenata polja u skladu sa zadanim relacionim izrazom. Kada se nae elemenat koji je jednak datom izrazu, postavlja se indikatorski bit (FD), dok se poloaj elementa u kome je pronaena vrednost pamti u pointeru. Argumenti koji se specificiraju u naredbi imaju sledee znaenje.
FSC File Search/Compare Control con_2 Length 4 Position 0 Mode INC Expression polje_1[i,j,k]=polje_2[1,1,con_2.pos] EN DN ER

Control ime strukture CONTROL u koju se smetaju potrebni parametri Length duina polja nad kojom se vri obrada podataka; specificira se kao celobrojna konstanta Position poetna vrednost pointera; celobrojna konstanta

SL. 6-32 SIMBOL LEDER FSC NAREDBE

Mode nain obrade naredbe (ALL, INC ili NUM)

Dest elemenat polja kome se dodaje poetna vrednost pointera da bi se dobio prvi elemenat polja od koga poinje smetanje rezultata obrade; celobrojna ili realna promenljiva (samo za FAL naredbu) Expression FAL - aritmetiki ili logiki izraz, ija vrednost predstavlja rezultat obrade Expression FSC relacioni izraz ija istinitost se proverava u naredbi
Korienje FAL i FSC naredbe zahteva da se, prethodno, definie struktura u kojoj e se pamtiti potrebni parametri. Budui da se ova struktura koristi i za druge naredbe, u okviru FAL i FSC naredbe ne koriste se svi elementi strukture. Izgled strukture dat je u T. 6-29.
LAN STRUKTURE Con_1.LEN TIP DINT OPIS Krajnja vrednost pointera; duina (broj elemenata) polja koji se obrauje odreuje se kao razlika ove vrednosti i poetne vrednosti pointera uveana za 1 Pointer, definie se poetna vrednost; u toku rada ukazuje na elemenat koji se trenutno obrauje; resetuje se po zavretku obrade i kada ulazni uslov postane neistinit Bit koji ima vrednost ulaznog uslova naredbe Ne koristi se Postavlja se na 1 kada se zavri obrada (POS=LEN), resetuje se kada ulazni uslov postane neistinit Ne koristi se Postavlja se na 1, ako se postavi OV bit; izvravanje se prekida dok se OV bit ne resetuje Ne koristi se FSC postavlja se na 1 kada se pronau elementi za koje je relacioni izraz istinit i spreava dalje pretraivanje; mora se resetovati da bi se pretraivanje nastavilo FSC ako je 1, oznaava da su pronaeni elementi za koje je relacioni izraz istinit

Con_1.POS Con_1.EN Con_1.EU Con_1.DN Con_1.EM Con_1.ER Con_1.UL Con_1.IN Con_1.FD

DINT BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL

T. 6-29 LANOVI STRUKTURE CONTROL KOD NAREDBI ZA OBRADU I POREENJE

U pre i post skenu izlazni uslov se resetuje.

6.6.6.

SORTIRANJE, ODREIVANJE SREDNJE VREDNOSTI I STANDARDNE DEVIJACIJE

Ove naredbe obavljaju operacije nad jednom dimenzijom polja, koja se specificira u naredbi. Za svaku od naredbi neophodno je da se specificira struktura tipa CONTROL.

NAREDBE/111

Iz ove strukture koriste se samo .EN, .DN, .ER, .POS i .LEN lanovi (T. 6-29). U pre skenu bitovi .EN, .DN i .ER i izlazni uslov se resetuju. U post skenu izlazni uslov se resetuje.

SRT (File sort)


SRT Sort File Array matrica[1,2] Dim. To Vary 1 Control con_1 Length 4 Position 0 EN DN

Ovom naredbom elementi polja du specificirane dimenzije reaju se u rastui niz. Pri tome se elementi du ostalih dimenzija ne premetaju. Argumenti koji se specificiraju u naredbi imaju sledee znaenje.

SL. 6-33 SIMBOL LEDER SRT


NAREDBE

Array elemenat polja kome se dodaje poetna vrednost pointera da bi se dobio prvi element od koga poinje obrada; Dim to vary dimenzija polja du koje se vri obrada;

celobrojna konstanta (0, 1 ili 2)

Control ime strukture CONTROL u koju se smetaju potrebni parametri Length duina polja nad kojom se vri obrada podataka; specificira se kao celobrojna konstanta Position poetna vrednost pointera; celobrojna konstanta.
Ova naredba je na raspolaganju i u struktuiranom tekst programu kao SRT(Array, Dim_to_vary, Control); S obzirom na oblik potprograma SRT, oigledno je da se poetna vrednost pointera i duina niza koji se obrauje moraju specificirati posebnim naredbama. Otuda je, tekst ekvivalent leder naredbi prikazanoj na Sl. 6-33 jednak con_1.len := 4; con_1.pos := 0; SRT(matrica[1,2],1,con_1); AVE (File average) Ovom naredbom izraunava se srednja vrednost AVE niza podataka odreene duine smetenih u jednom Average File EN polju, du specificirane dimenzije. Naredba ima iste Array polje_1[3,1,1] parametre kao i SRT naredba, s tim to se dodaje jo Dim. To Vary 2 DN Dest rez jedan parametar
Control Length Position 0 con_2 4 0 ER

Dest tag, promenljiva u koju se smeta rezultat (celobrojna ili realna) U posmatranom primeru (Sl. 6-34) srednja vrednost e se izraunati prema relaciji

SL. 6-34 SIMBOL LEDER AVE


NAREDBE

rez = i = 0

polje _ 1(3,1,1 + i)
4

U struktuiranom tekst programu srednja vrednost se moe odrediti uz pomo SIZE naredbe i FOR...DO konstrukta. STD STD (File standard deviation) Standard Deviation EN Ovom naredbom izraunava se standardna Array vektor[5] devijacija niza podataka odreene duine smetenih u Dim. To Vary 0 DN jednom polju, du specificirane dimenzije. Naredba ima Dest rez_real iste parametre kao i SRT naredba, s tim to se dodaje 0.0 ER Control con_3 jo jedan parametar
Length Position 5 0

NAREDBE/112

Dest tag, promenljiva u koju se smeta rezultat (realna) U posmatranom primeru (Sl. 6-35) srednja vrednost e se izraunati prema relaciji
SL. 6-35 SIMBOL LEDER STD
NAREDBE

sred =

i=0

vektor(5 + i)
5 ; rez _ real =

i= 0

[ vektor(5 + i) sred]
4

U struktuiranom tekst programu standardna devijacija se moe odrediti uz pomo SIZE naredbe i FOR...DO konstrukta.

6.7. NAREDBE ZA TRANSLACIJU BITOVA


BSL Bit shif t lef t (translac ija bit ova u levo) BSR Bit shif t right (translacija bitova u desno) Naredbe za translaciju bitova su naredbe akcije, BSL koje se izvode samo kada se uslov menja sa neistinit na Bit Shift Left EN istinit. Prilikom izvravanja naredbe niz od Length bitova, Array polje_1[1,2,3] poev od nultog bita u navedenom elementu polja - Array, Control con_1 DN Source Bit bit_1 se translatorno pomera za jedno mesto u levo (BSL) Length 5 odnosno u desno (BSR), pri emu se na upranjeno mesto smeta bit koji je zadan kao Source Bit (Sl. 6-37). SL. 6-36 SIMBOL BSL I BSR Prvi (BSR), odnosno poslednji (BSL) bit niza se prebacuje NAREDBE u lan .UL strukture CONTROL (T. 6-30) . Polje mora imati promenljive DINT tipa, izvorni bit je BOOL tipa, dok je duina celobrojna konstanta.

LAN STRUKTURE Con_1.LEN Con_1.POS Con_1.EN Con_1.EU Con_1.DN Con_1.EM Con_1.ER Con_1.UL Con_1.IN

SL. 6-37 IZVRAVANJE BSL I BSR NAREDBE TIP OPIS DINT Broj bitova koji se pomera DINT Pointer bitova koji se pomeraju, poetna vrednost je 0 BOOL Bit koji ima vrednost ulaznog uslova naredbe Ne koristi se BOOL Postavlja se na 1 kada se zavri pomeranje bitova BOOL (.POS=.LEN) Ne koristi se BOOL BOOL Postavlja se na 1, ako je .LEN<0 BOOL Bit koji se izbacuje prilikom pomeranja Ne koristi se BOOL

NAREDBE/113

Con_1.FD

BOOL

Ne koristi se

T. 6-30 LANOVI STRUKTURE CONTROL KOD NAREDBI POMERANJE BITOVA

Ukoliko je zadana duina vea od 32, pomeraju se bitovi u sledeem elementu polja. Imajui u vidu da se kod viedimenzionalnih polja elementi reaju po poslednjoj dimenziji, u datom primeru (Sl. 6-36), kada bi duina bila, na primer 45, u pomeranju bi uestvovali svi bitovi elementa polje_1(1,2,3) kao i prvih 13 bitova elementa polje_1(1,2,4). U pre skenu bitovi .EN, .DN, .ER, .POS i izlazni uslov se resetuju. U post skenu izlazni uslov se resetuje.

6.8. NAREDBE ZA SEKEVENCIJALNU OBRADU PODATAKA


U okviru ovih naredbi bar jedan od operanada je datoteka u kojoj se nalazi niz podataka. Pri tome se dozvoljava rad samo sa onim datotekama iji elementi su celobrojne promenljive DINT tipa. Adrese pojedinih podataka odreuju se pomou bazne adrese koja se definie u naredbi (Array) i pointera (Position) koji predstavlja upravljaki paramater, ija se vrednost menja u toku ponovljenih izvravanja naredbe. Pri tome se adresa operanda dobija kao zbir bazne adrese i vrednosti pointera. Kao i kod naredbi za rad sa poljima podataka i ovde se viedimenzionalna polja tretiraju kao jednodimenzionalni niz kod koga se prvo menja poslednji indeks (Sl. 6-27) U naredbama se definie poetna vrednost pointera kao i ukupna duina niza (Length). Pri odreivanju poetne vrednosti pointera potrebno je uzeti u obzir injenicu da se ona povea za 1 pre prvog izvoenja naredbe. SQL (Sequncer Load) Svaki put kada se uslov menja sa neistinit na istinit, ova naredba se izvrava tako SQL to se vrednost pointera poveava od poetne vrednosti Sequencer Load EN za 1 i podatak koji je odreen kao Source prenese u Array matrica[2,3] polje navedeno kao Array na onu adresu na koju Source matrica_1[0,0] DN pokazuje pointer. Na taj nain se pri svakom sledeem Control con_1 izvravanju naredbe menja sadraj sledee rei u nizu. Length 5 Position 2 Ukoliko se kao Source adresa navede konstanta onda se ceo niz postavlja na istu vrednost. Ako je Source promenljiva, onda svaka re niza dobija vrednost koju promenljiva ima u trenutku izvoenja naredbe. Pri sledeim sken ciklusima, za svo vreme za koje ulazni uslov ostaje istinit, vrednost pointera se ne menja, ve se podatak prenosi u isti elemenat polja. Potrebno je da se istakne da se pointer ne primenjuje na source podatak ak i ako je on definisan kao elemenat polja. To znai, da se naredba izvodi uvek sa istim elementom polja. Znaenje elemenata strukture CONTROL prikazano je u tabeli T. 6-31.
LAN STRUKTURE Con_1.LEN Con_1.POS Con_1.EN Con_1.EU Con_1.DN Con_1.EM Con_1.ER Con_1.UL Con_1.IN TIP DINT DINT BOOL BOOL BOOL BOOL BOOL BOOL BOOL OPIS Broj elemenata polja (array) koji se obrauje Pointer elementa u polju; poetna vrednost se moe zadati u naredbi definisanjem vrednosti Position. Kada se dostigne .POS=.LEN, pointer se resetuje na 1 (.POS=1), Ne menja se u SQI naredbi Bit koji ima vrednost ulaznog uslova naredbe Ne koristi se Postavlja se na 1 kada se obrade svi elementi (.POS=.LEN), Ne koristi se kod SQI naredbe Ne koristi se Postavlja se na 1, ako je .LEN<0; .POS>LEN; POS<0 Ne koristi se Ne koristi se

NAREDBE/114

Con_1.FD

BOOL

Ne koristi se

T. 6-31 LANOVI STRUKTURE CONTROL KOD SQL, SQO I SQI NAREDBE

U pre skenu bit .EN, i izlazni uslov se resetuju. U post skenu izlazni uslov se resetuje. Kada pointer stigne do poslednje rei u polju, postavlja se DN-bit na 1 i pri tome se u prvom sledeem sken ciklusu u kome uslov ima prelaz sa neistinit na istinit (isti ciklus u kome se resetuje DN-bit) vrednost pointera automatski vraa na 1. SQO Sequencer output SQO Ova naredba je na izvestan nain suprotna naredbi Sequencer Output EN SQL, jer se pomou nje podaci iz nekog polja Array, Array vektor[0] promenom vrednosti pointera Position sukcesivno filtriraju Mask 16#FF00 DN kroz masku Mask i prenose na odredite Dest. Filtracija Dest i podatka vri se tako da se menjaju samo oni bitovi kojima u Control con_1 Length 4 maski odgovara vrednost bita 1 (nemaskirani bitovi). Position 0 Vrednost pointera se menja pri svakom prelazu ulaznog uslova sa neistinit na istinit. Elementi strukture CONTROL imaju isto znaenje kao i kod SQL naredbe.
Array w w+1 w+2 w+3 w+4 15 1010 0111 0011 1101 0110 8 0010 0000 0010 1010 0111 7 1111 1110 1000 0100 1100 0 0001 1001 1000 0101 1011

0000 0000 0000 0010 pre Position izvoenja naredbe u toku i posle 0000 0000 0000 0011

Mask (HFF00) 1111 1111 0000 0000

menja se

ne menja se
pre izvoenja naredbe posle izvoenja naredbe

Dest O:0.2 0 0 0 1 0 0 1 1 1 01 1 0 1 1 0 O:0.2 1101 1010 1011 0110

SL. 6-38 IZVRAVANJE SQO NAREDBE

SQI Sequential input SQI je naredba uslova kojom se podatak iz polja Array , odreen pomou pointera Position, poredi sa filtriranim podatkom Source i rezultat poreenja predstavlja izlazni uslov naredbe (istini ili neistinit). Filtracija podatka vri se pomou maske Mask i to tako da u poreenju uestvuju samo oni bitovi kojima u maski odgovara vrednost bita 1 (nemaskirani bitovi). Pri izvoenju ove naredbe ne menja se vrednost pointera. To znai da se pretpostavlja da e se ova naredba koristiti u paru sa SQO naredbom, i da e obe biti vezane za istu stukturu CONTROL. Tipina primena para SQI-SQO naredbi javlja se kod sekvencijalnog upravljanja, gde se u polju u okviru SQI naredbe postavi niz uslova kroz koje sekvenca treba da proe, dok se trenutno stanje procesa prati pomou promenljive Source. Svaki put kada je uslov ispunjen, aktrivirae se SQO naredba koja se nalazi u istom rangu i eljeno upravljanje koje odgovara tom delu sekvence bie iz polja u SQO naredbi preneto na izlaz (Source SQO naredbe). Pri tome e se vrednost pointera poveati za 1, to znai da e se u sledeem programskom skenu u SQI naredbi proveravati sledei uslov u sekvenci. RES Res etovanje pointera
SQI Sequencer Input Array matrica[0,0] Mask 16#F0F0 Source j Control con_1 Length 4 Position 0

con_1 RES

NAREDBE/115

Ukoliko je ulazni uslov istinit, ovom naredbom se vrednost pointera resetuje na nulu.

6.9. NAREDBE ZA FORMIRANJE STEKA


U raunarskoj terminologiji stek oznaava niz podataka koji se sekvencijalno puni i prazni. Kod ove familije kontrolera stek se formira u podruju memorije koje obuhvata jedno polje podataka. U principu polje moe biti bilo kojih dimenzija, ali je logino da se ono definie kao jednodimenzionalno. Adresa nekog podatka unutar steka formira se sabiranjem poetne adrese polja i vrednosti pointera (Position). Svaki put kada se podatak unese u stek, vrednost pointera poraste za 1, tako da on uvek ukazuje na sledeu slobodnu lokaciju u steku. U pogledu uzimanja podataka iz steka postoje dva principa: LIFO stek (Last in last out) je stek kod koga se podatak uzima sa vrha steka, odnosno kod koga se kao prvo uzima podatak koji je poslednji smeten u stek i na njegovo mesto se upisuje nula. Vrednost pointera se pri tome smanjuje za 1, ali se poloaj preostalih podataka ne menja. FIFO stek (First in first out) je stek kod koga se podatak uzima sa dna steka, odnosno kao prvo uzima podataka koji je prvi stavljen u stek, i na njegovo mesto upisuje nulu. pri emu se svi preostali podaci transliraju za jedno mesto na dole prema dnu steka, dok se memorijsko mesto koje je zauzimao podatak na vrhu steka postavlja na 0. Istovremeno se i vrednost pointera smanjuje za 1. S obzirom na izloeni princip formiranja steka, oigledno je da za svaki tip steka moraju postojati odvojene naredbe. Pri tome se one javljaju u paru (za punjenje i pranjenje steka). U okviru naredbe mora da se definie polje u kome se formira stek, poetna vrednost pointera (Position), kao i maksimalna duina steka (Length). Svakom steku koji se specificira u okviru neke naredbe pridruuje se po jedna struktura tipa CONTROL (T. 6-9).
LAN STRUKTURE Con_1.LEN Con_1.POS Con_1.EN Con_1.EU Con_1.DN Con_1.EM Con_1.ER Con_1.UL Con_1.IN Con_1.FD TIP DINT DINT BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL OPIS Duina steka Pointer podataka u steku, poetna vrednost je, po pravilu, nula Bit koji ima vrednost ulaznog uslova naredbe Ne koristi se Postavlja se na 1 kada se stek napuni (.POS=.LEN) Postavlja se na 1 ako je stek prazan. Ako je LEN0 ili POS<0 i .DN bit i .EM bit se postavljaju na 1 Ne koristi se Ne koristi se Ne koristi se Ne koristi se

T. 6-32 LANOVI STRUKTURE CONTROL KOD NAREDBI ZA RAD SA STEKOM

Naredbe za punjenje i pranjenje steka su naredbe akcije, ali se izvode samo onda kada se uslov menja sa neistinit na istinit.

6.9.1.

PUNJENJE STEKA

LFL LIFO load (punjenje LIFO steka) FFL FIFO load (punjenje FIFO steka) FFL Ove naredbe se izvravaju svaki put kada se uslov FIFO Load EN menja sa neistinit na istinit, i to tako to se podatak ija je Source i adresa navedena kao source, prenese na poloaj u steku FIFO vektor[0] DN koji je odreen pointerom. Nakon toga se vrednost pointera Control con_1 pove a za 1. Ovaj postupak je ilustrovana na slici Sl. 6-39 Length 12 EM
Position 0

NAREDBE/116

gde su prikazana tri uzastopna izvravanja bilo koje od ove dve naredbe. Pri tome je pretpostavljeno da je bazna adresa steka locirana na LFL memorijskoj adresi 200, i da su u steku, pre izvravanja LIFO Load EN ovih naredbi ve smetena dva podatka (a i b). Source i I ako obe naredbe za punjenje steka rade na isti LIFO vektor[0] DN Control con_1 nain, one se mogu koristiti samo za punjenje Length 12 EM odgovarajueg tipa steka. Drugim reima ne moe se LFL Position 0 naredbom puniti FIFO stek i obratno. U pre-skenu EM i DN bit, kao i izlazni uslov se resetuju, dok se, da bi se spreilo lano detektovanje uzlazne ivice, EN bit postavlja na 1. U post-skenu izlazni uslov se resetuje.

SL. 6-39 ILUSTRACIJA IZVRAVANJA NAREDBI LFL I FFL ZA PUNJENJE STEKA

6.9.2.

PRANJENJE STEKA

LFU LIFO unload (pranjenje LIFO steka) FFU FI FO unload ( pranjenje FI FO stek a)
FFU FIFO Unload FIFO vektor[0] Dest k Control con_1 Length 12 Position 0 LFU LIFO Unload LIFO vektor[0] Dest k Control con_1 Length 12 Position 0 EU DN EM

EU DN EM

Ove naredbe se izvravaju svaki put kada se uslov menja sa neistinit na istinit, i to tako to se vrednost pointera smanji za 1 i uzme podataka sa vrha steka (LFU), odnosno sa dna steka (FFU) i prenese na adresu koja je navedena kao Dest. Ovaj postupak je ilustrovana na Sl. 6-40 i Sl. 6-41, gde su prikazana tri uzastopna izvravanja ovih naredbi. Pri tome je pretpostavljeno da je bazna adresa steka locirana na memorijskoj adresi 200. Potrebno je obratiti panju na injenicu da se kod FFU naredbe pri svakom uzimanju podatka iz steka, svi preostali podaci pomeraju ka poetku steka. U oba sluaja se na mestu sa koga se uzima podatak upisuje 0.

NAREDBE/117

U pre-skenu EM i DN bit, kao i izlazni uslov se resetuju, dok se, da bi se spreilo lano detektovanje uzlazne ivice, EU bit postavlja na 1. U post-skenu izlazni uslov se resetuje.

SL. 6-40 ILUSTRACIJA IZVRAVANJA FFU NAREDBE ZA PRANJENJE STEKA

SL. 6-41 ILUSTRACIJA IZVRAVANJA LFU NAREDBE ZA PRANJENJE STEKA

NAREDBE/118

6.10. NAREDBE ZA MENJANJE TOKA PROGRAMA 6.10.1. NAREDBA ZA SKOK


Leder program se izvrava u okviru programskog sken ciklusa i to tako to se obrauje rang po rang u redosledu u kome su oni napisani u programu. U samom procesoru postoji jedan registar, koji igra ulogu pokazivaa (pointera), koji sadri memorijsku adresu sledeeg ranga u programu koji treba da se obradi. U svakom rangu ispituje se istinitost naredbi uslova i ako je on istinit izvravaju se naredbe akcije. Kod nekih aplikacija, meutim, neophodno je da se, pod odreenim uslovima odstupi od normalnog toka programa, tako to se preskae jedan niz naredbi ili se neki niz naredbi ciklino ponavlja odreeni broj puta. Ovakvi zahtevi mogu se ostvariti pomou naredbi za skok. LBL - naredba Sve dotle dok se naredbe programa izvravaju u redosledu u kome su ime napisane nema nikakve potrebe da se pojedini rangovi posebno oznae. LBL Meutim, ukoliko se od programa oekuje da omogui skok na neku naredbu, onda je neophodno da se omogui da se jedna odreena naredba identifikuje na nedvosmislen nain. Identifikacija naredbe ostvaruje se pomou simbolikog imena labele koja se kao naredba uslova postavlja na prvo mesto u rangu. Samo se po sebi razume da se jedna labela, budui da predstavlja simboliko ime ranga, moe nalaziti u samo jednom rangu. Iako labela ima grafiki simbol naredbe uslova njoj se ne pridruuju nikakvi bitovi ije bi stanje odreivalo istinosnu vrednost naredbe. Pri izvoenju programa smatra se da je naredba uvek istinita. JMP Jump (skok) Ova naredba je naredba akcije, to znai da se izvrava ukoliko je ime ulazni uslov istinit. Naredba se izvodi tako to se menja vrednost programskog JMP pointera tako da on ukazuje na memorisjku adresu na kojoj se nalazi rang ija je labela naznaena u JMP naredbi. To zapravo znai da se vri skok na rang koji sadri datu labelu, i od njega se nastavlja izvravanje programa. Vie razliitih JMP naredbi mogu koristiti istu labelu. U principu skok se moe izvriti unapred ili unazad u odnosu na rang u kome se nalazi JMP naredba. Ukoliko se skok unazad kombinuje sa brojaem ili nekim uslovom moe se ostvariti programska petlja. Prilikom formiranja petlje treba voditi rauna da se ukupno vreme skeniranja ne produi preko unapred definisane gornje granice trajanja jednog programskog sken ciklusa (watch dog timer). Ukoliko se to dogodi procesor e prijaviti greku i obustaviti rad. U pre i post sken ciklusu izlazni uslov naredbe se resetuje.

6.10.2. POTPROGRAMI
Veoma esto u okviru neke aplikacije javlja se potreba da se jedna ista sekvenca naredbi ponovi vie puta na razliitim mestima u programu. Nesumnjivo je da se ovo moe reiti i tako to e se dati niz programskih rangova ponoviti onoliko puta koliko to aplikacija zahteva, ali e se na taj nain nepotrebno zauzimati memorijski prostor. Da bi se to izbeglo, dati niz rangova formira se samo jedanput kao potprogram (subroutine), koji se poziva na izvravanje na vie mesta u leder programu. Samo se po sebi razume da pri korienju potprograma treba voditi rauna o injenici da e se svi izlazi kojima se upravlja u okviru potprograma menjati samo onda kada se potprogram pozove. Potprogram se moe formirati u sva tri programska jezika: leder, tekst i funkcijski blokovi. Ime potprograma definie se imenom programske celine koja se formira. F O R MI R A N J E P O T P R O G R A M A SBR Subroutine naredba Nezavisno od jezika svaki potprogram zapoinje naredbom kojom se identifikuje

NAREDBE/119

da je programska celina koja sledi zapravo potprogram. U okviru ove naredbe definiu se i promenljive ije se vrednosti unose u potprogram i u njemu koriste (Input par). Dozvoljeno je koristiti sve tipove promenljivih formatirane kao tagove ili polja. RET return (povratak) Povratak iz potprograma u program koji ga je pozvao vri se pomou RET naredbe. U okviru ove naredbe definiu se i promenljive ije se vrednosti iz potprograma prenose u pozivni program (Return par). Unutar jednog potprograma moe se nai vie RET naredbi. Izgled odgovarajuih naredbi u sva tri programska jezika dat je u tabeli T. 6-33. LEDER
SBR Subroutine Input Par Input Par

TEKST

FUNKCIJSKI BLOK DIJAGRAM


SBR ... Subroutine

i j

0 i

sbr(i,j);

0 j RET Return k polje_1 ...

naredbe;
RET Return from Subroutine Return Par k Return Par polje_1

ret(k,polje_1);

T. 6-33 NAREDBE ZA FORMIRANJE POTPROGRAMA

Kod leder dijagrama i struktuiranog teksta u presken ciklusu izvre se svi potrpogrami nezavisno od uslova, ime se obezbeuje da sve naredbe budu adekvatno tretirane u presken fazi. Pri tome se ignorie RET naredba, odnosno ne postavljaju se vrednosti izlaznih parametara. Ista aktivnost se ponavlja i u postskenu. Kod funkcijskih blok dijagrama u preskenu, prvom skenu naredbe i prvom izvoenju naredbi nema nikakvih aktivnosti. U normalnom izvoenju programa kao prvo se izvri SBR naredba, a zatim se sve IREF vrednosti leuju. RET naredba se izvodi kao poslednja naredba. U postskenu se jo jedanput poziva potrprogram i ukoliko se radi o potprogramu u okviru dijagrama sekvencijalnih funkcija on se inicijalizuje na isti nain kao i u preskenu. POZIV POTPROGRAMA1 JSR Jump to Subroutine LEDER
JSR Jump To Subroutine Routine Name pomoc Input Par i Input Par j Return Par k Return Par polje_1

TEKST

FUNKCIJSKI BLOK DIJAGRAM


JSR ... Jump to Subroutine Routine: i j pomoc_fbd 0 k polje_1

T. 6-34 NAREDBE ZA POZIV POTPROGRAMA

Pored JSR naredbe kontoleri SoftLogix5800 imaju i JXR (Jump to External Routine) naredbu koja omoguava poziv eksternog potrpograma

NAREDBE/120

JSR naredba prouzrokuje prekid u normalnom izvravanju programa i ostvaruje skok na potprogram ije je simboliko ime navedeno u JSR naredbi. U istoj naredbi navode se i imena promenljivih koje se u potprogram unose ili iz njega iznose. UAURENI POTPROGRAMI U principu jedan potprogram moe pozvati drugi potprogram koji poziva trei i tako redom. Nain izvravanja tako uaurenih potprograma ilustrovan je na Sl. 6-42. Dozvoljeno je povezivanje do osam nivoa potprograma.

SL. 6-42 UAURENI POTPROGRAMIPRANJENJE STEKA

6.10.3. PROMENA TOKA SKEN CIKLUSA1


Ova grupa naredbi koristi se u fazi testiranja programa ili za ubrzavanje sken ciklusa u nekim sluajevima. TND Temporar y end Ukoliko je uslov istinit ova naredba prekida izvravanje programskog sken ciklusa. Ukoliko se naredba nalazi u potprogramu, on se prekida i LEDER TEKST nastavlja se izvravanje pozivnog programa. Ukoliko se nalazi u glavnom programu, njegovo izvravanje se prekida i TND tnd(); prelazi se na izvravanje sledeeg programa u okviru aktivnog zadatka. Naredba se moe koristiti u leder i tekst programu. Iako u naredbi nema parametara, u tekst programu se mora navesti zagrada. U pre i post skenu nema nikakve akcije. MCR Master Contr ol reset Par MCR naredbi definie zonu unutar leder programa koja se moe izvravati na specifian nain. Ukoliko je uslov u poetnoj MCR naredbi istinit onda se sve naredbe koje se nalaze u MCR zoni izvravaju regularno. To znai da se u svakom rangu ispituje uslov i u zavisnosti od vrednosti uslova izvrava odgovarajua akcija. Meutim, ukoliko je uslov neistinit u svim rangovima unutar zone se postavlja vrednost odgovarajuih bitova uslova, dok se nezavisno od ove vrednosti za sve naredbe akcije ulazni uslovi postavljaju kao neistiniti, to znai da se svi izlazi (izuzev retentivnih) resetuju. SL. 6-43 MCR ZONA Na taj nain se u izvesnoj meri smanjuje trajanje programskog sken ciklusa. Zavrna (druga) MCR naredba mora biti bezuslovna. U pre i post skenu izlazni uslov se resetuje. Smisao ove naredbe je da omogui kreiranje programskih celina koje se po potrebi mogu aktivirati ili inhibirati. Na ovaj nain se moe realizovati granjanje programa na vie putanja. Tako, na primer, ukoliko se realizuje program koji upravlja nekim procesom koji radi sa razliitim recepturama, svaka od receptura se moe definisati unutar posbne MCR zone. Paljivo odabranim uslovima moe se postii da u svakom trenutku samo jedna od ovih zona bude aktivna. Pri korienju MCR zone potrebno je voditi rauna da se nekom naredbom za skok ne skoi unutar zone, jer se u tom sluaju ponitava efekat inhibicije zone i nastavlja
1

Ovoj grupi naredbi pripadaju i EOT, SFP i SFR naredbe o kojima je ranije bilo rei (4.5.6 i 4.5.7)

NAREDBE/121

se sa normalnim obraivanjem rangova. AFI Always Fals e Instruction Ukoliko je ulazni uslov za ovu naredbu istinit, njen izlazni uslov je AFI neistinit ime se zapravo onemoguava izvravanje svih preostalih naredbi u rangu. Otuda se ova naredba koristi u fazi testiranja ispravnosti programa. U pre i post skenu izlazni uslov se resetuje. NOP No operat ion Ova naredba ne proizvodi nikakvu akciju, odnosno njen izlazni uslov je NOP uvek jednak ulaznom uslovu. Pogodna je za premoavanje pojedinih uslova u fazi testiranja programa. U pre i post skenu izlazni uslov se resetuje.

6.10.4. PROMENA HIJERARHIJSKOG PREKIDA


UID Us er Interrupt Disable UIE Us er Interrupt Enable Kao to je ve reeno zadaci se izvravaju u skladu sa specificiranim prioritetom. Ukoliko se, meutim, iz nekog razloga ne eli da dozvoli prekid zadatka nieg prioriteta sve dok se ne zavri jedna grupa naredbi, ta grupa se moe definisati postavljanjem unutar para dve naredbe kojima se prekid zabranjuje, odnosno dozvoljava. Samo se po sebi razume da svaka UID naredba mora biti praena odgovarajuom UIE naredbom. Pored toga, izvesno je da broj naredbi iji prekid se ne dozvoljava mora biti ogranien. Dozvoljeno je ugnedavanje ovih naredbi. Par naredbi za zabranu prekida moe se definisati i u struktuiranom tekst programu (UID(); i UIE();).

SL. 6-44 ZONA ZABRANJENOG PREKIDA

6.10.5. KREIRANJE DOGAAJA


EVENT naredba LEDER
EVENT Trigger Event Task Task Z4_event_naredba

TEKST event(Z4_event_naredba);

Ovom naredbom prouzrokuje se izvravanje zadatka tipa event ije ime se navodi u naredbi. U leder programu naredba se aktivira

ako je ulazni uslov istinit. U pre i post skenu ne vri se nikakva akcija. Pri korienju ove naredbe potrebno je voditi rauna o vremenu potrebnom za izvravanje zadatka koji se sa njom poziva. Naime, ako se naredba aktivira dok traje izvravanje specificiranog zadatka registrovae se preklapanje (overlap), ali se on nee ponovo aktivirati. U cilju ispitivanja da li je neki zadatak pozvan na izvravanje pomou event naredbe moe se koristiti naredba za ispitivanje statusa (GSV).

6.10.6. FORMIRANJE PROGRAMSKE PETLJE U LEDER


FOR For Routine Name polja_leder Index i 0 Initial Value 3 Terminal Value 20 Step Size 1
PROGRAMU

FOR naredba Pored FOR DO konstrukta koji se u tekst programu koristi za formiranje programske petlje, u leder programu petlja se formira pomou odgovarajueg FOR bloka kojim se sukcesivno poziva specificirani program. U naredbi se navodi ime programa koji se sukcesivno

NAREDBE/122

izvrava, tag promenljive koja se koristi kao broja petlje (i+Index), kao i poetna (Initial value), krajnja vrednost (Terminal value) i korak (Step size). Ova tri podatka mogu se zadati bilo kao konstante bilo kao promenljive. Svi podaci su celobrojni, s tim to indeks petlje mora biti DINT tipa. Ukoliko je ulazni uslov za ovu naredbu istinit onda e ona prouzrokovati izvravanje programa ije ime je navedeno u bloku. Pozvani program mora u sebi sadravati RET naredbu, ije izvravanje prouzrokuje vraanje u FOR blok. Tada se broja petlje poveava za dati korak i, ukoliko nije dostignuta krajnja vrednost, ponovo se poziva isti program. Kada se dostigne krajnja vrednost prelazi se na izvravanje sledee naredbe. RET naredba u programu k oji se izvr ava u pet lji RET RET naredba se mora nalaziti u programu koji se Return from Subroutine izvrava u petlji. Ona ne moe sadravati nijedan parametar. Ukoliko je ulazni uslov ove naredbe istinit ona zavrava izvoenje pozivnog programa i vraa programsko upravljanje FOR bloku. (Izlazni uslov naredbe je istinit). U pre i post skenu izlazni uslov se resetuje. BRK Break naredba u program k oji se izvr ava u petlji Postavljanjem BRK naredbe izvravanje programa u petlji moe se BRK prekinuti i pre nego to broja dostigne zadani broj ponavljanja. Naime, ukoliko je ulazni uslov ove naredbe istinit, ona e prekinuti izvoenje pozvanog programa u petlji i vratie programsko upravljanje na prvu sledeu naredbu posle FOR bloka. U pre i post skenu izlazni uslov se resetuje.

6.11.SPECIJALNE NAREDBE 6.11.1. POREENJE


BITOVA PREMA FBC I DDT

FBC (File Bit Comparison) i DDT (Diagnostic Detect) naredba porede bitove u FBC nekom tagu sa referencom. Kao rezultat dobijaju se File Bit Comparison EN redni brojevi bitova u kojima je detektovano bitovi_za_poredjenje Source odstupanje od reference. Jedina razlika izmeu ove Reference refernca DN dve naredbe sastoji se u tome to DDT naredba Result rezultat kada naie na neslaganje bitova menja bit reference Cmp. Control fbc_1 FD Length 25 i postavlja ga na vrednost bita koju ima podatak koji Position 0 IN se poredi. Result Control fbc_rez Pri specifikaciji ovih naredbi neophodno je da Length 25 ER se definiu sledei parametri. Position 0

Source polje bitova tipa DINT koji se porede sa referencom. Reference polje bitova reference tipa DINT Result polje u koje se meta rezultat tipa DINT Cmp.Control struktura tipa CONTROL u koju se smetaju informacije potrebne za poreenje Length broj bitova koji se poredi (specificiria se kao konstanta) Position bit u polju od koga poinje poreenje Result Control struktura tipa CONTROL u koju se smetaju informacije o rezultatu Length broj bitova u rezultatu (specificira se kao konstanta) Position bit u rezultatu od koga poinje smtanje rezultata
Kao to se vidi korienje ovih naredbi takoe zahtevaju i da se definiu dva taga koji su strukture tipa CONTROL. Izgled strukture pridruen tagu Cmp. Control dat je u tabeli T. 6-35.

NAREDBE/123

LAN STRUKTURE Con_1.LEN Con_1.POS Con_1.EN Con_1.EU Con_1.DN Con_1.EM Con_1.ER Con_1.UL Con_1.IN Con_1.FD

TIP DINT DINT BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL

OPIS Broj bitova koji se porede Pointer, definie se poetna vrednost; u toku rada ukazuje na elemenat koji se trenutno obrauje Bit koji ima vrednost ulaznog uslova naredbe Ne koristi se Postavlja se na 1 kada se zavri poreenje (POS=LEN) Ne koristi se Postavlja se na 1 ako je .POS<0, ili .LEN<0; izvravanje se prekida dok se ER bit ne resetuje Ne koristi se Odreuje nain pretraivanja 0 svi bitovi se porede 1 poreenje traje do pronalaenja prvog neslaganja Postavlja se na 1 ako se pronae neslaganje

T. 6-35 STRUKTURA CONTROL U NAREDBAMA FBC I DDT

Struktura pridruena rezultatu Result Control ima isti izgled s tim to se u njoj koriste samo 3 bita prikazana u tabeli T. 6-36.
LAN STRUKTURE Con_1.LEN Con_1.POS Con_1.DN TIP DINT DINT BOOL OPIS Duina (broj elemenata) rezultata Tekua vrednost pointera u rezultatu Postavlja se na 1 kada je polje rezultata popunjeno

T. 6-36 STRUKTURA CONTROL U REZULTATU NAREDBI FBC I DDT

Obe naredbe postaju aktivne kada se detektuje uzlazna ivica uslova. Ukoliko je .IN lan strukture postavljen na 0 u toku izvoenja naredbe poredie se svi definisani bitovi. Meutim ukoliko .IN bit ima vrednost 1, izvoenje naredbe se privremeno prekida kada se nae prvo neslaganje. Kada uslov sledei put bude postao istinit naredba e nastaviti poreenje do nailaska na sledee neslaganje. U pre i post skenu izlazni uslov se resetuje.

6.11.2. POREENJE MASKIRANIH BITOVA DTR


Naredba DTR (Data Transitional) poredi nemaskirane bitove izvora sa referencom. Ukoliko se utvrdi neslaganje izlazni uslov naredbe postaje istinit sve do sledeeg skena te naredbe. Pri tome se referenca zamenjuje sa maskiranim izvornim podatkom. Ukoliko se maskirani izvorni podatak slae sa referencom izlazni uslov naredbe se postavlja na neistinit. Na taj nain ova naredba zapravo omoguava da se detektuje promena izvornih podataka izmeu dva sken ciklusa. Pri specifikaciji naredbe neophodno je da se definiu sledei parametri. Source polje DINT tipa iji bitovi se porede sa referencom Mask polje DINT tipa, ili konstanta kojom se maskiraju pojedini bitovi. Ako bit u maski ima vrednost 1 odgovarajui bit se poredi. Ako bit u maski ima vrednost 0 odgovarajui bit u maski se ne poredi Reference polje DINT tipa sa kojim se vri poreenje. U pre i post skenu izlazni uslov se resetuje.
DTR Data Transition Source ulaz 0 Mask maska 578241553 Reference ref 0

PORUKE/125

7. Naredbe za prenoenje poruka


7.1. NAREDBE ZA RAD SA ASCII KARAKTERIMA 7.1.1. OPTE NAPOMENE

Rad sa ASCII karakterima zahteva da oni budu definisani kao promenljive tipa string. Za svaki tag tog tipa rezervie se struktura tipa STRING koja ima dva lana (T. 7-1). Ova struktura automatski obezbeuje prostor za smetanje 82 karaktera. Ukoliko se eli rad sa kraim ili duim nizovima potrebno je definisati korisniku strukturu tipa string. Ovo je takoe dvolana struktura istog izgleda. Jedina razlika je u broju podataka.
LAN STRUKTURE Karak_1.LEN Karak_1.DATA TIP DINT SINT[82] OPIS Broj karaktera u nizu, automatski se aurira pri definisanju ili promeni niza Podaci u nizu

T. 7-1 STRUKTURA TIPA STRING

Naredbe za rad sa ASCII karakterima na raspolaganju su u leder i struktuiranim tekst programima. U leder programima ovo su naredbe akcije, to znai da se izvravaju ako je ulazni uslov u rangu istinit. U svim naredbama u leder programu pre i post sken ciklusu izlazni uslov se resetuje, dok u struktuiranom tekst programu nema nikakve aktivnosti. Ukoliko se nekom programskom naredbom menja duine niza (LEN) tako da ona ne odgovara stvarnom broju karaktera upisanih u niz javie se greka. U principu ove naredbe se dele u dve grupe: Naredbe za manipulaciju ASCII nizovima kojima se pretrauju i modifikuju dati nizovi Naredbe za konverziju u i iz ASCII koda kojima se numeriki podaci konvertuju u ASCII kod i obratno. Ovo je posebno vano pri prenosu numerikih podataka preko serijskih portova.

7.1.2.

MANIPULACIJA SA ASCII NIZOVIMA

CONCAT Nadovezivanje nizova k arak tera ( String Concatenate ) Ovom naredbom se LEDER TEKST nizu karaktera smetenim u CONCAT iji je tag stringu String Concatenate specificiran kao Source A, Source A karak_1 dodaje niz karaktera iz 'teri' Source B karak_2 concat(karak_1,karak_2,kark_3); stringa oznaenog kao 'engineering' Source B i dobijeni string se Dest kark_3 smeta u string iji je tag 'teriengineering' naveden kao Dest. DELETE Uk lanjanj e k arak tera iz niza LEDER
DELETE String Delete Source kark_3 'teriengineering' Qty 8

TEKST

delete(karak_3,8,7,kark_4);
Start Dest 7 kark_4 'terieng'

Izvravanjem ove naredbe iz niza iji je tag naveden kao Source A uklanja se broj karaktera specificiran kao Qty, poev od karaktera Start. Rezultat se smeta u tag Dest (tipa STRING). Parametri Qty i Start moraju da se specificiraju kao konstante.

PORUKE/126

FIND Pronalaenje niza k arak tera Ispituje da li se u string elementu FIND definisanom sa Source Find String nalazi niz definisan kao Source kark_3 Search . Pretraivanje 'teriengineering' poinje od karaktera iji je Search karak_5 'eng' find(kark_3,karak_5,3,poc); redni broj Start u Source Start 3 stringu. Ukoliko se pronae Result poc niz kao Result se upisuje 4 redni broj karaktera u Source stringu od koga poinje slaganje. Ako se ne ustanovi slaganje, rezultat je nula. Parametar Start se definie kao konstanta, dok je Result tag celobrojnog tipa. INSERT Ubac ivanj e k arak tera u niz Ovom naredbom LEDER TEKST se u niz specificiran kao INSERT Source A, poev od Insert String karaktera iji je redni broj Source A karak_1 specificiran kao Start, 'teri' ubacuje niz Source B i Source B karak_5 'eng' insert(karak_1,karak_5,4,kark_6); dobijeni niz se smeta u Start 4 string iji je tag naveden kao Dest. Dest kark_6 Parametar Start 'terengi' se definie kao konstanta. LEDER TEKST LEDER
MID Middle String Source kark_3 'teriengineering' Qty 3

TEKST

mid(kark_3,3,5,karak_5);
Start Dest 5 karak_5 'eng'

MID Kopir anje k arak tera iz jednog niza i u drugi niz ( Middle String ) Ovom naredbom se u Dest string kopira Qty karaktera iz Source stringa, poev od karaktera Start. Parametri Qty i Start moraju da se specificiraju kao konstante.

7.1.3.

KONVERZIJA ASCII PODATAKA

Ovom grupom naredbi realizuje se konverzija ASCII reprezentacije celobrojnih ili realnih vrednosti u celobrojne ili realne tagove i obratno, kao i konverzija slova (unetih sa terminala) u ASCII karaktere. STOD ASCII celobrojni k arak teri u numeri k i tag ( String to DINT ) Naredba pretrauje string iji LEDER TEKST je tag naveden kao Source, STOD pretpostavljajui da su karakteri String To DINT ASCII reprezentacija celobrojne Source brojevi vrednosti, te se oni konvertuju u '324' stod(brojevi,rezultat); Dest rezultat odgovarajuu celobrojnu vrednost. 324 Rezultat se smeta u tag Dest koji moe biti bilo realnog bili celobrojnog

PORUKE/127

tipa. Meutim, nezavisno od tipa ovog taga, ukoliko je izvorni podatak smeten kao realni broj u kliznom zarezu, naredba e konvertovati samo celobrojni deo tog podatka. Naredbom se vri konverzija i pozitivnih i negativnih brojeva. Pri pretraivanju stringa ignoriu se specijalni znaci (izuzev znaka "minus" koji se tumai kao deo negativnog broja), tako da konverzija poinje od prvog elementa koji predstavlja ASCII kod nekog broja. Ukoliko se radi o grupi brojeva razdvojenih delimiterom ("/"), naredba e konvertovati samo prvu grupu. STOR ASCII realni k arakteri u REAL tag ( String to REAL ) Ova naredba pretpostavlja da TEKST LEDER su karakteri u stringu iji je tag STOR naveden kao Source ASCII String to Real reprezentacija realne vrednosti, te se Source brojevi_float '32.4' stor(brojevi, rez_float); oni konvertuju u odgovarajuu Dest rez_float numeri ku vrednost predstavljenu u 32.4 kliznom zarezu. Otuda tag Dest mora biti REAL tipa. DTOS Numeri k i podatak u ASCII k od ( DINT to Str ing ) Ovom naredbom se u tagu LEDER TEKST Dest (tipa STRING) dobija ASCII kod DTOS celobrojnog numerikog podatka DINT to String navedenog kao Source. U skladu sa broj Source time naredba zahteva da je tag 345 dtos(broj,karak_ascii); Source numeriki podatak DINT, Dest broj_ascii '345' SINT ili REAL tipa. Ukoliko je REAL tipa on se, podatak odsecanjem, konvertuje u DINT tip. RTOS Realni numeri k i podatak u ASCI I k od ( REAL to String ) Ovom naredbom se u LEDER TEKST tagu Dest (tipa STRING) dobija RTOS ASCII kod realnog numerikog Real to String podatka navedenog kao Source broj_float 32.3 rtos(broj_float,real_broj_ascii); Source. U skladu sa time Dest real_broj_ascii naredba zahteva da je tag '32.3' Source numeriki podatak REAL tipa. UPPER Alfanumeriki karakteri u ASCII kod za velika slova Ovom naredbom se vri LEDER TEKST konverzija alfanumerikih karaktera u UPPER tagu Source iz "malih slova" u "velika Upper Case slova". Rezultat se smeta u tag Source karak_1 Dest. Oba taga moraju biti tipa 'teri' upper(karak_1,kark_7); STRING. Dest kark_7
'TERI'

LOW ER - Alf anumeri k i k arakteri u ASCII k od za mala slova Ovom naredbom se vri LEDER TEKST konverzija alfanumerikih karaktera u LOWER tagu Source iz "velikih slova" u "mala Lower Case slova". Rezultat se smeta u tag Source kark_7 Dest. Oba taga moraju biti tipa 'TERI' lower(kark_7,karak_1); STRING. Dest karak_1
'teri'

PORUKE/128

7.2. ASCII NAREDBE ZA SERIJSKI PRENOS PODATAKA 7.2.1. SERIJSKA VEZA ASCII UREAJA
Da bi kontroler ostvario komunikaciju sa ASCII ureajem neophodno je da se serijski kanal kontrolera definie kao user mode, kao i da se odaberu parametri za prenos karaktera (Sl. 7-1). Uz izbor User mode definiu se i sledei parametri:
Baude rate izbor jedne od moguih brzina prenosa: 110, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400 Data bits duina poruke (broj karaktera): 7 ili 8 Paritiy kontrola ispravnosti: none, even ili odd Stop bits broj karaktera na kraju poruke: 1, ili 2 Control line nain prenosa: o No handshake - ako se ne koristi modem, o Full Duplex ako se ostvaruje veza "taka na taku" dva modema sa punim dupleksom o Half Duplex ako se vezuju dva polu-dupleks modema Continuous Carrier bira se samo onda kada se vezuje master modem puni dupleks i slave modem poludupleks. U tom sluaju slave se konfigurie kao Half Duplex i slektuje se Continuous Carrier RTS Send Delay - period ekanja (u inkrementima od po 20 ms) od trenutka podizanja RTS signala i slanja prvog karaktera RTS Off Delay (u inkrementima od po 20 ms) interval vremena (u inkrementima od po 20 ms) koji treba da proe izmeu slanja poslednjeg karaktera i obaranja RTS signala.

SL. 7-1 MENI ZA PODEAVANJE PARAMETARA ZA PRENOS ASCII KARAKTERA

Kada je specificiran User mode, u meniju User protocol, odabira se ASCII i zatim definiu sledei parametri:
Read/Write Buffer Size Maksimalna duina polja (u bajtovima) iz koga se prenose ili u koje se primaju podaci Termination 1 i 2 izbor karaktera koji oznaava kraj linije u ARL i ABL ASCII naredbama (moe se definisati i kao ASCII konstanta). Specificirati \FF ukoliko se ne eli oznaka za kraj linije, odnosno ako se koristi samo jedan karakter onda drugi treba definisati kao \FF Append 1 i 2 izbor karaktera koji se dodaje da oznai kraj linije u ASCII AWA naredbi. Specificirati \FF ukoliko se ne eli ovaj karakter, odnosno ako se koristi samo jedan karakter onda drugi treba definisati kao \FF XON/XOFF izbor softverskog handshake-a, odnosno upravljanja prijemom podataka Echo zahtev da se primljeni karakter poalje kao eho ureaju koji ga je poslao (moe se postaviti on ili off); najee se koristi ako je ASCII ureaj terminal. Delete mode specifikacija tretmana karaktera "delete", koji ima efekta samo ako je Echo On.

PORUKE/129

Izbor izmeu: ignore ignorii karakter, odnosno tretiraj ga kao deo teksta, CRT koristi se ako je ASCII ureaj terminal. Karakter koji neposredno prethodi delete karakteru i sam delete karakter se ne alju na odredite. Ako je Echo On vraaju se tri karaktera backspace, space, backspace. printer koristi se ako je ASCII ureaj tampa. Karakter koji neposredno prethodi delete karakteru i sam delete karakter se ne alju na odredite. Ako je Echo On vraaju se dva karaktera \2F i karakter koji je obrisan.

Pored specifikacije odabranih parametara neophodno je i da se izvri povezivanje serijskih portova kontrolera i ASCII ureaja (Sl. 7-2) KOMUNIKACIJA SA HANDSHAKE-OM KOMUNIKACIJA BEZ HANDSHAKE-A
DCD RDX TXD DTR COM DSR RTS CTS DCD RDX TXD DTR COM DSR RTS CTS

KONTROLER

ASCII UREAJ

KONTROLER

ASCII UREAJ

SL. 7-2 SPREGA SERIJSKIH PORTOVA KONTROLERA I ASCII UREAJA

7.2.2.

REALIZACIJA SERIJSKOG PRENOSA PODATAKA

Razmena podataka izmeu kontrolera i nekog ureaja koji prima ili alje ASCII karaktere obavlja se preko bafera. U skladu sa vrstom naredbe podaci se iz bafera alju ka serijskom portu za koga je vezan neki ASCII ureaj, ili se podaci koje ASCII ureaj alje smetaju u bafer. Obe operacije se obavljaju u okviru nezavisnog procesa komunikacije. Vano je da se istakne da se komunikacija obavlja direktno sa ureajem koji je vezan za serijski port, pri emu se pretpostavlja da je serijski port postavljen u User mode, odnosno da je omoguena ASCII komunikacija. SL. 7-3 ILUSTRACIJA IZVRAVANJA ASCII NAREDBE U sutini, ASCII naredbe za ZA PRENOS PODATAKA serijski prenos podataka obavljaju razmenu podataka izmeu memorije kontrolera i bafera. Pored toga, njima se vri i manipulacija podataka u baferu. Otuda se sam prenos podataka ne obavlja trenutno u toku programskog skena, ve se, ukoliko uslov prelazi sa neistinit na istinit, zahtev za prenos smeta u red ekanja. Bafer preuzima naredbe iz reda ekanja po FIFO principu i realizuje zahtevanu komunikaciju (Sl. 7-3).
LAN STRUKTURE SPC_1.LEN TIP DINT OPIS Broj karaktera koji se razmenjuje (prima ili alje) Naredbe ARD, ARL, AWA, AWT, ostale ne koriste Broj karaktera koji je razmenjen Naredbe ARD, ARL, AWA, AWT Broj karaktera u baferu ukljuujui i terminalne karaktere Naredbe ABL, ACB Status upravljakih linija za prenos sa "handshake-om" Naredba AHL

SPC_1.POS

DINT

PORUKE/130

SPC_1.ERROR SPC_1.EN SPC_1.EU SPC_1.DN SPC_1.EM SPC_1.ER

DINT BOOL BOOL BOOL BOOL BOOL

SPC_1.UL

BOOL

SPC_1.RN SPC_1.FD

BOOL BOOL

Kodirana informacija o realizaciji prenosa Bit koji ukazuje da je detektovana uzlazna ivica Bit koji ukazuje da naredba ula u red ekanja Postavlja se na 1 kada se naredba izvri (asinhron u odnosu na programski sken) Postavlja se na 1 sinhrono sa programskim skenom ako je naredba izvrena (.DN bit postavljen) Bit koji ukazuje da je pri izvravanju naredbe dolo do greke Zaustavlja operaciju pre otpoinjanja (ako je u redu ekanja) ili u toku izvoenja; kada se ovaj bit (progrmaski spolja) postavi na 1, svi podaci koji su dotle obraeni e biti prosleeni odreditu, ali se preostali podaci nee obraivati. Naredba se ne pomera iz reda, ve se samo neki podaci ne obrauju Bit koji ukazuje da se naredba izvrava Bit koji ukazuje da su pronaeni karakteri Naredbe ABL, ACB, ostale ne koriste

T. 7-2 STRUKTURA TIPA SERIAL_PORT_CONTROL

Red ekanja ima mesta za 16 naredbi. Ukoliko je red pun, u svakom sledeem sken ciklusu, nezavisno od ulaznog uslova, naredba e pokuavati da ue u red. Tek kada u tome uspe, postavie se .EU bit (Sl. 7-4). Kada naredba doe na poetak reda, zapoinje njeno izvravanje, a tada se postavlja i .RN bit. Nakon izvravanja ove naredbe odmah se postavlja .DN bit, dok se tek u sledeem sken ciklusu u rangu u kome se nalazi ova naredba, ispituje stanje .DN bita i ukoliko je on postavljen postavie se i .EM bit. Svakoj ASCII naredbi za komunikaciju pridruuje se jedan SL. 7-4 UVRTAVANJE ASCII NAREDBE U RED poseban tag koji je struktura tipa SERIAL_PORT_CONTROL u okviru koje se nalaze bitovi pomou kojih se upravlja izvravanjem naredbe i ispituje njen status (T. 7-2). U pre i post skenu izlazni uslov u rangu se resetuje.

7.2.3.

ASCII NAREDBE ZA MANIPULACIJU SA PODACIMA U BAFERU


LEDER TEKST

ACL - ASCII Clear Buff er Ukoliko je ulazni uslov istinit ova naredba se izvrava odmah. ACL Nain njenog izvoenja zavisi od ASCII Clear Buffer izbora parametara. Channel 0 acl(0,1,1); Postavljanjem parametra Clear Serial Port Read Yes Clear Serial Port Read na Yes, Clear Serial Port Write Yes odnosno (1) ovom naredbom se briu podaci iz bafera serijskog porta selektovanog kanala (konfigurisan kao ASCII u User mode-u) i istovremeno se iz reda uklanjaju sve naredbe za prijem karaktera (itanje). Postavljanjem parametra Clear Serial Port Write na Yes, odnosno (1) ovom naredbom se iz reda uklanjaju sve naredbe za slanje karaktera. Pri tome selektovani kanal moe biti u User ili System mode-u. Informacija o uklanjanju naredbe iz reda dobija se iz strukture koja je pridruena toj naredbi. Ukoliko je naredba uklonjena SPC_1.ER=1, i kod za greku je SPC_1.ERROR=14 (heksadecimalno E).

PORUKE/131

ACB - Number of Characters In Buf f er Ova naredba se izvrava odmah i to samo kada ulazni uslov ACB prelazi sa neistinit na istinit. Pomou ASCII Chars in Buffer EN nje se odreuje ukupni broj karaktera Channel 1 DN acb(1,spc_1); ER SerialPort Control spc_1 u baferu (ukljuujui i prvu grupu Character Count 0 terminalnih karaktera) i smeta u SPC_1.POS. Ovaj broj se istovremeno prikazuje i kao podatak (Character count) u bloku leder programa. Korienjem ove naredbe se zapravo proverava da li je bafer primio neke karaktere iz spoljnjeg ureaja. Ukoliko se u baferu naie na neki karakter postavlja se i SPC_1.FD bit. ABL - Test Buf f er f or Line Ova naredba se izvrava LEDER TEKST odmah i to samo kada ulazni uslov ABL prelazi sa neistinit na istinit. Pomou ASCII Test For Buffer Line EN nje se odreuje broj karaktera u Channel 0 DN abl(0,spc_1); ER SerialPort Control spc_1 ulaznom baferu do prvog Character Count 0 terminalnog karaktera. To zapravo znai da ova naredba odreuje duinu jedne "linije" podataka. Ukoliko se u baferu pronae terminalni karakter postavlja se SPC_1.FD bit. Samo u tom sluaju, broj karaktera koji ukljuuje i prvu grupu terminalnih karaktera bie upisan u SPC_1.POS. Za razliku od toga, broj pronaenih karaktera e se dinamiki menjati u bloku leder dijagrama (Character Count). LEDER TEKST

7.2.4.

NAREDBE ZA PRIJEM PODATAKA

Ove naredbe se mogu koristiti samo ako je serijski port konfigurisan kao User mode. U leder programu naredbe se aktiviraju samo na uzlaznu ivicu, odnosno na prelaz ulaznog uslova sa neistinit na istinit. ARD ASCII - Read Characters Ovom naredbom se SPC_1.LEN broj karaktera iz bafera prebacuje u tag "brojevi" koji je definisan kao LEDER TEKST Destination. U principu ovaj tag ARD ASCII Read EN moe biti STRING, Channel 1 DINT, SINT ili INT Destination brojevi DN ard(1,brojevi,spc_1); tipa. Meutim, ukoliko '324' se eli bilo kakva SerialPort Control spc_1 ER SerialPort Control Length 3 manipulacija sa Characters Read 0 uitanim karakterima, tag mora biti tipa STRING. U okviru naredbe je neophodno da se definie tag strukture koja sadri neophodne parametre za izvoenje naredbe. im se on definie iz njega se preuzima vrednost SPC_1.LEN i upisuje kao SerialPort Control Length. Istovremeno, se ovaj podatak moe definisati i kao konstanta u samoj naredbi, pa se njegova vrednost automatski postavlja i u SPC_1.LEN. Vrednost ovog parametra mora biti manja ili jednaka duini odredinog taga. U principu, da bi se spreilo nepotrebno optereivanje serijske komunikacije ova naredba se, po pravilu, uslovljava postojanjem karaktera u baferu. Ta injenica se proverava pomou ACB naredbe koja prethodi ovoj naredbi. Ona se istovremeno moe koristiti i za preuzimanje podatka o broju karaktera koje treba uitati. Ovo zapravo znai da se broj karaktera koji se uitava moe menjati u toku rada. Po pravilu se taj broj preuzima iz U tom sluaju neophodno je, posle izvravanja ACB naredbe izjednaiti parametre SPC_1.POS i SPC_1.LEN. Ukoliko se eli da broj uitanih karaktera bude jednak broju karaktera odredinog

PORUKE/132

taga onda parametar SPC_1.LEN mora biti jednak nuli. U toku izvravanja naredbe menja se parametar Characters Read. Njegova vrednost je jednaka broju do tada uitanih karaktera. Ovaj podatak se istovremeno smeta u SPC_1.POS. ARL - ASCII Read Line Ova naredba LEDER TEKST radi isto to i ARD ARL naredba, s tim to se ASCII Read Line EN uitava niz karaktera Channel 1 zakljuno sa onim koji Destination brojevi DN su definisani kao '324' arl(1,brojevi,spc_1); SerialPort Control spc_1 ER terminalni karakteri. SerialPort Control Length 3 Ukoliko se u Characters Read 0 nizu ija je duina odreena parametrom SPC_1.LEN ne naie na terminalne karaktere, uitavanje e se prekinuti, kada se proita zadani broj karaktera. Ukoliko se naie na terminalne karaktere, oitavanje se prekida i pre dostizanja zadane duine niza.
PR. 7-1 ZADATAK Formirati deo leder programa koji e primati podatke sa itaa bar kodova koji je vezan za serijski port kanala 0 smetati ih na eljeno odredite. Poznato je da svaki bar kod sadri 24 karaktera. REENJE
Poto se ACB naredba aktivira sam o na uzlaznu ivicu, za permanento izvravanje se koristi injenica da se EN bit posle svakog izvodjenja resetuje spc.EN ACB / ASCII Chars in Buffer EN Channel 0 DN SerialPort Control spc ER Character Count 0

Budui da je poznata duina bar koda, LEN paramdetar se moe zadati direktno; tada se samo proverava kada broj parametara u baferu postane jednak ili veci od 24 GRT ARD Greater Than (A>B) ASCII Read EN Source A spc.POS Channel 0 0 Destination pomoc DN Source B 24 '' SerialPort Control spc_2 ER SerialPort Control Length 24 Characters Read 0

Ukoliko je ARD naredba izvrena dodaj uitani bar kod prethodno uitanim kodovim a u odredinom stringu spc_2.EM CONCAT String Concatenate Source A bar_kodovi '' Source B pom oc '' Dest bar_kodovi ''

SL. 7-5 DEO LEDER PROGRAMA KOJI REALIZUJE UITAVANJE BAR KODA Deo leder programa prikazan je na Sl. 7-5. Karakteri koji predstavljaju bar kod se privremeno smetaju u string pomoc, da bi se zatim redom smetali u string "bar_kodovi".

PORUKE/133

PR. 7-2 ZADATAK Formirati deo leder programa koji preuzima poruke iz bafera i smeta ih na eljeno odredite. Svaka poruka se zavrava sa "carriage return" karakterom ($r). REENJE Karakteri iz bafera se permanentno proveravaju. Kad se pronae terminalni karakter izvrava se prenoenje svih uitanih karaktera na odreditte (Sl. 7-6).
Poto se ABL naredba aktivira sam o na uzlaznu ivicu, za permanento izvravanje se koristi injenica da se EN bit posle svakog izvodjenja resetuje spc.EN ABL / EN ASCII Test For Buffer Line Channel 0 DN SerialPort Control spc ER Character Count 7

Ukoliko je pronadjen carriage return karakter FD bit je postavljen, preuzmi poruku iz bafera, zajedno sa terminalnim karakterom i smesti je na odredite spc.FD ARL ASCII Read Line EN Channel 0 Destination poruke DN '' SerialPort Control spc_2 ER SerialPort Control Length 6 Characters Read 0

SL. 7-6 DEO LEDER PROGRAMA KOJI REALIZUJE UITAVANJE PORUKA

7.2.5.

NAREDBE ZA SLANJE PODATAKA

Ove naredbe mogu da rade i u System i u User mode. Ovo je neophodno i zato to se pomou slanja odgovarajuih karaktera nain rada serijskog porta moe dinamiki menjati. U leder programu naredbe se aktiviraju samo na uzlaznu ivicu, odnosno na prelaz ulaznog uslova sa neistinit na istinit. AW T - ASCII W rite Broj karaktera LEDER TEKST SPC_1.LEN (koji se u AWT leder naredbi vidi kao ASCII Write EN SerialPort Control Channel 0 Source podaci_1 DN awt(0,podaci_1,spc_1); Length) se prenosi iz 0 taga Source na neki ER SerialPort Control spc_1 SerialPort Control Length 3 spoljni ureaj koji je Characters Sent 0 vezan za serijski port. Ukoliko se kao SPC_1.LEN definie 0, prenosi se ceo element. Broj poslatih karaktera bie upisan u SPC_1.POS, a moe se i dinamiki pratiti u leder bloku kao Characters Sent. U principu Source moe biti tag tipa STRING ili celobrojni tag. AW A - ASCII W rite with Append Ova naredba u LEDER TEKST osnovi radi isto kao i AWT AWA naredba, s tim EN ASCII Write to se emitovanim Channel 0 Source podaci_1 DN awa(0,podaci_1,spc_1) karakterima dodaju ili 0 jedan ili dva ; SerialPort Control spc_1 ER terminalna karaktera SerialPort Control Length 3 Characters Sent 0 koja su specificirana pri konfigurisanju

PORUKE/134

kanala za User mode.

7.2.6.

NAREDBA ZA UPRAVLJANJE PRENOSOM PODATAKA


LEDER AHL ASCII Handshake Lines Channel 0 AND Mask reset_mask 0 OR Mask set_m ask 0 SerialPort Control spc_1 Channel Status(Decim al) 0 TEKST
EN DN ER

ahl(0,reset_mask,set_mask,spc_1);

Ova naredba moe da radi i u System i u User mode-u. Koristi se za resetovanje RS-232 kanala i to linija DTR (ready line) i RTS (request to send line), kao i za dobijanje informacija o stanju linija. Naredba se izvrava tako to se, u zavisnosti od bita u masci, DTR i RTS linije setuju ili resetuju. Obe maske se specificiraju kao heksadecimalni podaci pri emu Bit 0 odgovara DTR liniji, dok Bit 1 odgovara RTS liniji. Nain na koji treba postaviti bitove u maskama prikazan je u tabeli T. 7-3
DTR
OFF OFF OFF ON ON ON NE MENJA SE NE MENJA SE NE MENJA SE

RTS
OFF ON NE MENJA SE OFF ON NE MENJA SE OFF ON NE MENJA SE

AND MASK 3 1 1 2 0 0 2 0 0

OR MASK 0 2 0 1 3 1 0 2 0

T. 7-3 DEFINISANJE MASKI U AHL NAREDBI

Status linija moe se oitati u SPC_1.POS ili dinamiki pratiti u leder bloku kao Channel Status. Veza izmeu pojedinih bitova u SPC_1.POS i odgovarajuih linija na RS232 portu data je u tabeli T. 7-4.
LINIJE BITOVI CTS 0 RTS 1 DSR 2 DCD 3 DTR 4 PRIMLJEN XOFFKARAKTER 5

T. 7-4 SPECIFIKACIJA BITOVA KOJI POKAZUJU STANJE LINIJA RS232 PORTA

7.3. MESSAGE NAREDBE 7.3.1. SPECIFIKACIJA MESSAGE NAREDBE


LEDER
MSG Message Message Control msg1 ... EN DN ER

TEKST msg(msg1);

Ove naredbe slue za asinhroni prenos podataka izmeu vorova u mrei. Message naredbe su na raspolaganju u okviru leder programa i struktuiranog

PORUKE/135

teksta. U leder programu naredba se izvodi ukoliko se uslov menja sa neistinit na istinit (uzlazna ivica). Ukoliko se naredba nalazi u struktuiranom tekst programu korisnik mora sam da obezbedi detekciju uzlazne ivice. U pre i post skenu izlazni uslov leder message naredbe se resetuje.
LAN STRUKTURE MSG1.FLAGS MSG1.EW MSG1.ER MSG1.DN TIP INT BOOL BOOL BOOL OPIS Sadri bitove statusa koji se i pojedinano nalaze u strukturi Postavlja se na 1 kada msg naredba ue u red ekanja (.FLAGS.2) Postavlja se na 1 kada pri izvravanju naredbe doe do greke (.FLAGS.4) Postavlja se na 1 kada se poslednji paket uspeno prenese (resetuje se pri sledeoj uzlaznoj ivici) (.FLAGS.5) Postavlja se na 1 kada kontroler pone izvravanje zahteva u msg naredbi (resetuje se kada se postave .DN ili .ER bit) (.FLAGS.6) Postavlja se na 1 kada se detektuje uzlazna ivica uslova (resetuje se kada se postave .DN ili .ER bit, ako je ulazni uslov neistinit) (.FLAGS.7) Ako se ovaj bit runo postavi, kontroler zaustavlja prenos i postavlja .ER bit (.FLAGS.8) Kada je postavljen na 1 poruka se keira (osim ukoliko se prenos vri preko serijskog porta) (.FLAGS.9) Kod greke do koje je dolo u prenosu Dopunska informacija o greci (za neke tipove greaka) Koristi se za prikaz putanje greke u prozoru za konfigurisanje naredbe Broj rei koji je stvarno prenet Broj rei koji se prenosi porukom Odredina veza Odredini vor Veza izvora Parametar koji odreuje klasu CIP generic poruke Parametar koji odreuje atribut CIP generic poruke Parametar koji odreuje instancu CIP generic poruke Redni broj elementa u polju lokalnog ureaja (ako je u naredbi oznaen sa *); Broj kanala (ako je prenos preko DHRIO modula) Broj reka za block transfer poruke (specificira se oktalno) Broj grupe za block transfer poruke (specificira se oktalno) Broj slota za block transfer poruke (Oktalno za udaljeni U/I, decimalno za ControlNet) Putanja za kontroler sa kojim se komunicira Redni broj elementa u polju odredinog ureaja (ako je u naredbi oznaen sa *); Adresa taga ili elementa u odredinom kontroleru Tajmaut za nepovezane poruke ili za uspostavljanje veze (automatski je postavljen na 30 s) Tajmaut za povezane poruke kada one uspostave vezu (ekanje odredinog kontolera da se odazove) Faktor sa kojim se mnoi .Connection rate (0 odgovara mnoenju sa 4)

MSG1.ST

BOOL

MSG1.EN MSG1.TO MSG1.EN_CC MSG1.ERR MSG1.EXERR MSG1.ERR_SRC MSG1.DN_LEN MSG1.REQ_LEN MSG1.DestinationLink MSG1.DestinationNode MSG1.SourceLink MSG1.Class MSG1.Attribute MSG1.Instance MSG1.LocalIndex MSG1.Channel MSG1.Rack MSG1.Group MSG1.Slot MSG1.Path MSG1.RemoteIndex MSG1.RemoteElement MSG1.UnconnectedTimeout MSG1.ConnectionRate MSG1.TimeoutMultiplier

BOOL BOOL BOOL INT DINT SINT INT INT INT INT INT INT INT DINT DINT SINT SINT SINT SINT STRING DINT STRING DINT DINT SINT

T. 7-5 STRUKTURA TIPA MESSAGE

PORUKE/136

Pri specifikaciji message naredbe neophodno je da se definie tag ija je struktura tipa MESSAGE, kao i da se odabere tip komunikacije. Ovaj tag mora biti globalnog tipa, odnosno pripadati kontroleru.

7.3.2.

IZVRAVANJE PRENOSA PODATAKA

Imajui na umu da se prenos podataka vri asinhrono u odnosu na izvravanje programa, jasno je da se, sa programske take gledita, izvoenjem message naredbe samo otpoinje prenos podataka. Pri tome se, ako je ulazni uslov promenjen na istinit, zahtev za prenos smeta u red ekanja koji je FIFO tipa.

SL. 7-7 REALIZACIJA MESSAGE NAREDBE

Opsluivanje reda ekanja i sam prenos podataka obavlja se u okviru komunikacionog dela softvera, kao to je to ilustrovano na Sl. 7-7. Kada naredba doe na vrh reda proverava se da li se radi o povezanoj ili nepovezanoj message naredbi. Za povezane keirane naredbe direktno se koristi otvorena veza, dok se ako one nisu keirane uspostavlja veza. Za razliku od toga, nepovezane message naredbe idu u bafer nepovezanih poruka, odakle se alju prema odreditu. Bitovi statusa ukazuju na tok prenosa i u izvesnom smislu upravljaju prenosom. Odnos izmeu ovih bitova prikazan je na Sl. 7-8, pri emu je pretpostavljeno da se vri prenos povezane nekeirane poruke (.EN_CC bit je postavljen na vrednost 0). U pre i post skenu izlazni uslov se resetuje.

7.3.3.

KONFIGURISANJE MESSAGE NAREDBE

U zavisnosti od vrste ureaja koji razmenjuju podatke koriste se razliiti tipovi message naredbi. Pregled tipova naredbi koje treba koristiti za komunikaciju izmeu kontrolera iz familije Logix5000 i pojedinih ureaja dat je u T. 7-6.

PORUKE/137

SL. 7-8 PROMENA BITOVA STATUSA U TOKU PRENOSA ODREDINI UREAJ LOGIX5000 I/O MODUL KOJI SE KONFIGURIE SLC, MICROLOGIX PLC-5 BLOCK-TRANSFER MODUL PLC-3 PLC-2 TIP MESSAGE NAREDBE CIP DATA TABLE READ/W RITE MULTIPLE RECONFIGURE, CIP GENERIC SLC TYPED READ/W RITE PLC5 TYPED READ/W RITE, PLC5 W ORD RANGE READ/W RITE BLOCK-TRANSFER READ/W RITE PLC3 TYPED READ/W RITE, PLC3 W ORD RANGE READ/W RITE PLC2 UNPROTECTED READ/WRITE

T. 7-6 PREGLED KORIENJA RAZLIITIH TIPOVA MESSAGE NAREDBI

Izbor tipa message naredbi i specifikacija svih elemenata neophodnih za obavljanje komunikacije vri se pomou menija za konfiguraciju naredbe (Sl. 7-9). Source Element READ adresa podatka u odredinom kontroleru koji se oitava. Pri specifikaciji adrese neophodno je da se koristi sintaksa odredinog kontrolera. WRITE adresa podatka u lokalnom kontroleru koji se prenosi u odredini vor. Ova adresa se moe odabrati meu ve postojeim tagovima ili se moe kreirati novi tag (opcija New Tag) Dest inat ion Element READ - adresa prvog elementa taga u lokalnom kontroleru u koji se smetaju oitani podaci. Ova adresa se moe odabrati meu ve postojeim tagovima ili se moe kreirati novi tag (opcija New Tag). WRITE adresa na koju se smeta podatak u odredinom kontroleru. Pri specifikaciji adrese neophodno je da se koristi sintaksa odredinog kontrolera. Number of Elements Broj elemenata koji se oitava. Ovaj broj zavisi od vrste podataka koji se prenose. Ako se komunikacija obavlja izmeu Logix5000 kontrolera onda je elemenat tag. Za komunikaciju sa drugim ureajima ovaj broj zavisi od tipa adresiranih podataka.

PORUKE/138

SL. 7-9 KONFIGURISANJE TIPA PORUKE

Prenos poruka izmeu Logix5000 kontrolera Za prenos poruka izmeu Logix5000 kontrolera koristi se CIP Data Table Read/Write message naredbe. Pri definisanju source i destination elementa neophodno je da se tagovi slau po tipu. Broj elemenata odreuje broj tagova koji e biti prenet pri izvravanju naredbe. Tag u lokalnom kontroleru (u kome se nalazi poruka) moe biti tipa alias, dok tag u odredinom kontroleru mora biti tipa base.
Pr. 7-3 Konfiguracija message naredbe kojom se oitavaju tri elementa jednodimenzionalnog polja taga polje iz odredinog kontrolera i upisuju u polje primljeni_tag poev od nultog elementa prikazana je na Sl. 7-10. SL. 7-10 KONFIGURISANJE CIP DATA TABLE READ

Komunikacija sa SLC i Micr oLogix kontr oler om Za prenos poruka izmeu Logix5000 kontrolera i SLC ili MicroLogix kontrolera koriste se SLC Typed Read/Write naredbe. Podaci u SLC ili MicroLogix kontroleru mogu biti smeteni u datotekama tipa F (Float), N(Integer) ili L(Long Integer). Pri tome treba imati na umu da se datoteka tipa L moe definisati samo kod kontrolera MicroLogix 1200 ili 1500. Odgovarajui tagovi u lokalnom ControlLogix kontroleru moraju biti REAL, INT odnosno DINT tipa respektivno. Tag u lokalnom kontroleru Logix5000 moe biti tipa alias.
Pr. 7-4 SL. 7-11 KOMUNIKACIJA SA SLC/MICROLOGIX
KONTROLEROM

Konfiguracija naredbe kojom se dva elementa jednodimenzionalnog polja

PORUKE/139

taga celobrojno_polje u lokalnom kontroleru, poev od treeg elementa polja, prenose i upisuju u celobrojnu datotetku broj 7 SLC (ili MicroLogix) kontrolera, na adresama N7:5 i N7:6 prikazana je na Sl. 7-11.

Komunikacija sa PLC5 i PLC3 kontroler om Za komunikaciju sa oba tipa kontrolera koriste se dva tipa naredbi. Typed Read/Write naredbama prenose se 16-bitni celobrojni, realni ili string (za kontrolore PLC5) podaci. Pri tome se uva integritet podataka (Sl. 7-12). Ove naredbe su, u osnovi, iste kao i pri komunikaciji sa SLC kontrolerima. Korespondencija datoteka u PLC kontrolerima sa tipovima tagova u Logix5000 kontrolerima prikazana je u tabeli T. 7-7. Pri tome treba obratiti panju na injenicu da se DINT tip PLC LOGIX5000 moe koristiti samo ako je podatak u opsegu (-32,768; B INT 32,767), odnosno ako zauzima jednu 16-bitnu re. Konano, F REAL treba se podsetiti i da kontroleri PLC3 podravaju samo N i F INT N tipove datoteka. DINT, SINT Word Range Read/Write naredbe prenose niz S INT sukcesivnih 16-bitnih rei nezavisno od tipova podataka. To ST STRING znai da struktura podataka, pa u tom smislu i vrednost zavise od tipa podataka koji se prenose (Sl. 7-12). T. 7-7 KORESPONDENCIJA
TIPOVA PODATAKA

16-bitna re PLC/SLC kontrolera 1 2 3 4 Typed Read/Write

32-bitna re Logix5000 kontrolera 1 2 3 4

16-bitna re PLC/SLC kontrolera 1 2 3 4 Word Range Read/Write

32-bitna re Logix5000 kontrolera 2 4 1 3

SL. 7-12 NAIN RAZMENE PODATAKA Pr. 7-5 Konfiguracija naredbe kojom se dva elementa jednodimenzionalnog polja taga celobrojno_polje u lokalnom kontroleru, poev od treeg elementa polja, prenose i upisuju u celobrojnu datotetku broj 12 PLC5 kontrolera, na adresama N12:10 i N12:11 prikazana je na Sl. 7-13. SL. 7-13 KOMUNIKACIJA SA PLC5 KONTROLEROM
OUVANJE INTEGRITETA PODATAKA

Pr. 7-6 Konfiguracija naredbe kojom se 6 sukcesivnih 16-bitnih rei, poev od adrese N12:10 u kontroleru PLC3 prenose u Logix5000 kontroler i smetaju u tag celobrojno_polje u lokalnom kontroleru, poev od prvog elementa polja, prikazana je na Sl. 7-14. Obratiti panju na injenicu da e ovi podaci zauzeti samo prva tri

SL. 7-14 KOMUNIKACIJA SA PLC3 KONTROLEROM


PRENOS NIZA 16-BITNIH REI elementa polja u lokalnom kontroleru.

PORUKE/140

Komunikacija sa PLC2 kontroler om PLC2 Unprotected READ/WRITE naredbama obezbeuje se prenos 16-to bitnih rei iz nekog polja PLC2 tabele podataka u Logix5000 kontroler, odnosno iz kontrolera u PLC2. Imajui u vidu da se radi o 16-to bitnim reima neophodno je obezbediti korespondenciju sa strukturom taga. Najee se koriste tagovi koji su polja INT tipa. Block transfer Ovaj tip message naredbi se koristi za komunikaciju sa block-transfer modulima preko udaljene U/I mree (Universal Remote I/O). Budui da se za udaljeni U/I modul tano zna o kojim podacima se radi, pri konfiguraciji ovih naredbi potrebno je jedino da se definie adresa taga u lokalnom kontroleru. Podaci koji se prenose su 16-bitne rei, to znai da tag u lokalnom kontroleru treba da bude polje celobrojnog tipa. Samo se po sebi razume da tag moe da bude i bilo koja struktura dovoljne duine. Najvei broj 16-bitnih rei koji moe da se prenese je 64. Ukoliko se eli da sam modul odredi broj podataka koji se alje (Read naredba) potrebno je specificirati 0 kao broj elemenata. Na isti nain, ako se kod Write naredbe specificira 0, prenee se svih 64 celobrojnih rei (tagovi INT tipa).

SL. 7-15 KONFIGURACIJA BLOCK TRANSFER MESSAGE NAREDBE

I/O Reconfigurat ion Ovaj tip naredbi koristi se za rekonfiguraciju I/O modula bez prekidanja njegovog rada. To znai da za vreme rekonfiguracije ulazni modul nastavlja da kontroleru alje prikupljene podatke, dok izlazni modul nastavlja da upravlja ureajima SL. 7-16 MENI ZA KONFIGURACIJU NAREDBE koji su za njega vezani. Ova message naredba ne zahteva nikakve dodatne parametre (Sl. 7-16). Adresa modula ija se rekonfiguracija vri definie se pomou dela menija za specifikaciju komunikacije, o emu e kasnije biti vie rei.
Pr. 7-7

SL. 7-17 ANALOGNI MODUL U SLOTU 2 KONTROLERA Pretpostavimo da je analogni modul an_ulaz postavljen u slotu 2 kontrolera ControlLogix

PORUKE/141

(Sl. 7-17). Za ovaj modul, pri njegovoj specifikaciji, generisan je odgovarajui tag ija je adresa Local:2:C. Deo strukture ovog taga prikazan je na Sl. 7-18.

SL. 7-18 STRUKTURA TAGA ANALOGNOG ULAZNOG MODULA Pretpostavimo da je pod odreenim uslovima neophodno da se rekonfigurie gornja granica alarma na kanalu 0 i to tako to bi se vrednos postavila na 40. Kao to se sa vidi adresa ovog podatka je Local:2:C.Ch0Config.HAlarmLimit i u njoj je trenutno upisana vrednost 10. Traena promena moe da se realizuje pomou leder ranga koji je prikazan na Sl. 7-19. Pri tome je pretpostavljeno da se rekonfiguracija obavlja kada tag rekonfiguracija dobije vrednost 1. Korienje ONS naredbe ima za cilj da sprei da se ova naredba izvri samo jedanput.
Pri detektovanjuu uzlayne ivice taga rekonfiguracija u odgovarajuci tag se upise nova vrednost alarma, zatim se pom ocu message naredbe ova vrednost prenese na analogni ulazni modul rekonfiguracija M OV ONS Move Source 40 Dest Local:2:C.Ch0Config.HAlarm Lim it 10.0 promena_alarma.EN / M SG M essage M essage Control promena_alarma ... EN DN ER

SL. 7-19 LEDER RANG ZA REKONFIGURACIJU ANALOGNOG ULAZNOG MODULA

CIP Gener ic por uke Ove poruke se koriste za izvravanje niza akcija (Service) vezanih za komunikaciju kao i za dijagnostiku U/I modula. Sve akcije su predefinisane pomou odgovarajuih servisnih kodova. Parametri koji se definiu pri konfiguraciji naredbe zavise od vrste akcije koja se izvodi. Tipian izgled menija dat je na Sl. 7-20.

PORUKE/142

SL. 7-20 MENI ZA KONFIGURACIJU CIP GENERIC MESSAGE NAREDBE AKCIJA SERVICE TYPE SOURCE
TAG TIPA INT[5] IME_TAGA[0]- maska

DESTINATION

INSTANCE

IMPULSNI TEST NA DIGITALNOM IZLAZNOM MODULU

Pulse Test

taaka koje se testiraju (jedna taka u jednoj akciji) IME_TAGA[ [1] ostaviti 0 IME_TAGA[ [2] irina impulsa (u stotinama s, obino 20) IME_TAGA[ [3] zero cross delay (u stotinama s, obino 20) IME_TAGA[ [4] provera kanjenja

OSTAVITI PRAZNO

PREDEFINISANA

RESET ELEKTRONSKOG OSIGURAA NA DIGITALNOM IZLAZNOM MODULU RESET LEOVANE DIJAGNOSTIKE NA DIGITALNOM U/I MODULU ODLEAVANJE ALARMA NA ANALOGNIM U/I MODULIMA

Reset Electronic Fuse

TAG TIPA DINT

OSTAVITI PRAZNO

PREDEFINISANA

Reset Latched Diagnostic (I) ili (O)

TAG TIPA DINT

NE POSTOJI

PREDEFINISANA

Odabrati eljeni Unlatch (I) ili (O)

NE POSTOJI

NE POSTOJI

BROJ KANALA

T. 7-8 PREGLED AKCIJA U OKVIRU CIP GENERIC NAREDBE

Ukoliko se akcije odnose na dijagnostiku U/I modula, adresa modula se definie pomou dela menija za specifikaciju komunikacije.

PORUKE/143

Pregled akcija kao i parametara koje je potrebno definisati za dijagnostiku modula prikazani su u tabeli T. 7-8.

7.3.4.

SPECIFIKACIJA KOMUNIKACIJE

U okviru menija za specifikaciju komunikacije definie se ureaj sa kojim lokalni kontroler razmenjuje poruku, kao i nain na koji se poruka prenosi (Sl. 7-21).
Putanja do odredinog ureaja sa kojim se komunicira Komunikacioni metod ili adresa modula Izbor povezane ili nepovazene poruke, kao i keirane ili ne keirane veze povezanih poruka

SL. 7-21 MENI ZA KONFIGURACIJU KOMUNIKACIJE

U principu putanja ima format oblika Port, slede a_adr esa, port, slede a_adr esa, port, Pregled brojeva koji su pridrueni pojedinim portovima, kao i odgovarajuih adresa dat je u
MREA BACKPLANE DF1 (SERIAL, SERIAL CHANNEL 0) DF1 CHANNEL 1 (SERIAL CHANNEL 1) CONTROLNET Port 1 2 ADRESA STANICE (0 254) 3 2 BROJ VORA (1 99 DECIMALNO) MODUL NA ETHERNET/IP MREI U JEDNOM OD FORMATA: IP ADRESA (npr. 10.10.10.10) IP ADRESA:PORT (npr. 10.10.10.10:24) DNS IME (npr. REZERVOAR) DNS IME:PORT (npr. REZERVOAR:24) 8#BROJ_VORA (1 77 OKTALNO) Sledea_adresa BROJ SLOTA U MODULU

ETHERNET/IP

DH+ CHANNEL A

DH+ CHANNEL B

Sa gledita definisanja putanje do odredinog ureaja mogua su tri sluaja. U/I konfiguracija lokalnog kontrolera sadri odredini modul koristiti opciju Browse za selekciju tog modula U/I konfiguracija lokalnog kontrolera ima samo lokalni komunikacioni modul preko koga se izlazi na mreu koristiti opciju Browse za selekciju lokalnog komunikacionog modula, a zatim ukucati ostatak putanje

T. 7-9 PARAMETRI ZA SPECIFIKACIJU PUTANJE

PORUKE/144

U/I konfiguracija lokalnog kontrolera ne sadri nijedan modul koji je potreban za prenos poruke ukucati celu putanju. Oigledno je da se putanja se najjednostavnije definie ukoliko je ureaj sa kojim se komunicira eksplicitno naveden u U/I konfiguraciji kontrolera. Otuda se, iako to nije neophodno, veoma esto svi ureaji navode u U/I konfiguraciji.
Pr. 7-8 Posmatra se kontroler ControlLogix ija se U/I konfiguracija prikazana na Sl. 7-22. Kao to se vidi kontroler je opremljen modulima koji omoguvaju realizaciju svih tipova poruka.

SL. 7-22 U/I KONFIGURACIJA KONTROLERA CONTROLLOGIX Definisanje putanja i ostalih parametara komunikacije ilustrovano je na primerima koji slede.
a. KOMUNIKACIJA SA MODULOM KOJI SE NALAZI U ASIJI ZAJEDNO SA LOKALNIM KONTROLEROM

Budui da sama injenica da se modul nalazi u asiji kontrolera ukazuje da se radi o Logix5000 kompatibilnom moduliu, za ovu vrstu komunikacija koristi se CIP DATA TABLE READ/WRITE tip poruke. Komunikacija se obavlja preko Backplan-a, to znai da je implicitno specificiran CIP metod komunikacije. Kompatibilnost modula dovodi i do toga da se podaci razmenjuju kao tagovi, to znai da nema potrebe za dodatnom specifikacijom bilo kakvih parametara. Otuda je za konfiguraciju specifikacije neophodno jo jedino da se specificira odgovarajua putanja. Putanja moe adresirati bilo koji modul koji je specificiran u U/I konfiguraciji, kao to je to ilustrovano na Sl. 7-23. Iz menija se vidi da korisnik sam odabira da li e poruke biti povezane ili nepovezane. Ukoliko se odaberu povezane poruke, onda se one po elji mogu keirati ili ne.

PORUKE/145

Komunikacija sa drugim ControlLogix kontrolerom

Komunikacija sa lokalnim analognim ulazom

Komunikacija sa udaljenim digitalnim ulazom

SL. 7-23 PRIMERI PUTANJA ZA KOMUNIKACIJU SA MODULOM KOJI SE NALAZI U U/I KONFIGURACIJI
b. KOMUNIKACIJA PREKO ETHERNET MREE SA MODULIMA KOJI NISU SPECIFICIRANI U U/I KONFIGURACIJI

Za ovu vrstu komunikacije tip message naredbe zavisi od tipa modula koji se nalazi u mrei, kao to je to ilustrovano na Sl. 7-24. Budui da se za komunikaciju koristi CIP metod, nije potrebno da se specificiraju bilo koji drugi parametri. Komunikacija sa ControlLogix kontrolerom u mrei (CIP metod implicitno specificiran)

Poruka moe biti povezana ili nepovezana Komunikacija sa ControlLogix kontrolerom koji se nalazi u slotu 3 ControlLogix kontrolera u mrei na datoj IP adresi. (CIP tip poruke implicitno specificiran)

Poruka moe biti povezana ili nepovezana

PORUKE/146

Komunikacija sa kontrolerom u mrei preko lokalnog komunikacionog modula koji se nalazi u slotu 9, a nije specificiran u U/I konfiguraciji

Komunikacija sa SLC/MicroLogix kontrolerom koji se nalazi u mrei na datoj IP adresi SLC tip poruke Metod komunikacije (CIP) mora da se specificira

(Ista putanja i za komunikaciju sa PLC5 kontrolerom za PLC tip poruke) Poruke su nepovezane SL. 7-24 PRIMERI PUTANJA ZA KOMUNIKACIJU PREKO ETHERNET MREE
c. KOMUNIKACIJA PREKO CONTROLNET MREE

Komunikacija preko ControlNet mree specificira se na isti nain kao i komunikacija preko Ethernet mree, s tim to u komunikaciji uestvuju ControlNet komunikacioni moduli. Primeri specifikacije komunikacije dati su na Sl. 7-25. Komunikacija sa ControlLogix kontrolerom u voru 4 mree (CIP tip poruke implicitno definisan)

Komunikacija sa CLX kontrolerom koji se nalazi u slotu 3 CLX kontrolera u voru broj 4 mree (CIP tip poruke implicitno definisan)

PORUKE/147

Komunikacija sa kontrolerom u mrei preko lokalnog komunikacionog modula koji se nalazi u slotu 9, a nije specificiran u U/I konfiguraciji

Komunikacija sa PLC5 kontrolerom koji se nalazi u voru broj 4 mree. PLC5 tip poruke Metod komunikacije (CIP) mora da se specificira, poruka je uvek nepovezana

SL. 7-25 PRIMERI PUTANJA ZA KOMUNIKACIJU PREKO CONTROLNET MREE


d. KOMUNIKACIJA PREKO DH+ MREE

Kontroler se za DH+ mreu vezuje preko DHRIO modula i to onog kanala koji je konfigurisan za DH+ mreu. U datom primeru to je kanal B (Sl. 7-26). Putanja vodi do DHRIO modula u kontroleru. Pored putanje neophodno je da se odabere DH+ metod komunikacije, kao i da se specificiraju tri parametra: Channel Kanal A ili B koji je specificiran za DH+ mreu Source Link Link ID koji je pridruen backplane-u kontrolera u tabeli rutiranja DHRIO modula Destination Link Link ID udaljene DH+ veze na kojoj se nalazi odredini ureaj Destination Node Oktalna adresa odredinog ureaja Ukoliko postoji samo jedna DH+ veza i ukoliko RSLinx softver nije korien za konfiguraciju DHRIO SL. 7-26 MENI ZA KONFIGURACIJU KOMUNIKACIJE modula i Source i Destination Link treba specificirati kao 0.

SL. 7-27 KONFIGURACIJA ZA KOMUNIKACIJU PREKO DH+ MREE Ilustracija vezivanja kontrolera tipa SLC ili PLC prikazana je na Sl. 7-27. Obratiti panju na injenicu da ova vrsta komunikacije uvek koristi vezu, koja se moe po elji keirati ili ne.

PORUKE/148

e. KOMUNIKACIJA SA RADNOM STANICOM KOJA PRIMA PORUKE PREKO ETHERNET ILI CONTROLNET MREE
PREKO RSLINX-A

Metod komunikacije with Source ID omoguava da neka aplikacija (u radnoj stanici ili HMI ureaju) primi podatke iz kontrolera. Pri tome je potrebno definisati i sledee parametre Source Link Remote ID topika u RSLinx softveru Destination Link Virtual Link ID postavljen u RSLinx-u (0 65535) Destination Node Destination ID (0 77 oktalno) koji aplikacija daje RSLinx-u. (Za DDE topic u RSLinx-u treba koristiti 77) Putanja specificira mreni modul (EtherNet ili ControlNet) preko koga se obavlja komunikacija (Sl. 7-28).

SL. 7-28 KONFIGURACIJA ZA KOMUNIKACIJU SA RADNOM STANICOM Kao to se iz menija vidi ove poruke su nepovezane.
f.

KOMUNIKACIJA SA UDALJENIM MODULOM PREKO UNIVERZALNE UDALJENE U/I MREE

Kao to je ve reeno komunikacija sa udaljenim modulom se odvija pomou Block transfer message naredbi. Putanja vodi do lokalnog DH/RIO modula preko koga su vezani udaljeni U/I. Pri odabiranju RIO metoda komunikacije neophodno je da se specificira kanal za koji je adapter vezan, ID asije koji je dodeljen pri konfiguraciji udaljenog adaptera (Rack), redni broj grupe modula sa kojima se komunicira (Group), kao i redni broj slota u udaljenoj asiji u kome se modul nalazi

SL. 7-29 KONFIGURACIJA ZA KOMUNIKACIJU SA UDALJENIM U/I MODULIMA PREKO RIO ADAPTERA Ova vrsta poruka je uvek povezana i moe se po elji keirati.

PORUKE/149

g. KOMUNIKACIJA SA UDALJENIM MODULOM PREKO CONTROLNET MREE

SL. 7-30 KONFIGURACIJA ZA KOMUNIKACIJU SA UDALJENIM U/I MODULIMA PREKO CONTROLNET MREE Da bi se sa udaljenim modulom komuniciralo preko ControlNet mree neophodno je da se u U/I konfiguraciji specificira lokalni komunikacioni Controlnet module i da se za njega vee udaljeni adapter za koji se vezuju udaljeni U/I. U tom sluaju pri specifikaciji konfiguracije putanja vodi do adaptera, metod komunikacije je Controlnet, dok se kao Slot specificira redni broj slota u kome se modul nalazi. Poruke su uvek povezane (Sl. 7-30).

7.3.5.

BROJ BAFERA ZA NEPOVEZANE PORUKE

U principu ako vie poruka komunicira sa vie ureaja svaka od njih koristi po jednu vezu. Meutim, ako vie poruka komunicira sa istim ureajem onda one koriste vie veza samo ako su aktivne (ulazni uslov istinit) u isto vreme. U protivnom, ako se na primer podaci naizmenino oitavaju i upisuju u neki ureaj, obe poruke e deliti istu vezu. Za uspostavljanje veze povezanih poruka kao i za prenos nepovezanih poruka kontroler koristi nepovezane bafere, odnosno memorijski prostor u kome se privremeno smetaju relevantni podaci (Sl. 7-7). Svaki bafer zauzima 1.1 K bajtova memorije. Nezavisno od toga da li je message naredba povezana ili ne, ona e koristiti bafer za nepovezane poruke za uspostavljanje veze. Ukoliko je poruka povezana i keirana ona pri kasnijim aktivacijama nee vie koristiti bafer. Broj nepovezanih bafera je poetno postavljen na 10, s tim to se moe poveati do 40. Prvih 10 bafera se koristi za nepovezane poruke, uspostavljanje veze povezanih poruka, U/I veza i veza za proizvedene i primljene tagove. Jedanaesti bafer namenjen je uspostavljanju U/I veza i veza za proizvedene i primljene tagove. Preostali baferi, ako su definisani, koriste se iskljuivo za iniciranje povezanih poruka i izvravanje prenosa nepovezanih poruka. Za odreivanje broja nepovezanih bafera, kao i za specifikaciju njihovog broja koriste se CIP GENERIC naredbe. Odre ivanje broja nepovezanih baf era Konfiguracija CIP GENERIC naredbe koja se koristi pri odreivanju broja nepovezanih bafera prikazana je na Sl. 7-31.

SL. 7-31 KONFIGURACIJA MESSAGE NAREDBE ZA ODREIVANJE BROJA NEPOVEZANIH BAFERA

Source Element mora biti jednodimenzionalne polje duine 4, tipa SINT definisano na sledei nain spec_broja_bafera[0] = 1 spec_broja_bafera[1] = 0 spec_broja_bafera[2] = 17 spec_broja_bafera[3] = 0

PORUKE/150

Destination je jednodimenzionalno polje duine 10, tipa SINT, u kome se vrednosti svih elemenata postavljaju na 0. Kada se naredba izvri broj nepovezanih bafera nalazi se u elementu broj 6 (broj_nep_bafera[6]). Komunikaciona putanja se specificira kao 1, broj slota u kome se nalazi kontroler koji sadri poruku (specificiran pri konfigurisanju kontrolera) Postavljanje br oja nepovezanih baf era Konfiguracija CIP GENERIC naredbe koja se koristi pri promeni broja nepovezanih bafera prikazana je na Sl. 7-32. Source Element mora biti jednodimenzionalne polje duine 8, tipa SINT definisano na sledei nain post_broja_bafera[0] = 1 post_broja_bafera[1] = 0 post_broja_bafera[2] = 17 post_broja_bafera[3] = 0 post_broja_bafera[4] = broj bafera koji se eli definisati post_broja_bafera[5] = 0 post_broja_bafera[6] = 0 post_broja_bafera[7] = 0 U skladu sa time i Source Length se postavlja na 8. Destination je jednodimenzionalno polje duine 6, tipa SINT, u kome se vrednosti svih elemenata postavljaju na 0. Komunikaciona putanja se specificira kao 1, broj slota u kome se nalazi kontroler koji sadri poruku (specificiran pri konfigurisanju kontrolera)

SL. 7-32 KONFIGURACIJA MESSAGE NAREDBE ZA POSTAVLJANJE BROJA NEPOVEZANIH BAFERA PR. 7-9

SL. 7-33 PROGRAM ZA POSTAVLJANJE BROJA NEPOVEZANIH BAFERA

PORUKE/151

Deo leder programa koji u prvom prolazu postavlja broj nepovezanih bafera na 12 prikazan je na Sl. 7-33. Pri tome je message naredba konfigurisana u skladu sa Sl. 7-32.

7.3.6.

KONVERZIJA TIPA PODATAKA I UPRAVLJANJE IZVRAVANJEM VIE NAREDBI

U principu Logix5000 kontroler koristi manje memorije i radi efikasnije ukoliko se koriste celobrojne promenljive duine od 32 bita (DINT). Otuda je, u cilju poveanja efikasnosti rada, poeljno da se pri komunikaciji sa ureajima koji ima 16-to bitne celobrojne podatke vri njihova konverzija. To se moe postii definisanjem internog bafera za privremeni smetaj podataka.
Pr. 7-10 Zadatak Kontroler MicroLogix 1400 vezan je za ControlLogix preko Ethernet mree, i ima IP adresu 10.10.10.10. U/I konfiguracija ControlLogix kontrolera prikazana je na Sl. 7-22. Napisati deo leder programa koji kada je ispinjen uslov (tag uslov=1) oitava tri celobrojne vrednosti iz kontrolera SLC koje se nalaze u celobrojnoj datoteci broj 12 (N12) na adresama rei 0, 1 i 2 i smeta ih u tag SLC_podaci koji je specificiran u ControlLogix kontroleru kao polje DINT[3]. Pored toga napisati i deo leder programa koji kada je ispunjen uslov (tag uslov=1) oitava tri celobrojne vrednosti iz taga SLC_podaci koji je specificiran u ControlLogix kontroleru kao polje DINT[3] i smeta ih u celobrojnu datoteku broj 12 (N12) kontrolera SLC i to poev od rei 0. Reenje U cilju poveanja efikasnosti rada kontrolera definisan je tag INT_bafer kao polje INT[3], tako da je msg1 naredba konfigurisana kao to je to prikazano na slici Sl. 7-35. Komunikaciona putanja definisana je u skladu sa Sl. 7-11.

Odgovarajui leder program prikazan je na Sl. 7-34.

SL. 7-34 PROGRAM ZA KONVERZIJU UITANIH PODATAKA

PORUKE/152

SL. 7-35 35 KONFIGURACIJA MSG1 I MSG2 NAREDBE Pr. 7-11

SL. 7-36 UPRAVLJANJE SLANJEM VE V EG BROJA GRUPISANIH H PORUKA

PORUKE/153

Kada message naredba postane aktivna ona ulazi u red ekanja. Budui da red moe da sadri najvie 16 naredbi, lako se moe desiti da je red pun. U tom sluaju message naredba ostaje aktivna, ali mora da eka na slobodno mesto u redu. Proces ubacivanja poruka u red, kao i ekanje na mesto u redu vri se automatski u toku izvoenja programa i moe se nadzirati praenjem stanja EN i EW bitova. Meutim, ukoliko se eli da se sprei sluajno zaguenje reda i da se celim procesom programski upravlja mogue je poruke grupisati u grupe i aktivirati sledeu grupu tek kada je prethodna zavrila rad. Pretpostavimoda su poruke grupisane u tri grupe, pri emu svaka grupa ima po dve poruke. Potrebno je obezbediti sukcesivno slanje ovih grupa poruka. Da bi se realizovao postavljeni zahtev definisana je celobrojna promenljiva msg_gr tipa SINT. Bitovi ove promenljive se koriste kao indikatori koji omoguavaju ili zabranjuju aktiviranje pojedine grupe poruka. Leder program koji realizuje postavljeni zahtev prikazan je na Sl. 7-36.

7.3.7.

SLANJE ISTE PORUKE VEEM BROJU KONTROLERA

Imajui u vidu da se svi podaci o udaljenom kontroleru sa kojim se komunicira sadre u strukturi MESSAGE koja se pridruuje kao tag naredbe, izvesno je da se ovi podaci mogu dinamiki menjati u toku rada. Na taj nain se omoguava da se jednom message naredbom podaci prenesu do vie ureaja. Da bi se realizovao ovaj postupak neophodno je da se obezbedi da se pri svakom izvravanju poruke adresira odgovarajui odredini (udaljeni) ureaj, i prenesu odgovarajui podaci.
msg_tag.RemoteElement

msg_tag.LocalIndex

msg_tag.Path

SL. 7-37 KORESPONDENCIJA SPECIFIKACIJA I TAGA KOJI JE STRUKTURA TIPA MESSAGE

Preklapanje podataka koji se razmenjuju preko razliitih ureaja moe da se izbegne ako se kao lokalni tag definie jednodimenzionalno polje kao to je to prikazano na Sl. 7-37. Naime, ako se pri specifikaciji lokalnog taga elemenat polja specificira kao [*] tada se u meniju otvara prostor za specifikaciju Index-a. Message naredba se izvrava tako to se u toku prenosa koristi elemenat iji je redni broj sadran u tagu kao re .LocalIndex. To zapravo znai da e svaki put kada se promeni indeks podaci da se upiu (WRITE naredba), odnosno oitaju (READ naredba) u drugi elemenat polja. Samo se po sebi razume da tip lokalnog taga zavisi od tipa podataka koji se prenose.

PORUKE/154

SL. 7-38 IZGLED KORISNIKE STRUKTURE KONFIGURACIJA_PORUKE

Problem adresiranja ureaja moe da se rei tako to e se obezbediti redefinicija relevantnih podataka u tagu pridruenom naredbi. Dva podatka koja definiu odredini ureaj su msg_tag.RemoteElement u koji se upisuje specificirani Source ili Destination Element msg_tag.Path u koji se upisuje putanja specificirana pri konfiguraciji poruke (Sl. 7-37). Imajui u vidu da je neophodno da se ovi podaci dinamiki menjaju logino je da se oni smeste u neko polje podataka i da se pre svake aktivacije message naredbe odgovarajui elementi polja prenesu na elemente lokalnog taga (RemoteElement i Path). Izloena ideja se najefikasnije realizuje ako se definie posebna korisnika struktura koja ima dva elementa string tipa. Ovaj tip je posledica injenice da su elementi strukture MESSAGE .RemoteElement i .Path zapravo tipa string. Izgled ovako definisane strukture prikazan je na Sl. 7-38.

SL. 7-39 IZGLED TAGA SPECIFIKACIJA_UREDJAJA

SL. 7-40 DEFINISANJE VREDNOSTI ELEMENATA TAGA SPECIFIKACIJA_UREDJAJA

PORUKE/155

Relevantni podaci za svaki ureaj se sada smetaju u jednodimenzionalno polje iji su elementi struktura konfiguracija_poruke. Dimenzija polja zavisi od broja ureaja sa kojima se komunicira. Izgled polja specifikacija_uredjaja dat je na Sl. 7-39. Konano, elementima taga specifikacija_uredjaja treba da se pridrue vrednosti udaljenog taga (ili adrese na kojoj se nalazi udaljeni podatak), kao i putanja do udaljenog ureaja (Sl. 7-40). Sada su pripremljeni svi elementi neophodni da se u leder programu omogui dinamika promena ureaja sa kojim se komunicira. Opisani postupak ilustrovan je u delu leder programa koji je prikazan na Sl. 7-41.

SL. 7-41 LEDER PROGRAM ZA REALIZACIJU SEKVENCE KOMUNIKACIJA

Kao to se vidi realizacija sukcesivnog prenosa poruka zahteva da se u leder programu obave sledei koraci. FORMIRANJE PROGRAMA KONFIGURACIJA MESSAGE NAREDBE Message naredba se mora poetno konfigurisati to znai da treba specificirati tag koji se pridruuje naredbi i odabrati CIP Data Table READ ili WRITE opciju. Neka je odabrani tag msg_tag. Zatim se kao odredini ili izvorni elemenat u lokalnom kontroleru odabere polje koje se u meniju specificira sa asteriskom. Neka je to tag lokalno_polje (*). Konano je potrebno je odabrati nekeiran prenos poruka. Naime, poto se ista

PORUKE/156

naredba koristi za sukcesivnu komunikaciju sa razliitim ureajima, oigledno je da nekeiran prenos nema nikakvog smisla. Preostali parametri se mogu proizvoljno popuniti.
INICIJALIZACIJA

Za odabiranje konfiguracije ureaja u polju specifikacija_ureaja koristi se tag index. Ovaj tag se poetno mora postaviti na vrednost 0. Pored toga, poto se msg_tag.LocalIndex strukture msg_tag koristi za promenu memorijskog prostora u lokalnom kontroleru u koji se smetaju preneti podaci, ili se iz njega oitavaju, i ova vrednost se mora poetno postaviti na nulu. Konano, za realizaciju sukcesivnog ponavljanja sekvence u prvom prolazu se utvruje i ukupni broj razliitih ureaja sa kojima se komunicira. To se postie oitavanjem dimenzije taga lokalno_polje. Inicijalizacija se vri samo u prvom prolazu..
REKONFIGURACIJA MESSAGE NAREDBE

Rekonfiguracija message naredbe realizuje se kopiranjem sadraja elemenata specifikacija_ureaja.RemoteElement[index] i specifikacija_ureaja.Path [index] u elemente msg_tag.RemoteElement i msg_tag.Path respektivno.
INDEKSIRANJE

Da bi poruke mogle da se alju sukcesivno razliitim ureajima neophodno je da auriraju tagovi index i msg_tag.LocalIndex strukture msg_tag. Ovo se postie dodavanjem 1 postojeim vrednostima.
PONOVNO OTPOINJANJE SEKVENCE

Da bi se obezbedilo da se ceo ciklus prenosa poruka stalno ponavlja kada se message naredba izvri poredi se trenutna vrednost taga index sa ukupnim brojem ureaja odreenim pri inicijalizaciji. Ukoliko su vrednosti jednake, to znai da je obavljena komunikacija sa svim ureajima i da treba ponovo celu sekvencu. Da bi se to omoguilo oba indeksa se resetuju na 0.

7.4. NAREDBA ZA TRENUTNI PRENOS IZLAZNOG SIGNALA


Kao to je ve reeno svi izlazi kontrolera auriraju se u skladu sa datim IOT vremenskim periodom ili automatski po Immediate Output zavretku jednog zadatka (ukoliko ta Update Tag izlaz IOT(izlaz); opcija nije iskljuena). Pored toga, <Local:3:O.Data[0]> mogue je i posebnom programskom naredbom IOT (Immediate Output) zahtevati auriranje izlaznog taga, odnosno taga koji je pridruen nekoj izlaznoj promenljivoj na U/I modulu, ili proizvedenog taga. U sluaju auriranja proizvedenog taga istovremeno se proizvodi i triger signal za kontroler koji prima proizvedeni tag. Ovaj signal se koristi za pokretanje jednog EVENT zadatka u kontroleru koji prima proizvedeni tag. Ime taga (Update Tag) koji se navodi u IOT naredbi moe biti izlazni tag vezan za neki izlazni modul ili proizvedeni tag. LEDER TEKST
Pr. 7-12 SPECIFIKACIJA IZLAZNOG TAGA Pri specifikaciji izlaznog taga neophodno je da se vodi rauna o sistemskim tagovima koji su dodelejeni izlaznom modulu pri konfiguraciji kontrolera. Pretpostavimo se u slotu 3 kontrolera nalazi analogni U/I modul, a u slotu 4 nalazi digitalni U/I modul (Sl. 7-22). Pri konfiguraciji ovih modula automatski su kreirani tagovi prikazani na Sl. 7-42. Ukoliko se radi o izlaznom modulu koji ima samo jednu re podataka, kao to je to modul u slotu 4, onda se kao ime taga mora navesti ceo tag, a ne njegov lan ili element. Ovo zapravo znai da

SL. 7-42 TAGOVI U/I MODULA U SLOTOVIMA 3 I 4

PORUKE/157

se IOT naredba odnosi na celu re, a ne na pojedinani bit (pin) digitalnog izlaza.Otuda je validna adresa za izlazni tag u IOT naredbi Local:4:O, dok se ne moe koristiti lan Local:4:O.Data ili neki njegov element, kao to je Local:4:O.Data.2. Samo se po sebi razume da se umesto taga Local:4:O moe koristiti tag koji je kreiran kao njegov alias tag. Meutim, ukoliko se radi o modulu koji ima vei broj izlaznih rei, kao to je recimo sluaj sa analognim U/I modulom koji se nalazi u slotu tri kontrolera, i ima dva izlazna kanala, tada se pri njegovoj moe odabrati da se pomou IOT naredbe istovremeno auriraju oba kanala ili samo jedan kanal. Kada se eli auriranje oba kanala tada je validan tag Local:3:O, ili njegov alias, a nije validan lan tog taga Local:3:O.Data. Ukoliko se, meutim, eli auriranje samo jednog kanala, recimo kanala 0, tada je validan tag Local:3:O.Data[0]. Pr. 7-13 Jedan kontroler upravlja radom podsistema A i generie podatke neophodne za upravljanje podsistemom B. Podaci koji se prenose smetaju se u tagu proizvedeni_tag. Kada se svi podaci upiu u njega, oni se pomou IOT naredbe prenose do kontrolera koji kontrolie rad podsistema B, u kome se inicira odgovarajui EVENT zadatak. Linija leder programa kojim se realizuje prenoenje taga dat je na . Kao to je ve ranije istaknzuto u cilju obezbeivanja koherentnosti prenetih podataka neophodno ja de si izvri njihovo kopiranje.
Indikator promene podataka novi_podaci 2 CPS Synchronous Copy File Source podaci_podsistem_B Dest proizvedeni_tag_za_B Length 1 IOT Immediate Output Update Tag proizvedeni_tag_za_B

SL. 7-43 LEDER RANG ZA PRENOENJE PROIZVEDENOG TAGA

SISTEMSKI PODACI/159

8. Informacije o stanju i radu kontrolera


8.1. NAREDBE ZA PRISTUPANJE SISTEMSKIM PODACIMA
Naredbe GSV (Get System Value) i SSV (Set System Value) koriste se za programsko otavanje i postavljanje sistemskih podataka koji su smeteni u razliitim objektima. Ove naredbe su na raspolaganju u leder programima i u struktuiranim teskt programima. LEDER
SSV Set System Value Class Name Instance Name Attribute Name Source GSV Get System Value Class Name Instance Name Attribute Name Dest ? ? ? ? ??

TEKST

SSV (ClassName, InstanceName, AttributeName, Source);

? ? ? ? ??

GSV (ClassName, InstanceName, AttributeName, Dest);

Parametri koji se koriste u ovim naredbama zavise od vrste objekta koji se navodi kao ClassName. Pri formiranju naredbe dozvoljeni objekti se dobijaju iz menija. Kada se odabere obejkat, onda se ukoliko se on pojavljuje na vie mesta (vie istanci) mora specificirati objekat koji se eli posmatrati InstanceName. Ukoliko je objekat jedinstven, kao InstanceName bira se INSTANCE. Zatim se se za dati objekat bira jedan od dozvoljenih atributa (AttributName). Na kraju se specificira tag koji je izvor ili odredite podataka. Samo se po sebi razume da se tip ovog taga mora slagati sa tipom atributa. Postupak izbora parametara ilustrovan je na Sl. 8-1.

SL. 8-1 IZBOR PARAMETARA ZA GSV I SSV NAREDBE

SISTEMSKI PODACI/160

Pri izvoenju GSV naredbe samo se specificirana dimenzija podatka kopira u Dest tag. Tako se, na primer, ako je atribut specificiran kao SINT, a odredini tag kao DINT, samo 8 donjih bajtova odredinog taga biti promenjen, dok e preostalih 24 bitova ostati neizmenjeno. Koncepcija objekta i nain njihovom pristupanju zamenjuje zapravo dijagnostike datoteke koje se moraju specificirati pri radu sa kontrolerima tipa SLC, MicroLogix ili PLC.

8.2. PREGLED OBJEKATA 8.2.1. CONTROLLER


Ovaj objekat obezbeuje informaciju o radu kontrolera.
ATRIBUT TIP TAGA OPIS

TimeSlice ControllerLogTotal EntryCount ControllerLogExecution ModificationCount ConrtrollerLogUnsaved EntryCounts ControllerLogAutoWrite ExecutionCount ConfigureMask

INT DINT DINT DINT BOOL DINT

Procenat raspoloivosti CPU koji je pridruen komunikacijama (dozvoljeno 10% - 90%) Broj zapisanih ulaza od poslednje nadogradnje firmwarea Broj zapisanih ulaza nastalih zbog promene programa i zadataka, on-line editovanja ili promene timeslice-a Broj zapisani ulaza koje treba preneti na removable memoriju samo GSV Indikator dozvole upisivanja na removable memoriju MSG naredba Maska za ModificationCount MSG naredba

8.2.2.

CONTROLLERDEVICE

Ovaj objekat identifikuje fizike hardverske komponente kontrolera. Samo se po sebi razume da se za njega moe koristiti samo GSV naredba. Atributi objekta koji su na raspolaganju dati su u tabeli T. 8-1.
ATRIBUT TIP TAGA

DeviceName ProductCode ProductRev SerialNumber Status Type Vendor

SINT[33] INT INT DINT INT INT INT

OPIS - GSV ASCII niz karaktera koji identifikuje kataloki broj kontrolera i memorijske ploe. Prvi bajt sadri broj ASCII karaktera. Kod koji identifikuje tip kontrolera

Identifikuje verziju proizvoda Serijski broj ureaja Bitovi statusa: Rezervisano (0-3), Device Status (4-7), Fault Status (12-13), Logix Specific Status (12-13),Mode (14-15) Identifikator ureaja (kontroler = 14) Identifikator proizvoaa (Allen Bradley = 1)

T. 8-1 ATRIBUTI OBJEKTA CONTROLLERDEVICE

8.2.3.

CST

Objekat CST (Coordinated system time) obezbeuje sistemsko vreme za sve ureaje u jednoj asiji. Objekat ima dva atributa iji je opis dat u tabeli T. 8-2. Atributi se mogu oitati pomou GSV naredbe.
ATRIBUT TIP TAGA

CurrentStatus CurrentValue

INT DINT[2]

OPIS - GSV Tekue stanje koordiniranog sistemskog vremena. Pojedini bitovi blie odreuju status Trenutna vrednost tajmera. Prvi element sadri donja 32 bajta, a drugi gornja

T. 8-2 ATRIBUTI OBJEKTA CST

SISTEMSKI PODACI/161

8.2.4.

DF1

Ovaj objekat predstavlja interfejs za DF1 komunikacioni drajver koji se moe konfigurisati kao serijski port.
ATRIBUT TIP TAGA

ACKTimeout DiagnosticCounters DuplicateDetection

DINT INT[19] SINT

EmbededResponcEnable

SINT

ENQTransmitLimit

SINT

EOTSupression ErrorDetection MasterMessageTransmit

SINT SINT SINT

NAKReceiveLimit

SINT

NormalPollGroupSize

INT

PollingMode

SINT

ReplyMessageWait StationAddress SlavePollTimeout TransmitRetries

DINT INT DINT SINT

OPIS - GSV Period vremena koji se eka na ACK signal pre nego to se konstatuje neuspeh. Koristi se samo u komunikaciji taka-na-taku. Polje brojaa koji sadre dijagnostike informacije o uspeno i neuspeno prenetim porukama Indikator konfigurisanog parametra za omoguavanje detekcije identinog (duplog) paketa (0 omoguen, 1 neomoguen) Indikator opcije za ubacivanje ugraenog odgovora u paket (0 inicira se samo kad se jedan primi; 1 uvek se ugrauje). Koristi se samo u komunikaciji taka-nataku. Broj upita (ENQ) koji se alju pri uspostavljanju komunikacije posle ACK tajmauta. Koristi se samo u komunikaciji taka-na-taku. Izostavljanje EOT paketa kao odziv na prozivanje od strane mastera (0 paket se alje, 1 paket se ne alje). Koristi se samo kod slave-a. Specificiran metod za detekciju greke (0 BCC, 1 CRC) Tekue stanje prenosa u masteru (0 master izmeu pozivanja stanica, 1 master u fazi pozivanja stanica). Koristi se samo kod mastera. Broj NAK signala koji e se primiti pre nego to se prekine prenos. Koristi se samo u komunikaciji takana-taku. Broj stanica koje se pozivaju u polju ne prioritetnih stanica, posle pozivanja svih stanica sa prioritetom. Koristi se samo kod mastera. Tekui nain pozivanja stanica od strane mastera (0 message based, nedozvoljena inicijacija od strane slave-a; 1 message based, ali uz dozvoljenu inicijaciju od strane slave-a; 2 standardni singlemessage per node scan; 3 standardni multiplemessage per node scan) Vreme koje master eka posle prijema ACK signala, pre nego to se pozove slave i od njega zatrai odgovor.

Tekua adresa serisjkog porta Vreme koje slave eka na poziv od strane mastera, pre nego to izjavi da ne moe da zapone prenos zbog neaktivnosti mastera. Broj ponovnih pokuaja slanja poruke u nastojanju da se dobije ACK signal. (Koristi se i za master i za slave).

T. 8-3 ATRIBUTI OBJEKTA DF1 KOJI SE MOGU OITATI POMOU GSVNAREDBE

Atributi koji se mogu oitati pomou GSV naredbe dati su u tabeli T. 8-3., dok su atributi koji se mogu postaviti pomou SSV naredbe prikazani u tabeli T. 8-4.
ATRIBUT TIP TAGA OPIS - SSV

PendingACKTimeout PendingDuplicateDetection

DINT SINT

Period vremena koji e se ekati na ACK signal. Indikator konfigurisanog parametra za omoguavanje detekcije identinog

SISTEMSKI PODACI/162

PendingEmbededResponcEnable PendingENQTransmitLimit PendingEOTSupression PendingErrorDetection PendingMasterMessageTransmit PendingNAKReceiveLimit PendingNormalPollGroupSize PendingPollingMode PendingReplyMessageWait PendingStationAddress PendingSlavePollTimeout PendingTransmitRetries

SINT SINT SINT SINT SINT SINT INT SINT DINT INT DINT SINT

Indikator opcije za ubacivanje ugraenog odgovora u paket Broj upita (ENQ) koji se alju pri uspostavljanju komunikacije posle ACK tajmauta. Indikator izostavljanja EOT paketa kao odziv na prozivanje od strane mastera Specifikacija metoda za detekciju greke Stanje mastera u pogledu prenosa Broj NAK signala koji e se primiti pre nego to se prekine prenos. Broj stanica koje se pozivaju u polju ne prioritetnih,, posle pozivanja svih sa prioritetom. Nain pozivanja stanica od strane mastera Vreme koje master eka posle prijema ACK signala, pre nego to se pozove slave i od njega zatrai odgovor. Tekua adresa serisjkog porta Vreme koje e slave da eka na poziv od strane mastera, pre nego to izjavi da ne moe da zapone prenos zbog neaktivnosti mastera. Broj ponovnih pokuaja slanja poruke u nastojanju da se dobije ACK signal.

T. 8-4 ATRIBUTI OBJEKTA DF1 KOJI SE MOGU POSTAVITI POMOU SSV NAREDBE

Da bi se vrednosti atributa prenele na serijski port potrebno je koristiti CIP GENERIC message naredbu. Naime, prvo se sve eljene vrednosti pomou SSV naredbe upiu u Pending atribute, a zatim se aktivira message naredba. Komunikaciona putanja se specificira kao 1,s gde je s broj slota u kome je smeten kontroler iji se serijski port konfigurie. Putanja se moe specificirati i samo navoenjem imena kontrolera.
PR. 8-1 ZADATAK Formirat deo leder programa koji e da postavi vrednost 5 za PendingSlavePollTimeout na serijskom portu kontrolera koji je smeten u slotu 6 i nazvan "kontroler2" kada indikator prom_DF1 promeni vrednost sa nula na 1. REENJE Konfigurisana mesagge naredba, kao i odogovarajui leder program prikazani su na Sl. 8-2 i Sl. 8-3. Iako se, kao to je pokazano na slici, putanja moe zadati na dva naina, RSLogix5000 e prepoznati da se na toj adresi nalazi kontroler koji ima ime i automatski e umesto putanje upisati to ime.

SL. 8-2 KONFIGURISANJE MESSAGE NAREDBE ZA PROMENU ATRIBUTA DF1

SISTEMSKI PODACI/163

promena_df1 0

Ako se promenio bit promena_DF1 postavi bit m enjaj (One Shot Rising) OSR One Shot Rising Storage Bit jedan_prolaz Output Bit m enjaj

SB OB

Ako je vreme za prom enu postavi vrednost atributa m enjaj 1 SSV Set System Value Class Name DF1 Instance Nam e Attribute Nam e PendingSlavePollTimeout Source pol_vrem e 5

promena_df1 2

Ako je vreme za prom enu inicijar slanje poruke serijskom portu MSG Message promena_vremena ... Message Control

EN DN ER

(End)

SL. 8-3 LEDER PROGRAM ZA PROMENU ATRIBUTA SERISJKOG PORTA

8.2.5.

FAULTLOG

Ovaj objekat sadri informacije o grekama u radu kontrolera. Atributi su dati u tabeli T. 8-5. Ovi atributi se mogu oitati pomou GSV naredbe i menjati pomou SSV naredbe. U principu, ovi atributi se koriste u kreiranju rutina za obradu greaka (Fault Handler)
ATRIBUT TIP TAGA OPIS

MajorEvents MinorEvents MajorFaultBits

INT INT DINT 1 3 4 5 6 7 8

bitovi

MinorFaultBits

11 DINT 4 8 9 10

Broj znaajnih (major) greaka koje su se dogodile od poslednjeg resetovanja ovog brojaa Broj manjih (minor) greaka koje su se dogodile od poslednjeg resetovanja ovog brojaa Pojedinani bitovi ukazuju na tip tekue znaajne greke Gubitak napajanja Greka u komunikaciji sa U/I modulima Izvravanje neke naredbe u programu Fault handler rutina Watchdog tajmer je izmerio zadano vreme Prekoraenje steka Za vreme download-a projekta kontroler je stavljen u RUN mode Greka u kretanju osa Pojedinani bitovi ukazuju na tip tekue manje greke Izvravanje neke naredbe u programu Watchdog tajmer je izmerio zadano vreme Greka u komunikaciji na serijskom portu Oslabljena baterija T. 8-5 ATRIBUTI OBJEKTA FAULTLOG

SISTEMSKI PODACI/164

PR. 8-2 ZADATAK Formirat deo leder programa koji prati stanje baterije REENJE Traeni leder program prikazan je na Sl. 8-4
minor_tajmer.DN / Tajm er sam sebe resetuje i tako neprekidno radi m ereci po 1 m inutu TON Timer On Delay minor_tajmer Timer Preset 60000 Accum 0

EN DN

Posle isteka jednog m inuta ocitava se stanje m inor gresaka minor_tajmer.DN 1 GSV Get System Value Class Nam e FaultLog Instance Name Attribute Name MinorFaultBits Dest minor_bitovi 0

Ako je postavljen bit 10 znaci da je baterija slaba m inor_bitovi.10 2 slaba_baterija

SL. 8-4 LEDER PROGRAM ZA PRAENJE STANJA BATERIJE

8.2.6.

MESSAGE

Broj message objekata odgovara broju specificiranih tagova tipa message. Svaki tag je jedna instanca. Atributi pridrueni ovom objektu dati su u tabeli T. 8-6.
ATRIBUT TIP TAGA OPIS

ConnectionPath ConnectionRate MessageType Port

SINT[130] DINT SINT SINT

TimeoutMultiplier

SINT

UnconnectedTimeout

DINT

Putanja message naredbe. Prva dva bajta sadre duinu putanje izraenu u bajtovima. Zahtevana brzina prenosa paketa preko date veze Tip poruke. Vrednost 0 ima znaenje da poruka nije inicijalizovana Indikator porta preko koga se poruka prenosi (1 backplane, 2 serijski port) Parametar koji odreuje period vremena posle koga e se smatrati da je nastupio tajmaut i da treba zatvoriti vezu 0 tajmaut nastupa u periodu 4 x period auriranja 1 - tajmaut nastupa u periodu 8 x period auriranja 2 - tajmaut nastupa u periodu 16 x period auriranja Tajmaut period u s za sve nepovezane poruke

Da bi se promenio neki atribut neophodno je da se kao prvo pomou GSV naredbe oita atribut MessageType. Ova vrednost se privremeno smesti u neki tag. Zatim se pomou SSV naredbe atribut MessageType postavi na 0. Ovim je omogueno da se pomou SSV naredbe promeni eljeni atribut objekta. Konano se atribut MessageType vrati na vrednost koju je imao pre promene atributa.
Pr. 8-3 U message naredbi msg1 potrebno je da se kada se postavi indikator na 1 promeni

T. 8-6 ATRIBUTI OBJEKTA MESSAGE

SISTEMSKI PODACI/165

putanja. Nova vrednost putanje smetena je u polju dimenzije 130 iji je tag msg1_path. Deo leder programa kojim se realizuje ovaj zahtev prikazan je na Sl. 8-5.
Upamti originalni tip poruke, pa ga postavi na 0 da bi privremeno onemogucio slanje poruke, zatim promeni atribut i onda vrati originalni tip poruke cime ona ponovo moze da postane aktivna promena_putanje 0 GSV Get System Value Class Name Message Instance Name msg1 Attribute Name MessageType Dest pamti 0 SSV Set System Value Class Name Message Instance Name msg1 Attribute Name MessageType Source konst0 0

SSV Set System Value Class Name Message Instance Name msg1 Attribute Name ConnectionPath Source msg1_path[0] 0

SSV Set System Value Class Name Message Instance Name msg1 Attribute Name MessageType Source pamti 0

SL. 8-5 PROMENA ATRIBUTA U MESSAGE OBJEKTU U datom primeru se zapravo samo jedna SSV naredba koristi za promenu putanje. Preostale tri naredbe u rangu slue za omoguavanje promene atributa na nain koji je prethodno objanjen.

8.2.7.

MODULE

Objekat MODULE sadri podatke o U/I modulima koji su smeteni u asiju kontrolera. Budui da ima vie modula u naredbi je potrebno specificirati ime odreenog modula kao instancu.
ATRIBUT TIP TAGA OPIS SAMO GSV

EntryStatus FaultCode ForceStatus Instance LEDStatus

INT DINT INT DINT INT

Tekue stanje ulaz Broj koji predstavlja kod greke u radu modula Indikator forsiranja bitova (bit 0 bitovi se forsiraju, bit 1 forsiranje omogueno; vrednost bita 1="da", 0="ne") Broj instance objekta MODULE Specificira tekue stanje U/I LED-a na prednjoj ploi kontrolera

Atributi objekta koji se mogu oitavati prikazani su u tabeli T. 8-7. Potrebno je obratiti panju na injenicu da se atribut LEDStatus odnosi na sve module to znai da se za njega ne navodi instanca u naredbi. Vrednosti ovog atributa imaju sledee znaenje. LEDStatus =0 dioda ne svetli nema modula u U/I konfiguraciji LEDStatus =1 dioda trepe crveno nijedan U/I modul nije u radu LEDStatus =2 dioda trepe zeleno bar jedan modul nije u radu LEDStatus =3 dioda svetli zeleno svi U/I moduli rade. Samo jedan atribut objekta MODULE moe se i oitati i postaviti (T. 8-8).
ATRIBUT TIP TAGA OPIS

T. 8-7 ATRIBUTI OBJEKTA MODULE KOJI SE OITAVAJU POMOU GSV NAREDBE

Mode

INT

Tekui nain rada modula (Bit 0 = 1 generie se znaajna greka ukoliko bilo koja veza u modulu javi greku dok je modul u RUN mode-u; Bit 2 = 1 modul prelazi u stanje inhibit posle zatvaranja svih veza u modulu.

T. 8-8 ATRIBUT OBJEKTA MODULE KOJI SE MOE I OITAVATI (GSV) I POSTAVLJATI (SSV)

SISTEMSKI PODACI/166

PR. 8-4 ZADATAK Formirat deo leder programa koji prati da li se komunikacija na modulu dig_ulaz obavlja u predvienom vremenu REENJE Za praenje rada modula odabran je LED status koji daje informaciju zbirno o svim modulima. Ukoliko je ovaj bit postavljen izvesno je da sa jednim U/I modulom neto nije u redu. Zatim se proverava da li detektovana greka potie sa modula koji se prati. Ukoliko potie postavlja se odgovarajui indikator.
Neprekidno ocitavanje statusa LED dioa 0 GSV Get System Value Class Name Module Instance Name Attribute Name LedStatus Dest U_I_LED 0

Ako je status 2 postavljen isteklo je vreme za komunikaciju, proveri da je greska na digitalnom ulazu EQU GSV Equal Get System Value Module Source A U_I_LED Class Name 0 Instance Name dig_ulaz Source B 2 Attribute Name FaultCode Dest modul_fault 0

Ako postoji greska prijavi je na izlazu 2 NEQ Not Equal Source A modul_fault 0 Source B 0 dig_ulaz_greska

SL. 8-6 LEDER PROGRAM ZA PARAENJE RADA U/I MODULA Leder program koji prati stanje LED dioda prikazan je na Sl. 8-6. Obratiti panju na injenicu da u prvoj GSV naredbi nema instance, dok je u drugoj ima. Razlog lei u tome to se atribut koji se oitava u prvoj GSV naredbi odnosi na sve U/I module, dok se u drugoj on odnosi na pojedinani modul, pa je neophodno da se specificira konkretan modul.

8.2.8.

PROGRAM, ROUTINE

Ovaj objekat sadri relevantne informacije o programu. Da bi se preciziralo o kom se programu radi potrebno je specificirati njegovo ime kao instancu. Pregled atributa dat je u tabeli T. 8-9.
ATRIBUT TIP TAGA OPIS

DisableFlag Instance MajorFaultRecord MaxScanTime MinorFaultRecord SFCRestart

SINT DINT DINT[11] DINT DINT[11] INT

Indikator izvravanja programa (0 izvravanje je omogueno; 1 nije omogueno) Broj istance za ovaj program (ne moe da se menja SSV naredbom) Pamenje znaajnih greaka Najvee zabeleeno vreme izvravanja ovog programa (u mikrosekundama) Pamenje manjih greaka Ne koristi se

T. 8-9 ATRIBUTI OBJEKTA PROGRAM

SISTEMSKI PODACI/167

Greke (i znaajne i manje) se pamte u polju koje ima 11 elemenata. Ovi elementi sadre sledee informacije DINT[0] TimeLow donja 32 bita vrednosti timestamp naredbe u kojoj je nastala greka DINT[1] TimeHigh gornja 32 bita vrednosti timestamp naredbe u kojoj je nastala greka DINT[2] donja dva bajta su Type tip greke (program, U/I itd.). Gornja dva bajta su Code kod greke, koji zavisi od tipa DINT[3 -11] Info heksadecimalna informacija o greci Da bi se olakao pristup ovim atributima pogodno je da se definie struktura iji su lanovi tagovi koji predstavljaju pojedinane informacije. Objekat ROUTINE ima samo jedan atribut Instance tipa DINT iz koga se pomou GSV naredbe oitava broj instance rutine ije je ime navedeno u naredbi. Pored ovih informacija kontroler podrava i jedan broj kljunih rei koji ukazuju na status a koje se mogu koristiti kao tagovi bit uslova u naredbama. Bitovi koji se postavljaju kao indikatori izvravanja naredbi su sledei. S:V vrednost je vea od maksimalne vrednosti koju promenljiva moe da primi S:Z rezultat operacije je 0 S:N rezultat je negativan S:C obavljanje aritmetike operacije prouzrokovalo je carry S: MINO R manje znaajna greka pri izvravanju naredbe S:FS indikator prvog skan-a (posle pre-skena) u programu
PR. 8-5 ZADATAK Formirat deo leder programa koji proverava da li je posle obavljanja artimetike operacije dolo do greke. REENJE

SL. 8-7 KORISNIKA STRUKTURA ZA GREKE NAREDBI U cilju lake manipulacije informacijama koje se dobijaju o grekama definisana je korisnika struktura minor_greska prikazana na Sl. 8-7. Zatim je specificiran tag greska_naredbe tipa minor_greska. Deo leder programa koji koristi ove podatke i proverava prekoraenje opsega dat je na Sl. 8-8. Kada se jedanput postavi bit S:MINOR ostaje postavljen sve do kraja sken ciklusa. Ukoliko se

SISTEMSKI PODACI/168

eli da on detektuje sve greke do kojih dolazi neophodno je da se programski resetuje.


Prvo resetuj kod za m inor gresku da bi bio siguran da je nastala u datoj naredbi S:MINOR MUL U Multiply Source A

a 200 Source B 10000000 Dest b 0

Ako je greska nastala proveri da li je to zbog prekoracenja (ocitaj vrednost prekoracenja) i resetuj kod m inor greske sadrzi kodove m inor greske pri izvrsavanju naredbe S:MINOR S:MINOR GSV Get System Value U Class Nam e Program Instance Nam e THIS Attribute Nam e MINORFAULTRECORD Dest greska_naredbe.TstampLow 0

SL. 8-8 KORISNIKA STRUKTURA ZA GREKE NAREDBI

8.2.9.

SERIALPORT

Ovaj objekat obezbeuje interfejs za serijski port. Atributi ovog objekta koji se mogu oitavati pomou GSV naredbe dati su u tabeli T. 8-10.
ATRIBUT TIP TAGA OPIS

Baudrate DataBits Parity RTSOffDelay RTSSendDelay StopBits

DINT SINT SINT INT INT SINT

Brzina prenosa Broj bitova podatka po karakteru (7 7 podataka za ASCII kod; 8 8 bitova podatka) Specifikacija parnosti (0 nema bita parnosti; 1 neparna parnost; 2 parna parnost) Period vremena posle slanja poslednjeg karaktera pre nego to se obori RTS signal (u multiplima od 20ms) Period vremena od trenutka podizanja RTS signala do slanja prvog karaktera (u multiplima od 20ms) Broj stop bitova (1 ili 2 za ASCII karaktere)

T. 8-10 ATRIBUTI OBJEKTA SERIALPORT KOJI SE OITAVAJU POMOU GSV NAREDBE

Svi ovi atributi mogu se i postaviti pomou SSV naredbe (T. 8-11).
ATRIBUT TIP TAGA OPIS

PendingBaudrate PendingDataBits PendingParity PendingRTSOffDelay PendingRTSSendDelay PendingStopBits

DINT SINT SINT INT INT SINT

Brzina prenosa Broj bitova podatka po karakteru (7 7 podataka za ASCII kod; 8 8 bitova podatka) Specifikacija parnosti (0 nema bita parnosti; 1 neparna parnost; 2 parna parnost) Period vremena posle slanja poslednjeg karaktera pre nego to se obori RTS signal (u multiplima od 20ms) Period vremena od trenutka podizanja RTS signala do slanja prvog karaktera (u multiplima od 20ms) Broj stop bitova (1 ili 2 za ASCII karaktere)

T. 8-11 ATRIBUTI OBJEKTA SERIALPORT KOJI SE POSTAVLJAJU POMOU SSV NAREDBE

Da bi se vrednosti atributa prenele na serijski port potrebno je koristiti CIP

SISTEMSKI PODACI/169

GENERIC message naredbu. Naime, prvo se sve eljene vrednosti pomou SSV naredbe upiu u Pending atribute, a zatim se aktivira message naredba. Ukoliko je slot u kome se nalazi serijski port oznaen kao broj_slota, tada se putanja specificira kao 1,broj_slota.
PR. 8-6 ZADATAK Formirat deo leder programa koji e da postavi vrednost 5 za PendingRTSOffDelay na serijskom portu kontrolera koji je smeten u slotu 6 i nazvan "kontroler2" kada indikator prom_DF1 promeni vrednost sa nula na 1. REENJE Konfigurisana mesagge naredba, kao i odogovarajui leder program prikazani su na Sl. 8-9 i Sl. 8-10.
prom ena_rtsof 0 Ako se prom enio bit promena_rtsoff postavi bit menjaj (One Shot Rising) OSR One Shot Rising Storage Bit jedan_prolaz Output Bit m enjaj

SB OB

Ako je vreme za prom enu postavi vrednost atributa m enjaj 1 SSV Set System Value SerialPort Class Name Instance Nam e Attribute Nam e PendingRTSOffDelay Source rtsof_vreme 5

promena_df1 2

Ako je vreme za prom enu inicijar slanje poruke serijskom portu MSG Message Message Control promena_rtsoffa ...

EN DN ER

SL. 8-9 LEDER PROGRAM ZA PROMENU ATRIBUTA SERISJKOG PORTA

SL. 8-10 LEDER PROGRAM ZA PROMENU ATRIBUTA SERISJKOG PORTA

SISTEMSKI PODACI/170

8.2.10. TASK
Ovaj objekat daje informacije o stanju zadatka ije je ime navedeno kao instanca u naredbi. Svi atributi objekta, prikazani u tabeli T. 8-12mogu se i oitavati i postavljati.
ATRIBUT TIP TAGA OPIS

DisableUpdateOutputs EnableTimeOut InhibitTask Instance LastScanTime MaxInterval MaxScanTime MinInterval OverlapCount Priority Rate StartTime

DINT DINT DINT DINT DINT DINT[2] DINT DINT[2] DINT INT DINT DINT[2]

Dozvoljava ili zabrana promene izlaza po zavretku zadatka (0 promena dozvoljena; 0 nije dozvoljena) Dozvola ili zabrana tajmauta EVENT zadatka (0 tajmaut nije dozvoljen; 0 dozvoljen) Dozvola ili zabrana izvoenja zadatka (0 izvoenje dozvoljeno; 0 nije dozvoljeno) Broj instance ovog objekta Trajanje poslednjeg izvoenja ovog zadatka (u s) Najvei vremenski interval izmeu dva sukcesivna izvoenja zadatka (DINT[0] donja 32 bita podatka) Trajanje najdueg izvoenja ovog zadatka (u s) Najmanji vremenski interval izmeu dva sukcesivna izvoenja zadatka (DINT[0] donja 32 bita podatka) Broj koji pokazuje koliko puta je izvoenje zadatka ponovo inicirano za vreme dok se on jo uvek izvodio Relativni prioritet ovog zadatka (0 15) Period (u s) za periodini zadatak Tajmaut (u s) za event zadatak Vrednost WALLCLOCKTIME u kome je poelo poslednje izvoenje zadatka (DINT[0] donja 32 bita podatka) Informacija o stanju zadatka (0 izvoenje EVENT zadatka pokrenuto EVENT naredbom, 1 izvoenje EVENT zadatka pokrenuto zbog tajmauta; 2 dolo je do overlap-a) Vremensko ogranienje za trajanje izvoenja svih programa unutar ovog zadatka (u s). Ako se postavi na 0 postavlja se 0.5s za periodini ili EVENT zadatak, i 5s za kontinualni.

Status

DINT

Watchdog

DINT

T. 8-12 ATRIBUTI OBJEKTA TASK

8.2.11. WALLCLOCKTIME
Ovaj objekat obezbeuje informaciju o vremenu koja se moe koristiti za upravljanje vremenskim redosledom rada. Atributi objekta (T. 8-13) mogu se i oitavati i postavljati.
ATRIBUT TIP TAGA OPIS

CSTOffset

DINT[2]

CurrentValue

DINT[2]

DateTime

DINT[7]

Pozitivni broj koji se dodaje atributu CurrentValue objekta CST izraen u s. (DINT[0] donja 32 bita podatka) Tekua vrednost asovnika (wall clock time) koja predstavlja vreme koje je proteklo od ponoi 1. Januara 1972. Godine. (DINT[0] donja 32 bita podatka) Objekti CST i WALLCLOCKTIME su povezani matematikim relacijama u kontroleru. Npr. CST CurrentValue + WALLCLOCKTIME CSTOffset = WALLCLOCKTIME CurrentValue Datum i vreme DINT[0] godina DINT[1] mesec (1 - 12) DINT[2] dan (1 - 31)

SISTEMSKI PODACI/171

DINT[3] sat (0 23) DINT[4] minut (0 59) DINT[5] sekund (0 59) DINT[6] mikrosekund (0 999 999) T. 8-13 ATRIBUTI OBJEKTA WALLCLOCKTIME

PID/173

9. PID - Proporcionalno integralno diferencijalno upravljanje


9.1. PID NAREDBA
Kontroler koji realizuje linearne zakone upravljanja PID - se moe formirati softverski kao poseban modul koji se koristi u leder ili struktuiranom tekst programu. U principu PID modul uzima vrednost analognog signala sa nekog mernog mesta i korienjem proporcionalno integralno diferencijalnih zakona upravljanja, izraunava upravljaki signal, koji se LEDER TEKST preko analognog izlaznog PID modula prenosi na izvrni Proportional Integral Derivative organ. Ukoliko to struktura upravljanje ... PID PID(PIDtag, izvrnog organa zahteva, Process Variable Local:3:I.In[0].Data ProcesVariable, analogni izlazni signal se Tieback 0 Tieback, moe pretvoriti i u irinski Control Variable Local:3:O.Data[0] PID Master Loop 0 ControlVariable, modulisan impulsni signal. Inhold Bit uslov PIDMasterLoop, PID modul se realizuje Inhold Value Local:3:O.Data[0] Inholdbit, jednom naredbom PID Setpoint 0.0 InholdValue); naredbom koja pripada Process Variable 0.0 Output % 0.0 grupi naredbi akcije. U principu ova naredba se izvrava tako to se obavi jedan korak diskretnog algoritma PIDa. Pri specifikaciji PID naredbe neophodno je da se definiu sledei parametri. PID tag tipa strukture PID u koji se smetaju svi relevantni podaci o kontroleru Process Var iable ( PV) izlaz procesa kojim se upravlja pomou PIDa (analogni ulazni signal). Tag moe biti INT, SINT, DINT ili REAL tipa. Tieback runa komanda koja e se koristiti umesto izlaza kontrolera. Ukoliko se ne eli ova opcija treba postaviti vrednost 0. Tag moe biti INT, SINT, DINT ili REAL tipa. Control var iable (CV) upravljaka promenljiva, izlaz kontrolera koji se zadaje kao ulaz procesa (analogni izlazni signal). Tag moe biti INT, SINT, DINT ili REAL tipa. PID Master Loop tag tipa strukture PID za master PID, ukoliko se formira kaskadna veza dva PID-a i ovaj koji se specificira je slave. Ukoliko se ne eli ova opcija postaviti vrednost 0. Inhold Bit tekue stanje inhold bita na analognom ulaznom kanalu koji omoguava prelaz bez udara. Ova opcija je mogua ako je odabran analogni modul koji je podrava. Ukoliko se ne eli ova opcija postaviti vrednost 0. Tag je tipa BOOL. Inhold Value podatak oitan na izlaznom kanalu koji pomae da se ostvari prelaz bez udara. Ukoliko se ne eli ova opcija postaviti vrednost 0. Tag moe biti INT, SINT, DINT ili REAL tipa. U okviru naredbe prikazuju se i sledee tri vrednosti. Setpoint prikazuje tekuu vrednost referentnog ulaznog signala Proces Variable prikazuje tekuu vrednost izlazne promenljive procesa. Otput (%) prikazuje trenutnu vrednost izlaza u procentima. Kada se formira PID naredba neophodno je i da se pomou menija za konfiguraciju naredbe specificira i itav niz dodatnih parametara. Da bi se smisao ovih parametara razumeo neophodno je da se kao prvo razmotre razliiti naini na koji se PID moe realizovati.

9.2. RUNI REIM RADA


U fazi dovoenja procesa u radnu taku procesom se, po pravilu upravlja runim komandama. Tek kada se proces nae u okolini radne take prelazi se na automatski reim rada u kome se zatvara povratna sprega i realizuje PID zakon upravljanja.

PID/174

PID naredba podrava dva naina runog rada: softverski runi nain rada i eksterni runi nain rada. SOFTVERSKI RUNI NAIN RADA Ovaj nain rada, poznat i kao rad sa postavljenim izlazom (set output mode), omoguava korisniku da programski postavi procenat izlazne vrednosti PIDa. U tom sluaju ova vrednost (SO) se koristi kao vrednost upravljake promenljive. U praksi, ova vrednost se, po pravilu, zadaje od strane operatera. EKSTERNI RUNI NAIN RADA U ovom nainu rada koristi se runa komanda (Tieback value) za zadavanje signala koji predstavlja izlaz kontrolera. Ova komanda se, po pravilu generie od strane operatera pomou nekog davaa signala. Signal u PID naredbu ulazi preko Tieback taga i skalira se u opsegu od 0% do 100% u skladu sa zadanim maksimalnim i minimalnim vrednostima tieback signala. Ukoliko su u PID naredbi odabrana oba naina rada PID naredba e realizovati eksterni nain rada.

9.2.1.

ZAKON UPRAVLJANJA U AUTOMATSKOM REIMU RADA

PID naredba omoguava da se realizuje jedan od 8 moguih oblika proporcionalno integralno diferencijalnog zakona upravljanja. Razlika je u tome da li se diferencijalno dejstvo realizuje po signalu greke ili po izlazu procesa, da se greka rauna kao razlika referentne i izmerene vrednosti ili obratno, kao i da li se parametri dejstava zadaju nezavisno ili preko zajednikog pojaanja i vremenskih konstanti integralnog i diferencijalnog dejstva. Zavisno pojaanje, diferencijalno dejstvo po signalu greke

Zavisno pojaanje, diferencijalno dejstvo po signalu procesnoj promenljivoj

1 dE CV Edt BIAS; greka ESPPV ili EPVSP T dt


t 0 t

Nezavisno pojaanje, diferencijalno dejstvo po signalu greke

1 dPV CV Edt BIAS; greka ESPPV ili EPVSP T dt


0

CV E Edt
t 0 t

Nezavisno pojaanje, diferencijalno dejstvo po signalu procesnoj promenljivoj

CV E Edt
0

Blok dijagram realizacije PIDa dat je na Sl. 9-1. Ove osnovne jednaine se mogu dodatno modifikovati da bi se obezbedio efikasniji rad kontrolera. FILTRIRANJE IZVODA (DERVIATIVE SMOOTHING) U cilju izbegavanja velikih izvoda procesne promenljive (PV) koji mogu nastati zbog uma merenja, procesna promenljiva se proputa kroz niskopropusni filtar prvog reda. Ova opcija se moe po elji ukljuiti ili ne. PROMENA REIMA RADA - PRELAZ BEZ UDARA (BUMPLESS TRANSFER) PID naredba automatski obezbeuje prelaz bez udara pri prelazu sa runog upravljanja na automatsko. Ovo se realizuje izraunavanjem potrebne vrednosti izlaza integralnog dejstva koja omoguava da izlaz kontrolera (CV), iako se ne vodi na proces,

dPV BIAS; greka ESPPV ili EPVSP dt

dE BIAS; greka ESPPV ili EPVSP dt

PID/175

prati zadani upravljaki signal u sluaju softverskog runog upravljanja ili stvarni signal koji sistem dobija spolja uz pomo rune komande (tieback signal). Ukoliko kontroler nema integralno dejstvo, prelaz bez udara se ostvaruje podeavanjem vrednosti bias tako da se obezbedi da CV prati upravljaki signal koji daje runo upravljanje. U tom sluaju, kada PID pree na automatski rad bias zadrava poslednju vrednost koju je imao pre promene reima rada. PONOVNO OTPIINJANJE RADA BEZ UDARA (BUMPLESS RESTART) PID naredba moe da u interakciji sa 1756 analognim izlaznim modulom podri ponovno otpoinjanje rada bez udara kada kontroler prelazi iz programskog u run nain rada. Naime, kada analogni izlazni modul izgubi komunikaciju sa kontrolerom ili kada prepozna da je kontroler uao u programski nain rada on postavi svoj izlaz na vrednost koja je zadana kao fault condition pri konfiguraciji modula. Pri povratku u run nain rada PID naredba moe preuzeti tu upamenu vrednost i postaviti je kao vrednost izlazne promenljive. Ova opcija se omoguava postavljanjem InholdI bita, i Inhold Value pri formiranju naredbe PIDa. MRTVA ZONA (DEAD BAND) U principu specifikacijom irine mrtve zone odreuje se oblast u okolini zadane referentne vrednosti unutar koje e se smatrati da je greka nula, te se nee menjati upravljaka promenljiva. Na taj nain se spreava neprekidni rad izvrnog organa i poveava njegov vek trajanja. Ukoliko se ne eli da kontroler ima mrtvu zonu ova vrednost se postavlja na nulu. Zero-crossing je naziv za upravljanje sa mrtvom zonom u okviru koga se za izraunavanje upravljanja koristi vrednost greke ak i kad ona ue u mrtvu zonu, sve dok ne doe do promene njenog predznaka (signal greke proe kroz nulu). Kada greka promeni predznak prestaje promena upravljake promenljive sve dok greka ne izae iz mrtve zone. Izbor zero-crossing upravljanja je opcioni. To znai da kontroler moe da ima mrtvu zonu, ali da ova vrsta upravljanja ne mora da bude ukljuena. Da bi moglo da se realizuje upravljanje sa mrtvom zonom neophodno je da upravljaka promenljiva bude realna. SPREAVANJE NAVIJANJA (ANTIRESET WINDUP) PID naredba automatski izbegava navijanje integratora usled zasienja izvrnog organa. U tu svrhu se svaki put kada CV vrednost dostigne zadanu minimalnu ili maksimalnu vrednost prestaje promena vrednosti izlaza integralnog dejstva sve dok se CV ne vrati unutar granica. OGRANIENJE UPRAVLJANJA (OUTPUT LIMITING) Postavljanjem granice upravljakog signala (izraene u procentima od punog opsega) ograniava se maksimalna vrednost upravljakog signala (CV). Ukoliko vrednost upravljakog signala dostigne ovu granicu, postavie se bit alarma i spreie se dalji porast upravljakog signala. FEEDFORWARD (BIAS) U principu bias se koristi za realizaciju prenosnog upravljanja (feedfward) u cilju smanjivanja uticaja poremeaja izlaza. Ova opcija se esto koristi ukoliko kontroler nema integralno dejstvo i kad sistem ima znaajno transportno kanjenje. KASKADNE PID PETLJE Kaskadna (serijska) veza dve PID naredbe realizuje se specifikacijom referentne vrednosti drugog PIDa (slave PID) kao izlaz (u procentima) prvog PIDa (master). Slave PID automatski konvertuje ovu vrednost u inenjerske jedinice u skladu sa definisanim parametrima skaliranja. Blok dijagrama realizacije kaskadnog PIDa dat je na Sl. 9-2.

PID/176

SL. 9-1 BLOK DIJAGRAM REALIZACIJE PID NAREDBE

PID/177

9.2.2.

PERIODINO PONAVLJANJE PID NAREDBE

U skladu sa teorijom direktnog digitalnog upravljanja, PID naredba se mora izvravati periodino, sa nekom zadanom periodom odabiranja. U principu period ponavljanja PID naredbe definie se pomou LoopUpdate parametra (UPD). Ovaj parametar obezbeuje da se PID naredba aurira sa datom periodom. Problem, meutim, nastaje ukoliko zadatak u kome se nalazi PID naredba uopte nije aktivan u trenutku kada bi trebalo da se izvri auriranje PIDa. Drugim reima postavlja se pitanje kako formirati zadatak u koji se postavlja PID naredba i kako obezbediti da naredba bude aktivna u trenutku kada treba da se aurira. Najjednostavniji nain da se ostvari periodino ponavljanje PIDa je da se naredba postavi u periodini zadatak. U tom sluaju se parametar auriranja PIDa (UPD) mora odabrati tako da bude jednak periodu periodinog zadatka. Ukoliko se koristi ova opcija neophodno je da se obezbedi da se analogni ulaz preko koga se dobija procesna promenljiva oitava sa daleko manjim periodom od perioda ponavljanja zadatka. Ovo je neophodno da bi se smanjila vremenska razlika izmeu trenutaka odabiranja izlaza procesa i trenutaka izraunavanja upravljanja. Drugi, neto manje taniji, nain za realizaciju periodinog rada PIDa je da se njegov rad uslovi programskim asovnikom koji meri vreme jednako eljenom periodu. Ovaj pristup je manje taan jer se radi o softverski realizovanom asovniku koji meri vreme sa izvesnom grekom. Ukoliko se odabere ovaj pristup i dalje je neophodno da se analogni ulaz odabira sa daleko veom uestanou. Najtaniji metod za implementaciju PID naredbe ostvaruje se korienjem RTS opcije analognog ulaznog modula. Naime, kada je za analogni modul zadan RTS period onda po isteku tog vremena analogni modul aurira svoje ulaze. Istovremeno on aurira i informaciju o vremenu (.RollingTimeStamp lan strukture pridruene analognom ulazu). Ukoliko se prati promena ove vrednosti, onda se im se detektuje da je dolo do promene aktivira PID naredba. Pri tome, da bi se obezbedilo da zadatak u kome se nalazi PID naredba detektuje promenu analognog ulaza, neophodno je da taj zadatak bude periodini i da mu period bude manji od RTS perioda. Ako se koristi ovaj metod auriranja PID onda treba izjednaiti vrednosti parametara UPD i RTS.

PID/178

SL. 9-2 BLOK DIJAGRAM REALIZACIJE KASKADE PID NAREDBI

PID/179

9.2.3.

KONFIGURACIJA PID NAREDBE

Konfiguracija PID naredbe obavlja se pomou tri menija. Prvi od menija, meni Configuration slui za izbor jednaine PIDa, postavljanje vremena auriranja PIDa, maksimalne i minimalne vrednosti upravljakog signala za antireset windup i irine mrtve zone. Pored toga, vri se i izbor opcija u pogledu filtriranja izlaza procesa, realizacije promene bez udara promenom vrednosti bias-a, upravljanja u mrtvoj zoni pomou zero-crossing metode, praenja procesne promenljive i realizacije serijske veze PIDa (Sl. 9-3).

SL. 9-3 MENI CONFIGURATIONI ZA KONFIGURACIJU PID NAREDBE

Sledei meni Tuning slui za definisanje parametara zakona upravljanja, kao i za izbor izmeu runog i automatskog rada. Izgled ovog menija zavisi od toga da li je pri konfiguraciji odabran zakon upravljanja sa nezavisnim ili zavisnim pojaanjima (Sl. 9-4).

PID/180

SL. 9-4 MENI TUNING ZA SLUAJ NEZAVISNIH I ZAVISNIH POJAANJA

Trei meni Alarm (Sl. 9-5) slui za zadavanje maksimalne dozvoljene gornje i donje vrednosti procesne promenljive. Dostizanje ovih vrednosti postavlja alaram. Istovremeno se zadaje i odstupanje od ovih vrednosti koje e dovesti do prestanka uslova za alarm. Naime kada signal pone da opada ispod gornje granice, alarm e prestati tek kada on dostigne vrednost gornje granice umanjenu za pozitivno odstupanje. Na isti nain, izlazak iz alarma prekoraenja donje granice bie registrovan kada signal poraste preko granice koja je odreena negativnom devijacijom. Pored SL. 9-5 MENI ALARMS PID NAREDBE toga u okviru ovog menija definie se i granice alarma koji signalizira da je procesna promenljiva u mrtvoj zoni. Poslednji meni Scaling (Sl. 9-6) slui za definisanje skala faktora. Naime ulazni signal koji obrauje PID, kao i upravljaka promenljiva koju on izraunava mogu predstavljati razliite fizike signale koji se kreu u razliitim opsezima. Pri tome, i ulazni i izlazni signali su zapravo elektrini signali srazmerni fizikim signalima koje predstavljaju. Nesumnjivo je da je za korisnika izuzetno zametno da prati ponaanje PIDa oitavanjem ovih vrednosti koje, same po sebi, nita ne govore o samom fizikom procesu kojim se upravlja. Drugim reima, korisniku je mnogo pogodnije da prati rad PIDa ukoliko su sve promenljive izraene u fizikim (inenjerskim) jedinicama. Ovu konverziju PID moe sam da obavi ukoliko se, pri konfiguraciji modula, definiu minimalne i maksimalne vrednosti procesne promenljive izraene u brojnim vrednostima elektrinog signala koji se dobija sa mernog instrumenta, kao i u inenjerskim jedinicama. Konano, sledei uobiajenu inenjersku praksu, vrednost upravljakog signala PID modula se prikazuje u procentima od pune vrednosti. Drugim reima, polazi se od pretpostavke da svaki realni izvrni organ ima zasienje, odnosno da postoji neka maksimalna aktivnost koju on moe da obavi i koja predstavlja 100% njegove aktivnosti. Otuda se je neophodno da se specificira vrednost upravljake promenljive kojoj odgovara 100% aktivnosti, kao i vrednost kojoj odgovara 0% aktivnosti. Ista specifikacija mora da se izvri i za oekivane vrednosti eksternog runog upravljanja koje e se dobiti sa analognog ulaza sa koga se dovodi runa komanda (tieback). Ovde se maksimalne i minimalne vrednosti specificiraju u odnosu na neskalirane elektrine signale koji se dobijaju sa analognog modula.

SL. 9-6 MENI SCALING ZA SKALIRANJE PROMENLJIVIH U PID NAREDBI

PID/181

U okviru ovog menija postoji i opcija za inicijalizaciju PIDa. Ovu opciju treba aktivirati ako se u toku rada PIDa promene parametri skaliranja.

9.2.4.
9-1.

STRUKTURA PID TAGA


Tag pridruen PID naredbi je struktura tipa PID. Izgled strukture dat je u tabeli T.

Ova struktura sadri sve konfiguracione promenljive postavljene pomou odgovarajueg menija, kao i interne promenljive neophodne za realizaciju algoritamskog koraka PIDa.
ATRIBUT TIP TAGA OPIS

.CTRL .EN .CT .CL .PVT .DOE .SWM .CA .MO :PE .NDF .NOBC .NOZC .INI .SPOR .OLL .OLH .DVNA .DVPA .PVLA .PVHA .SP .KP .KI .KD .BIAS .MAXS .MINS .DB .SO .MAXO .MINO .UPD .PV .ERR .OUT .PVH .PVL .DVP .DVN .PVDB

DINT BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL

Bitovi stanja kojima se moe pristupiti i pojedinano Ulazni uslov naredbe, .CTRL(31) Kaskadni tip (0 slave; 1 master), .CTRL(30) Kadskadna veza (0 ne; 1 da), .CTRL(29) Praenje procesne promenljive (0 ne; 1 da), .CTRL(28) Izvod (0 PV, 1 greka), .CTRL(27) Identifikator proizvoaa (Allen Bradley = 1), .CTRL(26) Greka (0 E=SP-PV; 1 - E=PV-SP), .CTRL(25) Nain rada (0 automatski; 1 runo), .CTRL(24) Jednaina PIDa (0 nezavisna pojaanja; 1 zavisna), .CTRL(23) Filtriranje izlaza procesa (0 da; 1 ne), .CTRL(22) Izraunavanje biasa (0- da; 1 ne), .CTRL(21) Zero-crossing upravljanje (0 da; 1 ne), .CTRL(20) Inicijalizacija PIDa (0 ne; 1 da), .CTRL(15) Referentna vrednost izvan opsega (0 ne; 1 da), .CTRL(14) CV ispod donje granice (0 ne; 1 da), .CTRL(13) CV iznad gornje granice (0 ne; 1 da), .CTRL(12) Devijacija je u donjem alarmu (0 ne; 1 da), .CTRL(10) Devijacija je u gornjem alarmu (0 ne; 1 da), .CTRL(9) PV je u donjem alarmu (0 ne; 1 da), .CTRL(8) PV je u gornjem alarmu (0 ne; 1 da), .CTRL(7) Referentna vrednost (Set point) Proporcionalno dejstvo Integralno dejstvo (nezavisno u 1/s; zavisno u min/periodu) Diferencijalno dejstvo (nezavisno u s; zavisno u min) Vrednost biasa u % Maksimalna vrednost inenjerskih jedinica Minimalna vrednost inenjerskih jedinica Mrtva zona u inenjerskim jedinicima Postavljena vrednost upravljanja u % Gornja granica upravljanja (u %) Donja granica upravljanja (u %) Vreme auriranja PIDa (Loop update) u s Skalirana vrednost PV Skalirana vrednost greke Upravljanje u % Gornja granica PV alarma Donja granica PV alarma Pozitivna devijacaja granice alarma Negativna devijacaja granice alarma PV alarm za mrtvu zonu

PID/182

.DVDB .MAXI .MINI .TIE .MAXCV .MINCV .MINTIE .MAXTIE

REAL REAL REAL REAL REAL REAL REAL REAL

.DATA

REAL[17]

Devijacija alarma za mrtvu zonu Maksimalna neskalirana vrednost PV Minimalna neskalirana vrednost PV Vrednost za runo upravljanje Maksimalna vrednost CV koja odgovara vrednosti od 100% Minimalna vrednost CV koja odgovara vrednosti od 0% Minimalna vrednost Tieback koja odgovara vrednosti od 100% Maksimalna vrednost Tieback koja odgovara vrednosti od 0% Podaci [0] vrednost izlaza integralnog dejstva [1] privremena vrednost pri filtriranju izlaza [2] - prethodna vrednost .PV [3] - prethodna vrednost .ERR [4] - prethodna validna vrednost .SP [5] - procenat skaliranja [6] konstanta skaliranja .PV [7] konstanta skaliranja izvoda [8] prethodna vrednost .Kp [9] prethodna vrednost .Ki [10]- prethodna vrednost .Kd [11]- zavisno pojaanje .Kp [12]- zavisno pojaanje .Ki [13]- zavisno pojaanje .Kd [14]- prethodna vrednost .CV [15]- konstanta deskaliranja .CV [16]- konstanta deskaliranja tieback promenljive T. 9-1 IZGLED STRUKTURE PID

UPRAVLJANJE/183

10.

Naredbe za upravljanje sistemima

10.1.OPTE KARAKTERISTIKE
U realizaciji upravljanja procesima javlja se jedan niz standardnih operacija koje je potrebno implementirati pri projektovanju kontrolera. Da bi se ovaj proces olakao razvijen je niz posebnih naredbi kojima se realizuju najee sretane operacije. Ove naredbe se mogu koristiti u funkcijskim blokovima i struktuiranom tekstu. Sve naredbe imaju definisane odgovarajue strukture podataka u kojima se smetaju sve relevantne informacije neophodne za realizaciju naredbe. PROGRAMSKA I OPERATORSKA KONTROLA Neke naredbe omoguavaju da se kontrola nad izvravanjem vri programski ili od strane operatera. U prvom sluaju izlaz naredbe zavisi od programskih ulaza, dok u drugom sluaju izlaz zavisi od operatorskih ulaza. U cilju promene naina upravljanja naredbom koriste se etiri ulazna parametra .ProgProgReq programski zahtev za programskom kontrolom ProgOperReq programski zahtev za operatorskom kontrolom OperProgReq operatorski zahtev za programskom kontrolom OperOperReq operatorski zahtev za operatorskom kontrolom Stanje u kome se nalazi naredba odreeno je izlaznim parametrom (Sl. 10-1) ProgOper = 0 operatorska kontrola ProgOper = 1 programska kontrola

SL. 10-1 PREUZIMANJE KONTROLE NAD IZVRAVANJEM NAREDBE

Ukoliko se istovremeno daju oba zahteva i za programsku i za operatorsku kontrolu, kontrolu e dobiti operator. Programski zahtev ima prednost nad operatorskim zahtevom ukoliko se oba zadaju istovremeno. Ova osobina moe da se iskoristi ukoliko se eli upravljanje iz samo jednog izvora. Tako na primer, ukoliko se eli iskljuivo operatorsko upravljanje onda je pogodno da se ulaz .ProgOperReq fiziki vee za izvor koji daje logiku jedinicu. Na taj nain e operator biti spreen da sluajnim slanjem signala .OperProgReq prepusti kontrolu programu. Ulazi koje generie operator se automatski resetuju posle izvravanja, ime se omoguava operatoru da sledei put generie ulaz. VREME IZVRAVANJA Neke naredbe omoguavaju specifikaciju razliitih naina vremenskog izvravanja naredbi. U principu neophodno je da se naredbe izvravaju periodino sa periodom

UPRAVLJANJE/184

DeltaT. Periodic Da bi se ostvarilo periodino izvravanje naredbi one treba da se stave u periodini zadatak. U tom sluaju DeltaT je jednako periodi izvravanja zadatka. U cilju smanjivanja greaka do kojih dolazi usled vremenskog kanjenja izvravanja naredbe u odnosu na trenutak oitavanja ulaza neophodno je da se oitavanje ulaza sinhronizuje sa izvravanjem zadatka ili da se oni oitavaju 5 do 10 puta bre od periode zadatka. Oversample U ovom nainu rada naredba se izvrava sa periodom DeltaT koji je u naredbi definisan kao .OversampleDT parametar. Upravljanje izvravanjem naredbe moe se ostvariti pomou tajmera koji generie .EnableIn ulazni parametar bloka. I u ovom sluaju je neophodno da se ulazni signali oitavaju 5 10 puta bre od izvravanja naredbe. Real time sam pling Ovaj nain rada namenjen je ulaznim signalima koji imaju time-stamp. Period DeltaT jednak je .RTSTTimeStamp parametru koji u principu treba da bude isti kao i time stamp definisan na ulaznim modulima. U tom sluaju naredba se izvrava svaki put kada se ulazni signali oitaju.

SL. 10-2 MOGUI NAINI PERIODINOG IZVRAVANJA NAREDBE

Specifikacija vremenskog naina rada zahteva sledee ulazne parametre. TimingMode 0 periodic, 1 oversample, 2 real time sample OversampleDT period u sekundama RTSTTimeStamp time stamp ulaznog modula, menja se sa sa svakim oitavanjem modula Izlazni parametri koji se odreuju prilikom izvravanja naredbe imaju sledee znaenje. DeltaT period izvravanja naredbe Status status funkcijskog bloka TimingModeInv nedozvoljen nain vremenskog rada RTSMissed (.Status.28) koristi se samo u real time sample nainu rada i postavlja na 1 kada se naredba ne ponovi u toku 1 sekunde RTSTimeINV (.Status.29) nedozvoljena RTST vrednost RTSTimeStampInv (.Status.30) nedozvoljena RTSTimeStamp vrednost DeltaTInv (.Status.31) nedozvoljena vrednost za DeltaT

UPRAVLJANJE/185

Pregled vremenskog izvravanja naredbi dat je na Sl. 10-2. KONTINUALNE FUNKCIJE PRENOSA Jedan broj naredbi za upravljanje procesima realizuje kontinualne funkcije prenosa. Algoritmi za realizaciju ovih funkcija prenosa formirani su korienjem odgovarajuih numerikih metoda za reavanje diferencijalnih jednaina. Korak vremena u ovim metodama je jedan sken ciklus. Otuda je za tanost rada neophodno da se pri korienju ovih naredbi obezbedi konstantna vrednost sken ciklusa. Drugim reima kontinualni blokovi se spolja gledano ponaaju kao da su diskretizovani sa periodom vremena DeltaT. Meutim, njihova unutranja realizacija koristi podatke iz svakog sken ciklusa unutar periode odabiranja. Samo se po sebi razume da sve kontinualne funkcije prenosa zahtevaju da se odabere vremenski nain rada, odnosno nain diskretizacije. PARAMETRI Svakoj naredbi pridruuje se tag koji mora biti struktura koja je predviena za tu naredbu. Ova struktura se automatski kreira sa generikim imenom Naredba_xxx ako se naredba koristi u FB dijagramu, dok se u struktuiranom tekstu ona mora posebno definisati kao NewTag. Svi podaci neophodni za realizaciju naredbe kao i za informacije o statusu i eventualnim grekama dobijaju se iz odgovarajueg taga naredbe. Teorijski, svi parametri u svim naredbama mogu se tretirati i kao ulazni signali, to znai da se granice alarma mogu menjati u toku rada. Ukoliko se ovo eli neophodno je pri konfiguraciji bloka u FB dijagramu selektovati sve parametre koji e se menjati u toku rada. U tom sluaju oni se na dijagramu pojavljuju kao ulazni signali. U struktuiranom tekstu to meutim nije mogue, ve se za promenu parametara moraju specificirati posebne naredbe. Ukoliko se parametri ne ele menjati oni se u FB dijagramu ne moraju selektovati pa e blok imati samo neophodne ulazne i izlazne signale koji karakteriu njegovu funkciju. Kada se selektuju svi parametri onda ulazi i izlazi bloka predstavljaju kompletnu strukturu koja je pridruena naredbi. Konano, imajui u vidu da se radi o naredbama za upravljanje procesima za koje moe da se zahteva sekvencijalno ili fazno izvravanje sve naredbe imaju mogunost korienja EnableIn ulaznog indikatorskog signala. Samo ukoliko je ovaj signal logika jedinica naredba e se izvriti. Ukoliko se eli neprekidno izvravanje naredbe ovaj signal ne mora da bude ulazni, ali se vrednost indikatora mora u strukturi postaviti na 1.

10.2.UPRAVLJANJE PROCESIMA 10.2.1. ALARM - ALM


FUNKCIJA Ova naredba generie indikatore alarma u sluaju kada ulazna promenljiva prekorai specificirane granice ili se menja nedozvoljenom brzinom. Naredba obuhvata vie definicija granica pri emu se ne moraju sve koristiti u istoj naredbi. Na raspolaganju su prekoraenje gornje (high) i donje (low) granice kao i veoma veliko prekoraenje granica (high-high i low-low). Pri tome, mogue je definisati i mrtvu zonu neophodnu da bi se moglo smatrati da je promenljiva izala iz stanja alarma. Druga grupa alarm naredbi odnosi se na brzinu promene ulazne promenljive. Ova brzina (ROC rate of change) se odreuje na osnovu razlike trenutne vrednosti ulaza i vrednosti koju je ulaz imao u prethodnom trenutku oitavanja odreenom ROC periodom.

Nain rada svih alarma prikazan je na Sl. 10-3.

UPRAVLJANJE/186

SL. 10-3 REALIZACIJA FUNKCIJE GENERISANJA ALARMA

NAREDBA Izborom funkcijskog bloka ALM, odnosno korienjem tekst naredbe Alm(imetaga); generie se struktura ALARM koja sadri sve parametre kojima se definiu granice, kao i informacije o statusu naredbe. Kao to je ve reeno, izgled bloka ALM zavisi od toga koji se parametri odabiraju kao vidljivi, odnosno kao ulazi i izlazi bloka. Na Sl. 10-4 je prikazan izgled bloka iji su svi parametri odabrani kao vidljivi, dok je na Sl. 10-5 prikazana struktura ALARM. Sa same slike se vidi koji parametri su ulazni, a koji izlazni. Konano potrebno je zapaziti da ve i sami ulazi i izlazi bloka u potpunosti opisuju i strukturu tipa ALARM.
ALM_01 ALM Alarm 0 EnableIn In HHLimit HLimit LLimit LLLimit Deadband ROCPosLimit ROCNegLimit ROCPeriod EnableOut 0 HHAlarm 0 HAlarm 0 LAlarm 0 LLAlarm 0 ROCPosAlarm 0 ROCNegAlarm 0.0 ROC 16#0000_0000 Status 0 InstructFault 0 DeadbandInv 0 ROCPosLimitInv 0 ROCNegLimitInv 0 ROCPeriodInv ...

SL. 10-4 FUNKCIJSKI BLOK ALARMA

UPRAVLJANJE/187

ATRIBUT

TIP TAGA

OPIS

.EnableIn .IN .HHLimit .Hlimit .LLimit .LLLimit .Deadband .ROCPosLimit .ROCNegLimit .ROCPeriod .EnableOut .HHAlarm .HAlarm .LAlarm .LLAlarm .ROCPosAlarm .ROCNegAlarm .ROC .Status .InstructFault .DeadbandInv .ROCPosLimitInv .ROCNegLimitInv .ROCPeriodInv

BOOL REAL REAL REAL REAL REAL REAL REAL REAL REAL BOOL BOOL BOOL BOOL BOOL BOOL BOOL REAL DINT BOOL REAL REAL REAL REAL

Ulazni uslov (nema efekta na tekst naredbu) Analogni ulaz koji se testira Gornja visoka granica Gornja granica Donja granica Donja niska granica Mrtva zona Gornja granica brzine promene Donja granica brzine promene Period sa kojim se rauna brzina promene Omoguava generisanje izlaznog signala Indikator visokog gornjeg alarma Indikator gornjeg alarma Indikator donjeg alarma Indikator niskog donjeg alarma Indikator prekoraenja brzine porasta signala Indikator prekoraenja brzine opadanja signala Brzina promene ulaznog signala Indikatori statusa Detektovana greka (Status.0) Nedozvoljena vrednost (Status.1) Nedozvoljena vrednost (Status.2) Nedozvoljena vrednost (Status.3) Nedozvoljena vrednost (Status.4) SL. 10-5 IZGLED STRUKTURE ALARM

10.2.2. DISKRETNA STANJA - D2SD I D3SD


FUNKCIJA Dve naredbe slue za realizaciju sistema koji mogu biti samo u jednom od 2, odnosno jednom od 3 dozvoljena stanja, kao to su na primer ukljuen/iskljuen, odnosno napred/stani/nazad. Pri tome se pretpostavlja da se pomou odgovarajuih graninih prekidaa moe utvrditi da li je dato stanje ostvareno. Osnovna funkcija ovih blokova sastoji se u tome da oni prime zahtev u koje stanje treba da preu i zatim testiraju signale povratne sprege (dva ili etiri signala) i proveravaju da li njihove vrednosti odgovaraju specifikaciji stanja koje je zadano na ulazu. Kada se ove vrednosti poklope na izlazu se dobija indikator da je zahtevano stanje postignuto. Pri tome, da bi se stanje postiglo neophodno je da to bude omogueno pomou odgovarajueg ulaznog signala koji dozvoljava ulaz u stanje. Principijelna funkcija blokova prikazana je na Sl. 10-6. Oba bloka dozvoljavaju programsku i operatorsku kontrolu izvravanja to znai da su im pridrueni i odgovarajui ulazni i izlazni parametri o kojima je ranije bilo rei. Konano, oba bloka imaju mogunost runog rada (Hand) i Override naina rada. Hand mode Runi reim rada se ostvaruje programskim zadavanjem zahteva za prelaz u runi reim (ProgHandReq). U runom reimu naredba ignorie signale povratne sprege i direktno odlazi u stanje koje zadato pomou runih signala (HandFBx). Overr ide mode U ovaj nain rada se ulazi programskim zadavanjem signala ProgOverrideReq. Ako signal OverrideOnInit ima vrednost 1, onda se u prvom prolazu kontrola preputa operatoru. Ako je meutim signal OverrideOnFault aktivan onda sistem ide u predefinisano stanje.

UPRAVLJANJE/188

SL. 10-6 FUNKCIONALNI BLOK DIJAGRAM DISKRETNIH BLOKOVA

SL. 10-7 KONFIGURISANJE FUNKCIJSKOG BLOKA D2SD

D2SD Pri definisanju naredbe specificira se kombinacija ulaznih signala koja definie svako od dva stanja. Pored toga specificira se da li izlazni signal odgovara statusu komande (0 ako je zadano stanje 0, 1 ako je zadano stanje 1) ili inverznoj vrednosti tog statusa (Output Reverse), vreme koje se eka da se stanje uspostavi pre nego to se signalizira greka (Fault Time i Latch alarm), kao i akcije u Override nainu rada. Sve ove opcije prikazane su na Sl. 10-7. D3SD Ova naredba se konfigurie na isti nain kao i D2SD s tim to se specificira kombinacija 4 ulaza kojima se definiu 3 mogua stanja. Razlika je jedino u definisanju izlaza (Sl. 10-9). Naime poto ova naredba ima tri CommandStatus signala, pri njenom konfigurisanju specificiraju se vrednosti koje e izlazi imati za svaki od ovih signala. Naime lanu Statei (i=0,1,2) u konfiguracionom prozoru odgovara ulazni parametar bloka OutiStatei (i=0,1,2) tako da se izlaz formira prema sledeim relacijama

UPRAVLJANJE/189

0 0 1 1 1 2 2

0,1,2

UPRAVLJANJE/190

D2SD_03 D2SD Discrete 2-State Device 0 EnableIn ProgCommand Oper0Req Oper1Req State0Perm State1Perm FB0 FB1 HandFB FaultTime FaultAlarmLatch FaultAlmUnlatch OverrideOnInit OverrideOnFault OutReverse OverrideState FB0State0 FB0State1 FB1State0 FB1State1 ProgProgReq ProgOperReq ProgOverrideReq ProgHandReq OperProgReq OperOperReq ProgValueReset EnableOut 0 Out 0 Device0State 0 Device1State 0 CommandStatus 0 FaultAlarm 0 ModeAlarm 0 ProgOper 0 Override 0 Hand 16#0000_0000 Status 0 InstructFault 0 FaultTimeInv 0 OperReqInv
EnableIn Prog0Command Prog1Command Prog2Command Oper0Req Oper1Req Oper2Req State0Perm State1Perm State2Perm FB0 FB1 FB2 FB3 HandFB0 HandFB1 HandFB2 FaultTime FaultAlarmLatch

D3SD_01 D3SD

...
Discrete 3-State Device

...

0 EnableOut 0 Out0 0 Out1 0 Out2 0 Device0State 0 Device1State 0 Device2State 0 Command0Status 0 Command1Status 0 Command2Status 0 FaultAlarm 0 ModeAlarm 0 ProgOper 0 Override 0 Hand 16#0000_0000 Status 0 InstructFault 0 FaultTimeInv 0 OverrideStateInv 0 FaultAlmUnlatch OverrideOnInit OverrideOnFault Out0State0 Out0State1 Out0State2 Out1State0 Out1State1 Out1State2 Out2State0 Out2State1 Out2State2 OverrideState FB0State0 FB0State1 FB0State2 FB1State0 FB1State1 FB1State2 FB2State0 FB2State1 FB2State2 FB3State0 FB3State1 FB3State2 ProgProgReq ProgOperReq ProgOverrideReq ProgHandReq OperProgReq OperOperReq ProgValueReset ProgCommandInv 0 OperReqInv 0 HandCommandInv

SL. 10-8 FUNKCIJSKI BLOKOVI I STRUKTURE NAREDBI D2SD I D3SD

UPRAVLJANJE/191

SL. 10-9 KONFIGURISANJE FUNKCIJSKOG BLOKA D3SD

NAREDBA Izgled odgovarajuih struktura DISCRETE_2STATE i DISCRETE_3STATE koje se generiu pri specifikaciji ovih naredbi vidi se iz ulaznih i izlaznih parametara blokova koji su prikazani na Sl. 10-8. U struktuiranom tekst programu naredbe imaju oblik D2SD(Imetaga); D3SD(Imetaga); s tim to se svi neophodni parametri mogu poetno specificirati u samoj strukturi. Ukoliko se eli njihovo programsko menjanje moraju se koristiti posebne naredbe.
DEDT_03 DEDT Deadtime EnableIn In InFault Deadtime Gain Bias TimingMode OversampleDT RTSTime RTSTimeStamp EnableOut Out DeltaT Status InstructFault InFaulted DeadtimeInv TimingModeInv RTSMissed RTSTimeInv 0 RTSTimeStampInv 0 DeltaTInv StorageArray bafer2 ...

10.2.3. KANJENJE DEDT (DEAD TIME)


FUNKCIJA Ovom naredbom se realizuje 0 vremensko kanjenje. Pri tome se podrazumeva da se naredba izvrava 0.0 periodino sa fiksnim periodom DeltaT. 0.0 Naredba zahteva da se specificira jedan od tri 16#0000_0000 mogua naina vremenskog rada. 0 Realizacija ove naredbe zahteva da se 0 obezbedi bafer za smetanje sukcesivnih vrednosti ulaznog signala. Bafer treba da bude 0 dovoljno velik da moe da se realizuje najvee 0 oekivano kanjenje. Potrebna veliina 0 memorije dobija se prema relaciji
0

sec
Pri svakom izvravanju naredbe u specificirani bafer se smeta podatak

SL. 10-10 FB BLOK DEDT

UPRAVLJANJE/192

Bafer radi po FIFO principu, tako da se izlaz dobija prema relaciji


NAREDBA - DEDT U principu naredba moe da ima samo jedan ulaz (signal koji se eli zakasniti) i jedan izlaz. U tom sluaju svi ostali neophodni ulazni parametri se moraju inicijalno specificirati. Izgled funkcijskog bloka sa svim signalima vidljivim koji ujedno predstavlja i strukturu tipa DEADTIME prikazan je na Sl. 10-10. U struktuiranom tekst programu naredba se poziva kao DEDT(Imetaga, bafer) gde je bafer tag tipa polje u koje e se smetati podaci. Pri tome je neophodno da se u okviru strukture Imetaga definiu vrednosti svih parametara.

10.2.4. GENERATOR FUNKCIJA - FGEN


FGEN_01 FGEN Function Generator EnableIn In XY1Size XY2Size Select EnableOut Out Status InstructFault XY1SizeInv XY2SizeInv XisOutofOrder X1 Y1 X2 Y2 xx1 yy1 xx2 yy2 ...

FUNKCIJA Ova naredba obavlja linearizaciju ulaznog signala generiui na osnovu ulazne vrednosti taku na u delovima pravoj liniji. Naredba radi na osnovu specificirane tabele koordinata 0 aka X[i] i Y[i] ,i=1,2,n. Ulazni signal se poredi sa ta 0.0 koordinatama datih taaka, tako da se odredi taka na pravoj 16#0000_0000 liniji koja mu odgovara. Time je odreena i ordinata, odnosno 0 izlaz generatora funkcije, kao to je to ilustrovano na Sl. 0 10-12. 0 Formalno gledano izlaz se odreuje prema algoritmu opisanom sledeim relacijama 0 1 1 1 1 1 Dozvoljeno je definisanje dve tabele taaka pri emu se programski odabira sa kojom tabelom e naredba da radi. NAREDBA FGEN U tekst programu naredba ima oblik FGEN(Imetaga, X1,Y1,X2,Y2); gde su X1, Y1, X2 i Y2 polja koja sadre koordinate taaka. Pri konfigurisanju naredbe potrebno je specificirati i ulazne parametre strukture FUNCTION_GENERATOR (Sl. 10-11). Parametri XY1Size i XY2Size odreuju koliko e se taaka koristi iz pridruenih polja, dok se parametrom Select specificira koja e se od dve tabele koristiti.

SL. 10-11 FB BLOK FGEN

Y6 Y5 Out

Y4 Y3

Y2

X1

X2

X3

X4 In

X5

X6

SL. 10-12 ILUSTRACIJA LINEARIZACIJE SIGNALA

UPRAVLJANJE/193

10.2.5. LEAD-LAG KOMPENZATOR - LDLG


FUNKCIJA Naredba realizuje Lead-lag kompenzator, pri tome u zavisnosti od odnosa pola i nule on moe raditi i kao integralni (lag) i kao diferencijalni (lead) kompenzator. Kompenzator ima sledeu kontinualnu funkciju prenosa 1 1 pri emu parametri koji odreuju nulu i pol moraju da se kreu u sledeim granicama 0 LDLG_01 LDLG ... 2 Lead-Lag Izlazni signal se dobija preko sledee 0 relacije EnableOut EnableIn 0.0 Out In 0.0 Initialize DeltaT gde su parametri Gain i Bias konstante. 16#0000_0000
Lead Lag Gain Bias TimingMode Status 0 InstructFault 0 LeadInv 0 LagInv 0 TimingModeInv RTSMissed 0 OversampleDT

NAREDBA LDLG Tekst naredba ima oblik LDLG(Imetaga);

dok je funkcijski blok dijagram zajedno sa odgovarajuom strukturom taga LED_LAG 0 RTSTime RTSTimeInv prikazan na Sl. 10-13. 0 Pored toga moraju da se specificiraju i RTSTimeStamp RTSTimeStampInv 0 ulazni parametri pojaanja i biasa. Ukoliko se eli DeltaTInv inicijalizacija izlaza potrebno je postaviti indikator Initialize. Ukoliko on ima vrednost 1 poetna SL. 10-13 FB BLOK LDLG vrednost izlaza bloka se postavlja na

10.2.6. IRINSKI MODULISANI IMPULSI - POSP I SRTP


FUNKCIJA Na raspolaganju su dve vrste naredbi za upravljanje pomou irinski modulisanih impulsa. Osnovna razlika je u izvrnim ureajima kojima su ove naredbe namenjene. Obe naredbe podrazumevaju da je korisnik definisao periodu upravljanja, odnosno maksimalnu duinu trajanja impulsa CycleTime. Ulazni signal se koristi da bi se odredilo koliko dugo unutar svake periode treba da traje impuls, koji se zatim generie kao izlazni signal. Pri tome je izlazni signal, zapravo procenat trajanja impulsa u odnosu na maksimalno trajanje. Naredbe se realizuju tako to se sa prvim izvravanjem naredbe startuje interni tajmer ija se vrednost aurira pomou DeltaT (periode ponavljanja izvravanja naredbe). Svaki put kada je vrednost internog tajmera vea ili jednaka zadanoj periodi (CicleTime) oitava se nova vrednost ulaza i u skladu sa odgovarajuim algoritmima izraunava nova vrednost izlaza. POSP (Posit ion pr oportional) naredba Koristi se za zatvaranje i otvaranje ureaja kao to je na primer ventil upravljan pomou motora. U osnovnoj formi algoritam izraunava procentualnu vrednost ostvarene pozicije i zadane, referentne pozicije. Ove dve veliine - Position i SP (setpoint) su ulazni signali bloka.

UPRAVLJANJE/194

100

100

Obe vrednosti se auriraju svaki put kada se naredba izvrava. Ukoliko je neka od njih izvan specificiranog opsega, postavlja se odgovarajui statusni indikator, ali se sama vrednost ne menja.

OpenTime(n-1)

< CycleTime

OpenTime= OpenTime+Deadtime

> MaxOnTime

OpenTime= MaxOnTime OpenOut = 1 CloseOut = 0

OpenTime

< MinOnTime OpenTime=

Izraunava OpenTime i CloseTime

OpenOut = 0 CloseOut = 0 eka sledei period odabiranja

OpenTime

< MinOnTime

CloseTime=

OpenOut = 0 CloseOut = 1 > MaxOnTime CloseTime= MaxOnTime

OpenTime(n-1)

< CycleTime

OpenTime= OpenTime+Deadtime

SL. 10-14 ALGORITAM POSP BLOKA

Ukoliko su izraunate vrednosti unutar dozvoljenog opsega se zatim, uzimajui u

UPRAVLJANJE/195

obzir brzinu otvaranja, odnosno zatvaranja ventila, kao i poziciju koju ventil treba da zauzme, izraunava potrebno vreme trajanja impulsa

gde su OpenRate i CloseRate brzina otvaranja odnosno zatvaranja ventila izraena u %sekundi. Ove vrednosti se, za razliku od prethodnih, ne auriraju sa svakim izvravanjem naredbe, ve samo sa istekom CycleTime perioda. Sama realizacija algoritma ukljuuje i niz provera kojima se sam blok usaglaava sa realnim radom izvrnog organa. Pre svega izraunato vreme otvaranja ili zatvaranja se poredi u odnosu na specificirano maksimalnu odnosno minimalnu duinu trajanja signala. Pored toga, postoji mogunost dovoenja signala povratne sprege sa graninih prekidaa koji ukazuju na potpunu otvorenost (OpenFB), odnosno zatvorenost (CloseFB) ventila. Konano, u cilju smanjivanja efekta trenja izraunatom vremenu otvaranja ili zatvaranja ventila moe se dodati dodatno vreme (Deadtime) svaki put kada ureaj treba da se pokrene iz mirovanja ili kada menja smer kretanja. U skladu sa time algoritmi otvaranja i zatvaranja realizuju se na nain prikazan na Sl. 10-14. Samo se po sebi razume da se nijedan od dva mogua impulsa nee generisati ako veliine SPPercent ili CycleTime imaju vrednost nula. Isto tako Openpout i Closeout signali nee biti generisani ukoliko je Openrate ili CloseRate parametar jednak nuli. SRTP ( Split range time proportional ) se koristi za upravljanjem kontaktima za zagrevanje i hlaenje. Pretpostavlja se da se upravljaki signal dobija iz PID kontrolera. Maksimalna vrednost ovog signala odgovara trajanju impulsa tokom cele specificirane periode odabiranja (CycleTime). Minimalna vrednost odgovara izostanku impulsa tokom cele periode. Sve ostale vrednosti trajanja impulsa odreuju se na lineranoj skali izmeu ove dve vrednosti. Na osnovu zadanih vrednosti signala koji odgovaraju minimalnom i maksimalnom grejanju odnosno hlaenju, algoritmom se odreuje vreme trajanja impulsa za zagrevanje (HeatTime) i hlaenje (CoolTime).

Pored toga, da bi se omoguilo korienje analognog izvrnog organa kao izlazni signali generiu se i procentualna vremena trajanja zagrevanja (HeatTimePercent) i hlaenja (CoolTimePercent). 100

100 Navedene vrednosti se izraunavaju svaki put kada se naredba izvrava (sa periodom DeltaT) prema algoritmu prikazanom na Sl. 10-15.
NAREDBE Tekst naredbe imaju oblik POSP(ImeTaga); SRTP(ImeTaga);

UPRAVLJANJE/196

dok su odgovarajui funkcijski blok dijagrami zajedno sa strukturom pridruenih tagova POSITION_PROP, odnosno SPLIT_RANGE prikazani na Sl. 10-16Sl. 10-13.

SL. 10-15 ALGORITAM SRTP BLOKA


POSP_01 POSP Position Proportional 0 SP Position OpenedFB ClosedFB PositionEUMax PositionEUMin CycleTime OpenRate CloseRate MaxOnTime MinOnTime Deadtime EnableOut 0 OpenOut 0 CloseOut 0.0 PositionPercent 0.0 SPPercent 0.0 OpenTime 0.0 CloseTime 16#0000_0000 Status 0 InstructFault 0 CycleTimeInv 0 OpenRateInv 0 CloseRateInv 0 MaxOnTimeInv 0 MinOnTimeInv 0 DeadtimeInv 0 PositionPctInv 0 SPPercentInv 0 PositionSpanInv
CoolSpanInv HeatSpanInv 0 MinCoolTimeInv 0 MinCoolTime MaxCoolTimeInv 0 MaxCoolTime MinHeatTimeInv 0 MinHeatTime MaxHeatTimeInv 0 MaxHeatTime CycleTimeInv 0 MinCoolIn InstructFault 0 MaxCoolIn Status 0 MinHeatIn CoolTimePercent 16#0000_0000 MaxHeatIn HeatTimePercent 0.0 CycleTime CoolOut 0.0 In HeatOut 0 EnableIn EnableOut 0 Split Range Time Proportional 0

...
SRTP_01 SRTP ...

SL. 10-16 FB BLOKOVI POSP I SRTP

UPRAVLJANJE/197

10.2.7. NAGIBNI SIGNAL RMPS (RAMP/SOAK)


FUNKCIJA Naredba realizuje niz segmenata nagibne funkcije prekidanih konstantnim segmentima. Ova vrsta funkcije se koristi za voenje pojedinih procesa kao to su procesi zagrevanja. U tom smislu naredba se najee koristi da generie referentni ulaz za neki kontroler. Oblik krive definie se pomou tri parametra ( Sl. 10-17) RampValue polje iji elementi definiu nagib funkcije na pojedinim segmentima SoakValue polje iji elementi definiu vrednost od kojih prestaje nagibna funkcija i zapoinje konstantan period SoakTime polje iji SL. 10-17 GENERISANJE NAGIBNE FUNKCIJE elementi specificiraju trajanje konstantnih segmenata Ukupni broj segmenata specificira se pomou parametra NumberOfSegs, pri emu se postavljanjem indikatora CyclicSingle specificira da li se kriva ciklino ponavlja (CyclicSingle=1) ili se generisanje izlaza prekida kada se stigne do poslednjeg segmenta. Nagib funkcije moe da se specificira na dva naina preko apscise take na pravoj (u minutima) ili kao brzina promene (jedinica/min). U zavisnosti od vrednosti indikatora TimeRate. U zavisnosti od naina zadavanja izlaz se generie na sledei nain. TimeRate = 1

TimeRate = 0


Pri tome nagib je pozitivan ako je trenutna vrednost izlaza manja od zadane vrednosti SoakValue za sledei segment, a negativan ako je izlaz manji. Parametar SoaktimeLeft ukazuje na vreme koje je preostalo do isteka perioda u kome je izlaz konstantan, odnosno do zapoinjanja novog segmenta nagibne funkcije. Generisanje nagibne funkcije moe dodatno da se modifikuje korienjem ulaznog signala PV (ProcessValue). U principu ovo bi trebalo da bude signal povratne sprege, ija se promena prati i ne dozvoljava se promena reference ako je on dosta daleko od zadane referentne vrednosti. Ako je GuarRamp = 1, tada naredba prati razliku izmeu veliina Out i PV. Ukoliko je razlika izvan opsega definsanog sa RampDeadband parametrom tada izlazni signal prestaje da se menja sve dok se PV ne promeni toliko da razlika ue u opseg. Zatim se nastavlja generisanje rampe. Za vreme dok je zaustavljeno generisanje nagibne funkcije postavljen je indikator GuarRampOn.

UPRAVLJANJE/198

RMPS_01 RMPS Ramp/Soak 0 EnableIn PV PVFault NumberOfSegs ManHoldAftInit CyclicSingle TimeRate GuarRamp RampDeadband GuarSoak SoakDeadband CurrentSegProg OutProg SoakTimeProg CurrentSegOper OutOper SoakTimeOper ProgProgReq ProgOperReq ProgAutoReq ProgManualReq ProgHoldReq OperProgReq OperOperReq OperAutoReq OperManualReq Initialize ProgValueReset RampValue SoakValue SoakTime ? ? ? EnableOut 0.0 Out 0 CurrentSeg 0.0 SoakTimeLeft GuarRampOn GuarSoakOn ProgOper Auto Manual Hold Status InstructFault PVFaulted NumberOfSegsInv RampDeadbandInv SoakDeadbandInv 0 CurrSegProgInv 0 SoakTimeProgInv 0 CurrSegOperInv 0 SoakTimeOperInv 0 RampValueInv 0 SoakTimeInv 0 ...

Ak o je GuarSoak = 1, tada se prati razlika izmeu veliina Out i PV. Ukoliko je razlika izvan opsega definsanog sa SoakDeadband, resetuje se interni tajmer i prestaje se sa merenjem vremena. Merenje vremena se nastavlja kada razlika ue u definisani opseg. Za vreme dok je prekinuto merenje vremena postavljen je indikator GuarSoakOn.

NAREDBA Funkcijski blok dijagram zajedno sa 0 strukturom pridruenog RMPS taga prikazan je na 0 Sl. 10-18. 0 Naredba ima mogunost specificiranja 0 programskog ili operatorskog upravljanja. Pri tome 0 operator ima mogunost da izabere automatski nain rada (Auto) u kome se nastavlja sa 16#0000_0000 generisanjem nagibne funkcije ili runi reim u 0 kome on sam definie vrednost izlaza (Manual). 0 Isto tako operator moe da zahteva da se trenutne 0 vrednosti izlaza zadre nepromenjene (Hold). 0 U tekst programu naredba ima oblik
0

RMPS(ImeTaga,RampValue,SoakValue, SoakTime); dok je odgovarajui funkcijski blok dijagrami zajedno sa strukturom pridruenog taga RAMP_SOAK prikazan na Sl. 10-18.

10.2.8. SKALIRANJE SCL


FUNKCIJA Naredba konvertuje neskaliranu ulaznu veliinu u realni podatak izraen u inenjerskim jedinicama. Ova naredba se po pravilu koristi sa analognim ulaznim modulima koji ne podravaju skaliranje u realnu promenljivu punog opsega. Korienje ove naredbe pretpostavlja da se definiu minimalna i maksimalna vrednost neskalirane veliine (InRawMin, InRawMax), kao i minimalna i maksimalna vrednost veliine izraene u inenjerskim jedinicama (InEUMin, INEUMax). Konverzija se vri prema relaciji

SL. 10-18 FB BLOK RMPS

Postoji mogunost i da se ogranii vrednost izlazne promenljive. Da bi se to realizovalo neophodno je da se postavi indikator Limiting. U tom sluaju vri se korekcija izlaza na sledei nain


Nezavisno od toga da li je dati indikator postavljen naredba proverava da li je ulazna promenljiva izvan granica odreenih minimalnom i maksimalnom vrednou. Ukoliko je to sluaj postavlja se jedan od indikatora MinAlarm ili MaxAlarm.

UPRAVLJANJE/199

SCL_01 SCL Scale 0 EnableIn In InRawMax InRawMin InEUMax Limiting EnableOut 0.0 Out 0 MaxAlarm MinAlarm Status 0 InstructFault 0 ...

NAREDBA Tekst naredba ima oblik SCL(ImeTaga);

dok je odgovarajui funkcijski blok dijagram zajedno sa strukturom pridruenog taga SCALE prikazan na Sl. 10-19. 16#0000_0000

10.2.9. INTEGRACIJA ANALOGNOG SIGNALA TOT (TOTALIZER)


skalirano

FUNKCIJA Naredba obezbeuje vremenski sabiranje vrednosti koja se dobija sa analognog ulaza prema relaciji 2
TOT_01 TOT Totalizer EnableIn In InFault TimeBase Gain ResetValue Target TargetDev1 TargetDev2 LowInCutoff ProgProgReq ProgOperReq ProgStartReq ProgStopReq ProgResetReq OperProgReq OperOperReq OperStartReq OperStopReq OperResetReq ProgValueReset TimingMode OversampleDT RTSTime RTSTimeStamp EnableOut Total OldTotal ProgOper RunStop ProgResetDone TargetFlag TargetDev1Flag TargetDev2Flag LowInCutoffFlag DeltaT Status InstructFault InFaulted TimeBaseInv TimingModeInv RTSMissed RTSTimeInv RTSTimeStampInv DeltaTInv ...

SL. 10-19 FB BLOK SCL

SL. 10-20 FB BLOK TOT

gde su Inn vrednost ulaza u trenutku sadanjem trenutku izvoenja naredbe (n) 0 DeltaT vreme izmeu dva sukcesivna 0.0 izvoenja naredbe 0.0 TimeBase vremenska jedinica (0 sec, 1 0 min, 2 sat, 3 dan) 0 Gain multiplikator koji se koristi za pretvaranje zbira u odgovarajue jedinice 0 Total rezultujui zbir 0 Na osnovu date relacije vidi se da se 0 zbir ra una dodavanjem srednje vrednosti 0 dva uzastopna odbirka na ulazu, ime se 0 zapravo vri trapezoidna integracija ulaznog 0.0 signala. 16#0000_0000 Naredba omoguava da se specificira eljena vrednost izlaza Target. Kada se ova 0 vrednost dostigne postavlja se odgovarajui 0 indikator TargetFlag. Ovaj indikator se moe 0 koristiti za prekid rada ureaja koji generie 0 ulazni signal. 0 U cilju kontrolisanja brzine kojom se akumulirana vrednost pribliava zadanoj, 0 odnosno kojom spoljni ureaj generie ulaze, 0 mogue je specificirati dva opsega 0 odstupanja izlaza od eljene vrednosti. TargetDev1 i TagetDev2. Kada izlaz dostigne neku od ove dve vrednosti postavljaju se odgovarajui indikatori TargetDev1Flag i TargetDev2Flag. Konano, da bi se spreila eventualna negativna vrednost izlaza do koje moe da doe usled manjih nepreciznosti u kalibraciji meraa protoka mogue je privremeno prekinuti akumulaciju ako je ulazni signal

UPRAVLJANJE/200

isuvie mali. Ovo se postie definisanjem parametra LowInCutoff. Kada je ulazni signal manji od vrednosti ovog parametra integracija se prekida. NAREDBA Tekst naredba ima oblik TOT(ImeTaga); dok je odgovarajui funkcijski blok dijagram zajedno sa strukturom pridruenog taga TOTILIZER prikazan na Sl. 10-20. Kao to se vidi naredba omoguava izbor izmeu programskog i operatorskog naina rada. Pored toga, naredba zahteva da se specificira vremenski nain rada.

10.2.10. BRZINSKI PID ALGORITAM - PIDE


FUNKCIJA Ova naredba realizuje brzinsku formu PID algoritma (Enhanced PID). U principu ova realizacija algoritma pogodna je za on-line promenu parametara dejstva bez izazivanja udara na izlaz kontrolera. Sk alir anje i k ontrola promenljivih Procesna promenljiva Procesna promenljiva (PV) je ulazni signal, koji se po pravilu dobija iz analognog ulaza. Ova promenljiva se skalira u odnosu na specificiranu maksimalnu i minimalnu vrednost procesne promenljive (PVEUMax, PVEUMin) tako da se dobija veliina PVPercent sa kojom algoritam operie 100 Ukoliko u oitavanju procesne promenljive doe do neke greke postavlja se indikator PVFault Pored toga dozvoljeno je postavljanje etiri granice za procesnu promenljivu, dve gornje (PVHHLimit, PVHLimit) i dve donje (PVLLimit, PVLLLimitI) ije prekoraenje e izazvati odgovarajue alarme: PVHHAlarm, PVHAlarm, PVLAlarm, PVLLAlarm. Na isti nain kao i kod ALARM naredbe i ovde se moe definisati mrtva zona PVDeadband iz koje je potrebno izai pre nego to se ugasi alarm. Granice brzine promene procesne promenljive definiu se pomou parametara PVROCPosLimit i PVROCNegLimit, dok se pomou PVROCPeriod specificira period vremena u kome se rauna brzina promene. Odgovarajui izlazni indikatori alarma su PVROCPosAlarm i PVROCNegAlarm.

Referentni signal Vrednost referentna promenljivu (SP) zavisi od toga da li se algoritmom upravlja programski (SPProg) ili operatorski (SPOper). U svakom sken ciklusu odreuje se SP izjednaavanjem sa vrednou koja odgovara odabranom nainu rada. Ukoliko se meutim radi o kaskadnoj vezi kontrolera (CascadeRatio=1) onda se SP odreuje na sledei nain 0 1 Algoritam koristi skaliranu vrednost referentne promenljive 100 Sve vrednosti SP se porede u odnosu na predefinisane maksimalne i minimalne granice (SPHLimit, SPLLimit) i postavljaju se odgovarajui indikatori (SPHAlarm,

UPRAVLJANJE/201

SPLAlarm) Signal greke Signal greke se izraunava kao razlika procesne i upravljake promenljive 0 1 i skalira na isti opseg kao i procesna promenljiva 100
U cilju signalizacije neadekvatnog rada kontrolera mogue je zadati granice oekivanog odstupanja procesne od referentne promenljive. I ovde su dozvoljene etiri granice (DEVHHLimit, DEVHLimit, DEVLLLimit, DEVLLimit), kojima odgovaraju etiri izlazna indikatora alarma (DEVHHAlarm, DEVHAlarm, DEVLLAlarm, DEVLAlarm). Izlaz iz stanja alarma registruje se tek kada promenljiva izae iz mrtve zone (DEVDeadband) oko granice.

Upravljaka promenljiva Upravljaka promenljiva CV izraunava se prema algoritmu kao procenat od pune skale (0-100%). Na osnovu nje se odreuje stvarna vrednost koju treba preneti izvrnom organu kao 100 gde su granice CVEUMax i CVEUMin definisane kao ulazni parametri. U cilju praenja vrednosti upravljake promenljive definiu se granice (CVHLimit, CVLLimit) ije prekoraenje postavlja izlazne indikatore (CVHAlarm, CVLAlarm). Pored toga u cascade/ratio reimu rada prati se i brzina promene upravljake promenljive i uporeuje u odnosu na CVROCLimit. Ukoliko se granica prekorai postavlja se CVROCAlarm.
Algorit am upravljanj a Oblik algor itma U osnovi algoritam izraunava promenu proporcionalnog integralnog i diferencijalnog dejstva i dodaje ih prethodnoj vrednosti upravljake promenljive. Na raspolaganju su dva oblika brzinskog algoritma ( indikator DependIndepend) Nezavisna pojaanja (DependIndepend=0) 2 60 60 Zavisna pojaanja ( DependIndepend=1) 1 2 60 60 Razlika je zapravo u tome da li proporcionalno dejstvo predstavlja pojaanje celog kontrolera ili svako dejstvo ima sopstveno pojaanje. Pored toga mogue je zahtevati da se diferencijalno dejstvo dodatno filtrira u cilju ublaavanja efekata uma merenja. Ukoliko se to eli treba postaviti indikator DSMoothing.

Signal e Algoritam omoguava da se proporcionalno i diferencijalno dejstvo realizuju bilo po signalu greke bilo po signalu povratne sprege (procesna promenljiva). Na raspolaganju su sledee opcije

UPRAVLJANJE/202

0 Proporcionalno dejstvo: 1 0 Diferencijalno dejstvo: 1 Prethodna vrednost upravlja ke pr omenljive CV n - 1 U principu ova vrednost se odreuje tako to se na izlazu iz jednog algoritamskog koraka postavi . Mogue je, meutim, zahtevati da se ova vrednost postavi na neku unapred specificiranu veliinu (CVPrevious). Ako je indikator CVSetPrevious=1 tada e se prilikom izraunavanja algoritamskog koraka uzeti Navijanje integr atora Integracija se privremeno moe prekinuti postavljanjem ulaznih indikatora WindupHIn i WindupLIn. Potrebno je obratiti panju na injenicu da se ovi indikatori ne postavljaju interno prilikom proveravanja granica upravljakog signala, to znai da korisnik sam mora o tome da vodi rauna. Inicijali zacija kontrolera Ukoliko se postavi ulazni indikator CVInitReq, upravljaka izlazna promenljiva CVEU se postavlja na predefinisani ulazni parametar CVEInitValue. Postavljanjem indikatora ManualAfterInit naredba automatski ulazi u runi reim rada posle inicijalizacije.
Mrt va zona i f eedf orward s ignal Postoji mogunost da se sprei promena upravljake promenljive ako se signal greke nae unutar mrtve zone u okolini nule (ZCDeadband). Ovo se realizuje pomou dva indikatora ZCOff i ZCDeadBandOn. Postavljanje ulaznog indikatora ZCOff=0 ukazuje da se eli kontrola unutar mrtve zone. Tada, im signal greke promeni znak i pri tome ima vrednost unutar mrtve zone postavlja se indikator ZCDeadBandOn=1 to je zahtev naredbi da prestaje promena upravljanja. Ovaj indikator ostaje ukljuen sve dok greka ne izae iz mrtve zone. Ukoliko se eli poveanje tanosti kada signal greke ue u mrtvu zonu mogue je dodati feedforward signal. Ovaj signal se izraunava kao gde je FF ulazni parametar (koji se eventualno moe i menjati) dok je 0 1 Ova vrednost se dodaje upravljakom signalu koji je izraunat u mrtvoj zoni. Razli it i reimi rada U svim reimima rada u kojima se ne realizuje algoritam mogue je postavljanjem indikatora CVManLimiting obezbediti automatsko ograniavanje izlaznog signala u skladu sa datim granicama. Signalom ProgValueReset zahteva se resetovanje svih programskih zahteva postavljenih sa ProgReq signalima. Ukoliko je naredba u operatorskom reimu rada onda ovaj signal postavlja sledee vrednosti SPProgram = SP CVProgram = CV Na ovaj nain postie se promena sa runog na programski reim rada bez udara. Auto Naredba realizuje dati algoritam. U ovaj reim se ulazi pomou signala ProgramAutoReq ili OperAutoReq Manual Ne izvrava se PID algoritam ve se upravljaki signal postavlja na sledei nain.

UPRAVLJANJE/203

ProgManualReq=1 CV=CVProg OperManualReq=1 CV=CVOper Ukoliko se postavi indikator PVTracking tada promenljiva SP prati PV. Override Ne izvrava se PID algoritam ve se upravljaki signal postavlja na sledei nain. ProgOverrideReq=1 CV=CVOverride Svi ostali signali u pogledu kontrole reima rada se ignoriu. Ovaj reim se, po pravilu, koristi da bi se PID doveo u "bezbedno" stanje. Hand Ne izvrava se PID algoritam ve se upravljaki signal postavlja na sledei nain. ProgHandReq=1 CV=HandFB , uz uslov da je HandFBFault=0 Pri tome, ukoliko je ovaj signal postavljen, nebitno je da li je sistem u programskom ili u operatorskom reimu rada. Ovaj signal se po pravilu dobija iz neke spoljne rune ili automatske stanice. CascadeRat io U ovom reimu rada prati se brzina promene upravljake promenljive. Naredba koriguje izraunatu vrednost tako da procesna promenljiva zadri sledeu vrednost
PIDE_01 PIDE Enhanced PID 0.0 PV SPProg SPCascade RatioProg CVProg FF HandFB ProgProgReq ProgOperReq ProgCasRatReq ProgAutoReq ProgManualReq ProgOverrideReq ProgHandReq CVEU 0.0 SP 0 PVHHAlarm 0 PVHAlarm 0 PVLAlarm 0 PVLLAlarm 0 PVROCPosAlarm 0 PVROCNegAlarm 0 DevHHAlarm 0 DevHAlarm 0 DevLAlarm 0 DevLLAlarm 0 ProgOper 0 CasRat 0 Auto 0 Manual 0 Override 0 Hand AutotuneTag podesavanje ...

0 1

AllowCastRat=1 dozvoljava ovaj izbor pomou signala ProgCascadeRatioReq ili OpercascadeRatioReq. Izraunata vrednost se proverava u odnosu na granice RatioHLimit i RatioLimit i ukoliko su granice prekoraene postavlja se RatioHAlarm odnosno RatioLAlarm. Kao to mu i samo ime kae ovaj reim rada namenjen je realizaciji kaskadne veze kontrolera.
Autotuning Naredba dozvoljava da se pokrene procedura podeavanja parametara. Da bi se to postiglo neophodno je da se definiu potrebni parametri koji se smetaju u posebnu strukturu PIDEAutoTune. Ime ovog taga se zatim specificira u okviru PIDE bloka. Zatim se ceo proces kontrolie pomou sledeih indikatora AtuneAcquire zahteva se pristup podacima tipa PIDEAutoTune AtuneStart zaponi proces podeavanja parametara AtuneUseGain zahteva se korienje pojaanja iz procesa podeavanja AtuneUnacquire oslobaa se pristup

SL. 10-21 FB BLOK PIDE

podacima PIDEAutoTune AtuneAbort napusti proces podeavanja parametara

UPRAVLJANJE/204

NAREDBA Tekst naredba ima oblik PIDE(ImeTaga); dok je odgovarajui blok prikazan na Sl. 10-21. U bloku je definisan i tag "podesavanje" koji je specificiran kao struktura PIDEAutoTune. Budui da struktura taga PID_ENHANCED ima izuzetno veliki broj parametara oni su posebno dati u Dodatku A. S obzirom na izuzetnu kompleksnost naredbe definisanje parametara je olakano kroz niz prozora koji su prikazani u Dodatku A.

10.3.UPRAVLJANJE IZVRNIM ORGANIMA (DRAJVERI) 10.3.1. INTEGRATOR - INTG


FUNKCIJA Naredba vri integraciju ulaznog signala. Namenjena je implementacijama u kojima je perioda odabiranja konstantna. Izlaz se izraunava prema relaciji 2 gde je IGain parametar. Vidi se da blok radi na principu trapezoidne integracije. Postavljanjem indikatora HoldHigh, odnosno HoldLow mogue je spreiti navijanje integratora. Naime, ukoliko su ovi indikatori INTG_01 postavljeni tada se algoritam modifikuje na sledei INTG ... nain 1 Integrator 0 EnableIn EnableOut 1 0.0 In Out Da bi se olakalo postavljanje ovih indikatora 0 Initialize HighAlarm koji su zapravo ulazni parametri naredbe, naredba 0 omoguava i postavljanje indikatora dostizanja InitialValue LowAlarm 0.0 granice izvrnog organa (HighLimit i LowLimit). U IGain DeltaT 16#0000_0000 tim smislu realizuju se sledee operacije HighLimit Status 1 0 LowLimit InstructFault 1 0
HoldHigh HoldLow TimingMode OversampleDT RTSTime RTSTimeStamp IGainInv 0 HighLowLimsInv 0 TimingModeInv 0 RTSMissed 0 RTSTimeInv 0 RTSTimeStampInv 0 DeltaTInv

NAREDBA Tekst naredba ima oblik INT(ImeTaga); dok je odgovarajui funkcijski blok dijagram zajedno sa strukturom pridruenog taga INTEGRATOR prikazan na Sl. 10-22. Naredba zahteva da se specificira vremenski nain rada. Pored toga, mogue je definisati i poetnu vrednost integratora.

SL. 10-22 FB BLOK INT

10.3.2. PROPORCIONALNO-INTEGRALNO DEJSTVO (PI)


FUNKCIJA Naredba omoguava dve realizacije PI kontrolera. Prva realizacija je klasian PI sa konstantnim integralnim dejstvom, dok druga koristi nelinearni algoritam u se kome proporcionalno i integralno dejstvo menjaju u zavisnosti od brzine promene ulaznog

UPRAVLJANJE/205

signala. Algoritam se izvrava sa periodom odabiranja DeltaT Pretpostavlja se da je na ulazu u kontroler signal greke, odnosno razlika izmeu referentne vrednosti i signala povratne sprege. Kontroler realizuje funkciju prenosa gde se integralno desjtvo Wld definie u rad/sec. Pri tome ono mora da zadovolji sleee granice 0.7 0
Kpscale = 0.5 = ( KpShapeMinus 1) iIn + 1 KpInRange

Kpscale = = ( KpShapePlus 1) 0.5 iIn + 1 KpInRange

Kpscale = = 0.5 ( KpShapeMinus + 1)

Kpscale = = 0.5 ( KpShapePlus + 1)

0.5 ie KpInrange

0.5 i In KpInRange

Wldscale = = ( WldShapeMinus 1) 1 iIn + 1 WldInRange

Wldscale = = ( WldShapePlus 1) 1 iIn + 1 WldInRange

Wldscale = = WldShapeMinus

Wldscale = = WldShapePlus

1 ie WldInrange

1 iIn WldInRange

SL. 10-23 ODREIVANJE LINEARNOG SKALA FAKTORA

UPRAVLJANJE/206

Linearan reim rada Realizuje se pozicioni algoritam 1 2 pri emu je poetna vrednost izlaza integratora definisana pomou parametra InitialValue. I ovde se integracija realizuje kao trapezoidna. Izraunata vrednost izlaza mora da bude u sledeim granicama gde su i donja i gornja granica parametri koje definie korisnik. Ukoliko ovaj uslov nije ispunjen postavljaju se indikatori HighAlarm i Lowalarm, kao i odgovarajui statusni bit.
Kpscale = 0.333 = ( KpShapeMinus 1) iIn + 1 KpInRange Kpscale
ShapeKpMinus
2

Kpscale =

0.333 = ( KpShapePlus 1) iIn + 1 KpInRange


ShapeKpPlus

Kpscale = = 0.333iKpShapeMinus + 0.666


1

Kpscale = = 0.333KpShapePlus + 0.666

0 -0.5

0.5

0.333 ie KpInrange

In

0.333 iIn KpInRange


-KpInRange < In < KpInRange

Kps=Kp Kpscale

Wldscale = 1 = ( WldShapeMinus 1) iIn + 1 WldInRange


ShapeWldMinus
2

Wldscale = 0.333 = ( WldShapePlus 1) iIn + 1 WldInRange


ShapeWldPlus
2

Wldscale

Wldscale =

Wldscale = = WldShapePlus
1

= WldShapeMinus

0 -1

1 ie WldInrange

In

1 iIn WldInRange
-WldInRange < In < WldInRange

Wlds=Wld Wldscale

SL. 10-24 ODREIVANJE PARABOLINOG SKALA FAKTORa

UPRAVLJANJE/207

Nelinearan reim rada U ovom reimu rada koriste se promenljive vrednosti proporcionalnog i integralnog dejstva. Pri tome ove vrednosti mogu biti linearna ili parabolina funkcija ulazne promenljive. Izbor izmeu ova dva nelinearna profila specificira se postavljanjem indikatora ParabolicLinear (1 za parabolini profil, 0 za linearni). Na Sl. 10-23 prikazan je algoritam odreivanja linearnog skala faktora proporcionalnog i integralnog dejstva. Kao to se vidi ulazni signal se prvo skalira u odnosu na zadani opseg pa se za tako skaliranu vrednost odreuje odgovarajui skala faktor. Pri emu se za razliku od integralnog dejstva gde se ulazni signal skalira sa opsegom, on kod proporcionalnog dejstva PI_01 skalira sa polovinom te vrednosti. PI ... Potpuno analogni postupak se primenjuje i pri odreivanju parabolinog skala Proportional+Integral 0 faktora s tim to se ovde primenjuje parabolini EnableOut EnableIn profil koji je opet razliito skaliran za 0.0 Out In proporcionalno i integralno dejstvo (SL. 10-24). 0 HighAlarm Initialize Sa ovako odreenim pojaanjima sada 0 se primenjuje isti algoritam izraunavanja izlaza. LowAlarm InitialValue
0.0 Kp Wld HighLimit LowLimit HoldHigh HoldLow ShapeKpPlus ShapeKpMinus KpInRange ShapeWldPlus ShapeWldMinus WldInRange NonLinearMode ParabolicLinear TimingMode DeltaT Status 0 InstructFault 0 KpInv 0 WldInv 0 HighLowLimsInv 0 ShapeKpPlusInv 0 ShapeKpMinusInv 0 KpInRangeInv 0 ShapeWldPlusInv 0 ShapeWldMinusInv 0 WldInRangeInv 0 TimingModeInv 0 RTSMissed 0 16#0000_0000

Sve varijante realizacije PI regulatora omoguavaju da se sprei navijanje integratora. Ukoliko se to eli neophodno je da se definiu donja (LowLimit) i gornja (HighLimit) granica za veliinu integralnog dejstva posle koje se integracija privremeno obustavlja, kao i da se postave indikatori HoldHigh, odnosno HoldLow. Istovremeno se postavljaju i indikatori HighAlarma odnosno Lowalarm.

NAREDBA Tekst naredba ima oblik PI(ImeTaga);

dok je odgovarajui funkcijski blok dijagram zajedno sa strukturom pridruenog taga 0 PROP_INT prikazan na Sl. 10-25. OversampleDT RTSTimeStampInv 0 Ukoliko se postavi indikator Initialize, RTSTime DeltaTInv izlaz integratora se resetuje na zadanu poetnu RTSTimeStamp vrednost. Potrebno je obratiti panju na injenicu da SL. 10-25 FB BLOK PI naredba mora da se izvrava periodino to znai da je neophodno da se specificira i vremenski nain rada.
RTSTimeInv

10.3.3. MNOA IMPULSA - PMUL


FUNKCIJA Naredba obezbeuje interfejs izmeu pozicionog ulaznog modula, kao to su na primer rizolver ili enkoder, i digitalnog sistema kome je potrebno obezbediti informaciju o brzini. Interfejs se realizuje tako to se izraunava promena ulaza izmeu dva sken ciklusa. Mnoa impulsa ima dva naina rada: relativni i apsolutni. U apsolutnom reimu izlaz bloka je jednak ulazu pomnoenom sa faktorom 100 000

UPRAVLJANJE/208

U relativnom reimu izlaz bloka je razlika izmeu dva susedna izlaza pomnoena sa istim faktorom. Pri tome se pamti eventualni ostatak deljenja koji se dodaje u sledeem skenu. To znai da se realizuje sledei algoritam PMUL_01 _ PMUL ... Pulse Multiplier 100 000 0 _ 100000 EnableIn EnableOut NAREDBA 0.0 In Out 16#0000_0000 Tekst naredba ima oblik
Initialize InitialValue Mode WordSize Status 0 InstructFault 0 WordSizeInv 0 0 OutOverflow

PMUL(ImeTaga);

dok je odgovarajui funkcijski blok dijagram zajedno sa strukturom pridruenog taga PULSE_MULTIPLIER Multiplier LostPrecision prikazan na Sl. 10-26. 0 MultiplierInv greaka usled U cilju spreavanja prekoraenja opsega meraa mogue je definisati broj bitova ulaznog signala (WorldSize). U tom sluaju SL. 10-26 FB BLOK PMUL naredba vodi rauna o skokovitim promenama vrednosti (sa maksimalno pozitivne na maksimalno negativnu i obrnuto) i izraunava korektnu vrednost.

10.3.4. S-KRIVA I NAGIBNA FUNKCIJA - SCRV


FUNKCIJA Ovom naredbom realizuje se izlazni signal In specificiranog profila u okviru koga se izlaz menja od zadane poetne vrednosti (InitialOutput) do vrednosti ulaznog signala (In). Profil se generie tako to se izlazni signal formira u skladu sa tri relacije koje su definisane InitialOutput za tri segmenta kretanja, odreenih odnosom zadanog ubrzanja (AccelRate) i dodatnog t impulsa (JerkRate) (Sl. 10-27). U prvom i treem segmentu izlaz se ubrzava, odnosno usporava, segment segment dok se u srednjem segmentu izlaz menja 3 1 segment konstantnom brzinom. 2 Ukupno vreme generisanja signala SL. 10-27 GENERISANJE PROFILA odreeno je prema sledeoj relaciji Vreme trajanja prvog i treeg segmenta odreuju se prema relaciji dok se trajanje srednjeg segmenta izraunava kao
Out

U svakom od ovih intervala vremena izlazni signal se izraunava prema odgovarajuoj relaciji. Segment 1 1 2

UPRAVLJANJE/209

Segment 2

Segment 3

Ukoliko je

tada srednji segment uopte ne postoji te brzina promene signala nikad nije konstantna, dok se ukupno vreme generisanja izlaza dobija SCRV_01 prema SCRV
... S-Curve 0 EnableIn In Initialize InitialValue AbsAlgRamp AccelRate DecelRate JerkRate HoldMode HoldEnable TimingMode OversampleDT RTSTime EnableOut 0 S_Mode Out Rate DeltaT Status InstructFault AccelRateInv DecelRateInv 0 JerkRateInv 0 TimingModeInv 0 RTSMissed 0 RTSTimeInv 0 0.0

| |

1 2

Ukoliko se eli da izlazni profil bude "S" kriva neophodno je postaviti JerkRate tako da 0.0 bude ispunjen sledei uslov 0.0 / 16#0000_0000 Meutim ako se eli nagibna funkcija onda je 0 neophodno da se postavi sledei uslov 0 /
0

NAREDBA Tekst naredba ima oblik SCRV(ImeTaga);

dok je odgovarajui funkcijski blok dijagram zajedno sa strukturom pridruenog taga 0 DeltaTInv S_CURVE prikazan na Sl. 10-28. Naredba omoguava i da se postave HoldEnable i HoldMode indikatori. U oba sluaja SL. 10-28 FB BLOK SCRV kada je indikator HoldEnable=1 naredba dri konstantan izlaz. Pri tome ako je HoldMode=1 i naredba koristi JerkRate da bi izlaz dovela u stanje mirovanja. U protivnom izlaz se ne menja ve samo ostaje konstantan. Budui da se kriva generie u vremenu naredba ima i mogunost izbora periodinog ponavljanja.
RTSTimeStamp RTSTimeStampInv

10.3.5. KONTROLER DRUGOG REDA - SOC


FUNKCIJA Ovom naredbom realizuje se kontroler ija je funkcija prenosa sistem drugog reda

2 1 1

UPRAVLJANJE/210

SOC_01 SOC Second-Order Controller 0 EnableIn In Initialize InitialValue Gain WLag WLead ZetaLead HighLimit LowLimit HoldHigh HoldLow TimingMode OversampleDT RTSTime RTSTimeStamp EnableOut 0.0 Out 0 HighAlarm 0 LowAlarm 0.0 DeltaT Status 0 InstructFault 0 GainInv 0 WLagInv 0 WLeadInv 0 ZetaLeadInv 0 HighLowLimsInv 0 TimingModeInv 0 RTSMissed 0 RTSTimeInv 0 RTSTimeStampInv 0 DeltaTInv ...

pri emu parametri imaju sledea ogranienja 0.00001 0.07 0.0000001 0.07 0 10 _ 100000 NAREDBA Tekst naredba ima oblik SOC(ImeTaga);

16#0000_0000

dok je odgovarajui funkcijski blok dijagram zajedno sa strukturom pridruenog taga SEC_ORDER_CONTROLLER prikazan na Sl. 10-29. Kao i kod PI bloka i ovde je mogue spreiti navijanje integratora. U tom sluaju neophodno je da se postave indikatori (HoldHigh i HoldLaw), kao i da se definiu granice posle kojih se integracija privremeno prekida (HighLimit, LowLimit). Ovaj blok takoe zahteva da se specificira vremenski nain izvoenja.

SL. 10-29 FB BLOK SOC

10.3.6. AKUMULATOR - UPDN


FUNKCIJA Akumulator je blok koji u vri sabiranje ili oduzimanje ulaznih signala. Zbir ili razlika se auriraju u svakom sken ciklusu i rezultat se generie kao izlazni signal. U izvesnom smislu akumulator radi kao broja unapred ili unazad. Blok ima dva ulazna signala InPlus i InMinus. Ukoliko su oba aktivna istovremeno se vri i sabiranje i oduzimanje prema sledeem algoritmu. Hold=0 i Initialize=0 Hold=1 i Initialize=0 UPDN_01 Initialize=1 UPDN ... Up/Down Accumulator 0 Operacije se izvode u svakom sken ciklusu, EnableIn EnableOut 0.0 ukoliko je naredba omoguena (EnableIn=1). Initialize Out
InitialValue InPlus InMinus Hold

NAREDBA Tekst naredba ima oblik UPDN(ImeTaga); dok je odgovarajui funkcijski blok dijagram zajedno sa strukturom pridruenog taga UP_DOWN_ACCUM

SL. 10-30 FB BLOK UPDN

UPRAVLJANJE/211

prikazan na Sl. 10-30.

10.4.FILTRIRANJE SIGNALA 10.4.1. DIFERENCIJATOR (DERV)


FUNKCIJA Diferencijator je realizovan po metodi diferenciranja unazad, to znai da se izlaz DERV_01 izraunava prema sledeem algoritmu koji se realizuje sa odabranom periodom odabiranja. DERV ... Derivative 0 EnableOut EnableIn 0.0 Postoji mogunost privremenog prekida Out In 0.0 diferencijacije postavljanjem indikatora Bypass. DeltaT Gain U tom sluaju izlaz je jednak ulazu, tako da je 16#0000_0000 Status ByPass algoritamski korak. 0 TimingMode InstructFault 1 0 TimingModeInv OversampleDT 0 NAREDBA RTSMissed RTSTime 0 Tekst naredba ima oblik RTSTimeStamp RTSTimeInv
0 RTSTimeStampInv 0 DeltaTInv

DERV(ImeTaga); dok je odgovarajui funkcijski blok dijagram zajedno sa strukturom pridruenog taga DERIVATIVE prikazan na Sl. 10-31.

SL. 10-31 FB BLOK DERV

10.4.2. VISOKO PROPUSNI FILTAR (HPF)


FUNKCIJA Na raspolaganju su tri realizacije visoko propusnog filtra: filtri prvog, drugog i treeg reda. Izbor filtra vri se definisanjem parametra Order (1,2 ili 3). U zavisnosti od izbora realizuje se jedna od tri mogue funkcije prenosa Filtar prvog reda (Order=1) , ; 0.0000001 0.7 Filtar drugog reda (Order=2)
SL. 10-32 VISOKO
PROPUSNI FILTER

1
2

0.000005 0.7
Filtar treeg reda (Order=3)

; , 2 2 0.001 0.7

Ovako definisane funkcije prenosa realizuju nagib prve asimptote od 20, 40,

UPRAVLJANJE/212

HPF_01 HPF High-Pass Filter 0 EnableIn In Initialize WLead Order TimingMode OversampleDT RTSTime RTSTimeStamp EnableOut 0.0 Out 0.0 DeltaT ...

odnosno 60 dB/dekada (Sl. 10-32). Ukoliko se postavi indikator Initialize, izlaz filtra u tom trenutku jednak je ulazu filtra. NAREDBA Tekst naredba ima oblik HPF(ImeTaga);

16#0000_0000 Status 0 InstructFault 0 WLeadInv 0 OrderInv 0 TimingModeInv 0 RTSMissed 0 RTSTimeInv 0 RTSTimeStampInv 0 DeltaTInv

dok je odgovarajui funkcijski blok dijagram zajedno sa strukturom pridruenog taga FILTER_HIGH_PASS prikazan na Sl. 10-33. Naredba se realizuje periodino to znai da se mora odabrati odgovarajui nain vremenskog izvravanja.

10.4.3. NISKO PROPUSNI FILTAR

SL. 10-33 FB BLOK HPF

FUNKCIJA Na raspolaganju su tri realizacije nisko propusnog filtra: filtri prvog, drugog i treeg reda. Izbor filtra vri se definisanjem parametra Order (1,2 ili 3). U zavisnosti od izbora realizuje se jedna od tri mogue funkcije prenosa Filtar prvog reda (Order=1) , ;

SL. 10-34 NISKO PROPUSNI


FILTER

0.0000001 0.7

Filtar drugog reda (Order=2)


LPF_01 LPF Low-Pass Filter 0 EnableIn In Initialize WLag Order TimingMode OversampleDT RTSTime RTSTimeStamp EnableOut 0.0 Out 0.0 DeltaT 16#0000_0000 Status 0 InstructFault 0 WLagInv 0 OrderInv 0 TimingModeInv 0 RTSMissed 0 RTSTimeInv 0 RTSTimeStampInv 0 DeltaTInv ...

0.000005 0.7

Filtar treeg reda (Order=3) ; , 2 2 0.001 0.7

Ovako definisane funkcije prenosa realizuju nagib prve asimptote od -20, -40, odnosno -60 dB/dekada (Sl. 10-34). Ukoliko se postavi indikator Initialize, izlaz filtra u tom trenutku jednak je ulazu filtra. NAREDBA Tekst naredba ima oblik

SL. 10-35 FB BLOK LPF

UPRAVLJANJE/213

LPF(ImeTaga); dok je odgovarajui funkcijski blok dijagram zajedno sa strukturom pridruenog taga FILTER_HIGH_PASS prikazan na Sl. 10-35Sl. 10-33.

10.4.4. LEAD-LAG KOMPENZATOR DRUGOG REDA (LDL2)


Ovom naredbom moe se realizovati integro-diferencijalni (Lead-Lag) kompenzator prvog ili drugog reda (Order=1,2). Bodeova karakteristika kompenzatora prvog reda prikazana je na Sl. 10-36. Kompenzator drugog reda ima isti oblik karakteristike s tim to je njen nagib 40dB/dec. Samo se po sebi razume i da kompenzator drugog SL. 10-36 KOMPENZATOR PRVOG REDA reda troi vie vremena na realizaciju algoritma. Kompenzator se realizuje sa periodom odabiranja DeltaT u skladu sa sledeim funkcijama prenosa. Kompenzator prvog reda (Order=1) 1 1

LDL2_01 LDL2 Second-Order Lead-Lag ...

0.0000001 0.7

Kompenzator drugog reda (Order=2)


0

EnableIn In Initialize WLead WLag ZetaLead ZetaLag Order TimingMode OversampleDT RTSTime RTSTimeStamp

EnableOut 0.0 Out 0.0 DeltaT 16#0000_0000 Status 0 InstructFault 0 WLeadInv 0 WLagInv 0 ZetaLeadInv 0 ZetaLagInv 0 OrderInv 0 WLagRatioInv 0 TimingModeInv 0 RTSMissed 0 RTSTimeInv 0 RTSTimeStampInv 0 DeltaTInv

0.000005 0.7 0 4, 0.05 4

2 1 2 1

Za oba kondenzatora vai i sledei uslov : 40: 1 Ukoliko je odnos vei od dozvoljenog koriguje se WLag da se postigne traeni maksimalni odnos. NAREDBA Tekst naredba ima oblik LDL2(ImeTaga); dok je odgovarajui funkcijski blok dijagram zajedno sa strukturom taga LEAD_LAG_SEC_ORDER prikazan na Sl. 10-37.

SL. 10-37 FB BLOK LDL2

UPRAVLJANJE/214

10.4.5. NOTCH FILTAR - NTCH


FUNKCIJA Ovom naredbom realizuje se slabljenje signala u uskom opsegu uestanosti. Filter realizuje funkcije prenosa filtara drugog i etvrtog reda.


gde su
NTCH_01 NTCH Notch Filter EnableIn In Initialize WNotch QFactor Order TimingMode OversampleDT RTSTime RTSTimeStamp

; 2,4
...

EnableOut Out DeltaT Status InstructFault WNotchInv QFactorInv OrderInv TimingModeInv RTSMissed RTSTimeInv RTSTimeStampInv DeltaTInv

a (WNotch) centralna uestanost Notch filtra Q (QFactor) parametar koji odreuje irinu opsega slabljenja i intenzitet slabljenja. U principu pogodno je postaviti Q faktor kao 0 1 ; 0.0 2 0.0 0.5 100 16#0000_0000 Parametri filtra moraju da ispune sledea 0 ogranienja. 0 Filter drugog reda 0.0000001 0.7 0 0 Filter etvrtog reda 0 0.000005 0.7 0 0 NAREDBA 0 Tekst naredba ima oblik
0

NTCH(ImeTaga); dok je odgovarajui funkcijski blok dijagram zajedno sa strukturom pridruenog taga

SL. 10-38 FB BLOK NTCH

FILTER_NOTCH prikazan na Sl. 10-38.

10.5.LIMITERI 10.5.1. OGRANIENJE SIGNALA HLL


FUNKCIJA
HLL_01 HLL High/Low Limit EnableIn In HighLimit LowLimit SelectLimit EnableOut Out HighAlarm LowAlarm Status InstructFault LimitsInv SelectLimitInv ...

Ovom naredbom se jedan analogni signal (In) ograniava na vrednosti izmeu dve granice HighLimit i LowLimit. sve dok je ulazni signal unutar datih granica izlazni signal (Out) je jednak ulaznom. Ukoliko 0 je signal vei od gornje granice ili manji od donje granice izlaz se postavlja na graninu vrednost. 0.0 Naredba prua mogunost specificiranja da li 0 se signal testira na obe granice ili samo na jednu. U tu 0 svrhu koristi se indikator SelectLimit. 16#0000_0000 SelectLimit=0 ulazni signal se testira u 0 odnosu na obe granice 0 SelectLimit=1 ulazni signal se testira samo 0 u odnosu na gornju granicu SelectLimit=2 ulazni signal se testira samo u odnosu na donju granicu.

SL. 10-39 FB BLOK HLL

UPRAVLJANJE/215

NAREDBA Tekst naredba ima oblik HLL(ImeTaga); dok je odgovarajui funkcijski blok dijagrami zajedno sa strukturom pridruenog taga HL_LIMIT prikazan na Sl. 10-39.

10.5.2. OGRANIAVANJE BRZINE PROMENE RLIM FUNKCIJA


Ovom naredbom se ograniava iznos promene signala na datom vremenskom intervalu. Promena signala se testira u odnosu RLIM_01 na granicu rasta IncRate i opadanja DecRate. RLIM ... Naredba realizuje sledei algoritam
Rate Limiter 0 EnableIn In IncRate DecRate ByPass TimingMode OversampleDT RTSTime RTSTimeStamp EnableOut Out DeltaT Status InstructFault IncRateInv DecRateInv TimingModeInv RTSMissed RTSTimeInv RTSTimeStampInv 0 DeltaTInv 0.0 0.0

16#0000_0000 0 0 0 Ukoliko se postavi indikator ByPass 0 poreenje se ne vri i izlaz je jednak ulazu. 0 N AREDBA 0 Tekst naredba ima oblik
0

RLIM(ImeTaga); dok je odgovarajui funkcijski blok dijagram zajedno sa strukturom pridruenog taga

SL. 10-40 FB BLOK RLIM

RATE_LIMITER prikazan na Sl. 10-40.

10.5.3. SELEKTOR SIGNALA - SEL FUNKCIJA SEL_01


SEL Select 0 EnableIn In1 In2 SelectorIn EnableOut 0.0 Out ...

Naredba realizuje izbor izmeu dva ulazna signala In1 i In2 na osnovu stanja digitalnog ulaza (SelectorIn). 1 0 2 1 NAREDBA Naredba se moe realizovati samo kao FB dijagram. Izgled bloka zajedno sa strukturom pridruenog taga SELECT prikazan je na Sl. 10-41.

SL. 10-41 FB BLOK SEL

10.5.4. USLOVNI INVERTOR SNEG FUNKCIJA


Naredbom se realizuje uslovni invertor. Naime ako je indikator NegateEnableIn=1 izlaz bloka je jednak negativnom ulazu, u protivnom izlaz je jednak ulazu. NAREDBA Tekst naredba ima oblik SNEG(ImeTaga);

UPRAVLJANJE/216

SNEG_01 SNEG Selectable Negate 0 EnableIn In NegateEnable EnableOut 0.0 Out ...

dok je odgovarajui funkcijski blok dijagram zajedno sa strukturom taga SELECTABLE_NEGATE prikazan na Sl. 10-42.

10.5.5. UNAPREENI SELEKTOR ESEL FUNKCIJA

Naredbom se odabira jedan od 6 ulaza (Ini, i=1, 2, 3, 4 ,5 ,6) u skladu sa zadanim kriterijumom SL. 10-42 FB BLOK SNEG SelectorMode i odabranim reimom rada. Budui da se ne moraju koristiti svih est signala naredbom se zadaje i parametar InsUsed koji predstavlja broj ulaza koji se koriste. Naredba u tom sluaju operie samo sa signalima iji su redni brojevi izmeu 1 i InsUsed. Naredba realizuje sledei algoritam SelectorMode =0 (runi reim) ili ESEL_01 Overide=1, ProgOper=0 i OperSelecto r 0 ESEL ... i = OperSelector, Out = Ini
Enhanced Select 0 EnableIn In1 In2 In3 In4 In5 In6 In1Fault In2Fault In3Fault In4Fault In5Fault In6Fault InsUsed SelectorMode ProgSelector OperSelector ProgProgReq ProgOperReq ProgOverrideReq OperProgReq OperOperReq ProgValueReset EnableOut 0.0 Out 0 SelectedIn 0 ProgOper Override Status InstructFault InsFaulted 0 InsUsedInv 0 SelectorModeInv 0 ProgSelectorInv 0 OperSelectorInv 0

SelectorMode =0 (runi reim) ili Overide=1, ProgOper=1 i OperSelecto r 0 i = ProgSelector, Out = Ini

0 0

SelectorMode =1 (najvei signal) i Overide=0, 16#0000_0000 max Ini, 1, ,

SelectorMode =2 (najmanji signal) i Overide=0, min Ini, 1, ,

SelectorMode =3 (medijana) i Overide=0, med Ini, 1, , SelectorMode =4 (srednja vrednost) i Overide=0, sred Ini, 1, ,
Istovremeno naredba generie i indikator koji ukazuje na to koji ulazni signal je korien SelectedIn. Ako vie signala imaju najmanju ili najveu vrednost uzee se broj onog signala koji je prvi pronaen. Medijana je uvek jedan od ulaznih signala. ako vie signala moe da bude medijana izlaz je prvi ulazni signal koji je pronaen. Ukoliko signal koji bi trebalo da bude izlaz ima greku uzima se sledei signal koji ispunjava uslov ali je primljen bez greke.

SL. 10-43 FB BLOK ESEL

FUNKCIJA
Naredbom se realizuje uslovni invertor. Naime ako je indikator NegateEnableIn=1 izlaz bloka je jednak negativnom ulazu, u protivnom izlaz je jednak ulazu. NAREDBA Tekst naredba ima oblik

UPRAVLJANJE/217

MUX_01 MUX Multiplexer 0 EnableIn In1 In2 In3 In4 In5 In6 In7 In8 Selector EnableOut 0.0 Out 16#0000_0000 Status 0 InstructFault 0 SelectorInv ...

ESEL(ImeTaga); dok je odgovarajui funkcijski blok dijagram zajedno sa SELECT_ENHANCED strukturom pridruenog taga prikazan na Sl. 10-43.

10.5.6. MULTIPLEKSER MUX FUNKCIJA


Naredbom se realizuje multiplekser, to znai da je izlaz jednak jednom od 8 ulaznih signala u zavisnosti od vrednosti ulaznog signala Selector. NAREDBA Naredba se moe realizovati samo kao FB dijagram. Izgled bloka zajedno sa strukturom pridruenog taga MULTIPLEXER prikazan je na Sl. 10-44.

SL. 10-44 FB BLOK MUX


SSUM_01 SSUM Selected Summer 0 EnableIn In1 Gain1 Select1 In2 Gain2 Select2 Select7 In8 Gain8 Select8 Bias EnableOut 0.0 Out ...

10.5.7. SELEKTIVNI SABIRA - SSUM FUNKCIJA


Naredbom se realizuje teinska suma odabranih ulaznih signala. Svakom ulaznom signalu (Ini) pridruen je teinski faktor (Gaini), kao i indikator koji ukazuje da li signal uestvuje u sabiranju (Selecti). Izlazni signal se formira u skladu sa sledeom relacijom

NAREDBA Tekst naredba ima oblik SSUM(ImeTaga); dok je odgovarajui funkcijski blok dijagram zajedno sa strukturom pridruenog taga SELECTABLE_SUMMER prikazan na Sl. 10-45. Potrebno je zapaziti da u prikazanom bloku nisu svi parametri vidljivi. To znai da struktura sadri jo po tri podatka za svaki od ulaza koji nije prikazan (3 do 7).

SL. 10-45 FB BLOK SSUM

10.6.STATISTIKA 10.6.1. MOVING AVERAGE MAVE FUNKCIJA


Naredbom se realizuje teinska sumu ili srednju vrednost odbiraka signala na datom intervalu vremena. U svakom sken ciklusu (uz uslov da je EnableIn=1) uzima se nova vrednost ulaznog signala (Inn) i odbacuje vremenski najstariji odbirak. Parametar Weightn odreuje teinu svakog odbirka, dok NumberOF Samples definie ukupni broj odbiraka. Izbor izmeu teinske sume i srednje vrednosti vri se pomou indikatora UseWeights. Ako se sa N oznai ukupan broj odbiraka (N=NumberOfSamples) tada algoritam koji se realizuje u svakom sken ciklusu ima sledei oblik

UPRAVLJANJE/218

0 Prilikom inicijalizacije algoritma usvaja se da svi odbirci sa negativnim indeksima imaju vrednost nula i da se srednja vrednost izraunava deljenjem sa brojem do tada MAVE_01 prikupljenih odbiraka (n<N).

MAVE Moving Average 0 EnableIn In InFault Initialize SampleEnable NumberOfSamples UseWeights StorageArray WeightArray storage weight EnableOut 0.0 Out Status InstructFault 0 InFaulted 0 NumberOfSampInv 0 16#0000_0000 gde su ...

NAREDBA Tekst naredba ima oblik MAVE(ImeTaga,storage,weight); storage i weight polja koja sadre poslednjih n odbiraka i odgovarajue teine. Funkcijski blok dijagram zajedno sa strukturom taga MOVING_AVERAGE prikazan je na Sl. 10-46. U funkcijskom blok dijagramu pri formiranju bloka postoji mogunost i da se svi neophodni parametri definiu pomou posebnog prozora (Sl. 10-47). Da bi se dobila mogunost specificiranja teinskih faktora neophodno je da se kao prvo definie parametar NumberOfSamples

SL. 10-46 FB BLOK MAVE

SL. 10-47 SPECIFIKACIJA PARAMETARA MAVE NAREDBE

10.6.2. MOVING STANDARDNA DEVIJACIJA - MSTD


Ova naredba omoguava izraunavanje srednje vrednosti i standardne devijacije odbiraka signala na zadanom intervalu vremena. Ukupni broj odbiraka koji se usrednjava

UPRAVLJANJE/219

definisan je parametrom NumberOfSamples. Naredba realizuje sledei algoritam

Prilikom inicijalizacije algoritma MSTD_01 usvaja se da svi odbirci sa negativnim MSTD ... indeksima imaju vrednost nula i da se srednja vrednost izraunava deljenjem sa Moving Standard Deviation brojem do tada prikupljenih odbiraka (n<N) 0 EnableIn EnableOut gde je N=NumberOfSamples. 0.0

In InFault Initialize SampleEnable NumberOfSamples

Out 0.0 Average Status 0 InstructFault 0 InFaulted 0 NumberOfSampInv 16#0000_0000

NAREDBA Tekst naredba ima oblik MSTD(ImeTaga,storage);

StorageArray

storage

SL. 10-48 FB BLOK MSTD

gde je storage ime taga tipa polje koje sadri poslednjih n odbiraka. Funkcijski blok dijagram zajedno sa strukturom taga tipa MOVING_STD_DEV prikazan je na Sl. 10-48.

10.6.3. MINIMUM I MAKSIMUM SIGNALA MINC, MAXC FUNKCIJA


Ovim naredbama se odreuje minimum, odnosno maksimum, signala za sve odbirke prikupljene od trenutka resetovanja naredbe do sadanjeg trenutka. Ekstremna vrednost se odreuje tako to se trenutni ulaz poredi sa prethodnim izlazom i u zavisnosti od toga da li se trai minimalna ili maksimalna vrednost izlaz se postavlja na manju, odnosno veu, vrednost. Ukoliko je indikator MINC_01 MAXC_01 RESET=1 izlaz ima vrednost MINC MAXC ... ... definisanu sa ResetValue.
Minimum Capture 0 EnableIn In Reset ResetValue EnableOut 0.0 Out In Reset ResetValue Out EnableIn EnableOut 0.0 Maximum Capture 0

NAREDBA Tekst naredbe imaju oblik MINC(ImeTaga); MAXC(ImeTaga);

SL. 10-49 FB BLOKOVI MINC I MAXC

Funkcijski blok dijagrami zajedno sa strukturom tagova tipa MINIMU_CAPTURE, odnosno MAXIMUM_CAPTURE prikazani su na Sl. 10-49.

10.7.MOVE/LOGICAL 10.7.1. D-FLIP-FLOP DFF FUNKCIJA 1 0 1

1 0

UPRAVLJANJE/220

DFF_01 DFF D Flip Flop 0 EnableIn D Clear Clock EnableOut 0 Q 0 QNot ...

Na izlazu iz svakog sken ciklusa postavlja . NAREDBA Tekst naredba ima oblik DFF(ImeTaga); Funkcijski blok dijagram zajedno sa strukturom taga tipa FLIP_FLOP_D prikazan je na Sl. 10-50.

SL. 10-50 FB BLOK DFF

10.7.2. JK-FLIP-FLOP JKFF FUNKCIJA

1 0 1 1 0
JKFF_01 JKFF JK Flip Flop 0 ...

NAREDBA Tekst naredba ima oblik JKFF(ImeTaga); Funkcijski blok dijagram zajedno sa strukturom taga tipa FLIP_FLOP_JK prikazan je na

EnableIn Clear Clock

EnableOut 0 Q 0 QNot

SL. 10-51 FB BLOK JKFF

10.7.3. SET I RESET LEOVANIH SIGNALA SETD, RESD FUNKCIJA


U osnovi obe naredbe obavljaju istu funkciju postavljanja i resetovanja izlaznih signala. Razlika je u tome to kod SETD naredbe signal Set ima veu teinu ako je postavljen istovremeno sa signalom Reset, dok je kod RESD naredbe signal Reset sa veom teinom. SETD 1 1 0 1 0 0 1 0 1 RESD

1 1 0 0 1 0 1 1 0
SETD_01 SETD Set Dominant 0 EnableIn Set Reset EnableOut 0 Out 0 OutNot ...
RESD_01 RESD Reset Dominant 0 EnableIn Set Reset EnableOut 0 Out 0 OutNot ...

NAREDBA Tekst naredbe imaju oblik SETD(ImeTaga); RSED(ImeTaga); Funkcijski blok dijagrami zajedno sa strukturom tagova tipa DOMINANT_SET, odnosno DOMINANT_RESET prikazani su na

SL. 10-52 FB BLOKOVI SETD I RESD

ADD-ON/221

11.

Add-ON naredbe

11.1.UVOD 11.1.1. SMISAO ADD-ON NAREDBE


Add-on naredbe omoguavaju da se proiri repertoar naredbi u programskim jezicima. Ideja je da korisnik sam formira odgovarajui mikrokod za skup operacija koje se esto ponavljaju u aplikaciji. U tom smislu add-on naredba na neki nain zamenjuje potprogram. Prednost korienja add-on naredbe u odnosu na potprogram ogleda se prvenstveno u mogunosti pristupa od strane vie programa ili zadataka, ugraenoj automatskoj konverziji podataka, jednostavnijem otkrivanju greaka itd. drugim reima, add-on naredbe se prirodno nameu za niz aktivnosti slinih onima za koje postoje standardne naredbe u repertoaru. U krajnjoj liniji ne treba gubiti iz vida da su i standardne naredbe zapravo neka vrsta potprograma realizovanih u odgovarajuem programskom kodu.
PR. 11-1 Pretpostavimo da se realizuje aplikacija upravljanja jednim sloenim vodo sistemom u kome ima mnogo ventila kojima se upravlja na isti nain i to tako to se zakasneli signal komande proputa kroz integralni kompenzator. Zahtevana operacija moe da se realizuje kao funkcijski blok dijagram prikazan na Sl. 11-1. Pri tome je pretpostavljeno da e se Lead parametar u LDLG bloku postaviti na 0.
0.0 Ulaz DEDT_04 DEDT Deadtime 0.0 In 0.0 Kasnjenje Deadtime StorageArray mem_ulaza 0.0 vremkonst Lag Out In Out ... LDLG_02 LDLG Lead-Lag 0.0 Izlaz ...

SL. 11-1 LOGIKA OPERACIJE KANJENJA ULAZA INTEGRATORA Imajui u vidu da se cela kombinacija veoma esto ponavlja ima smisla da se ona realizuje kao add-on naredba koja e primati ulaznu komandu i davati upravljaki signal na izlazu.

11.1.2. STRUKTURA ADD-ON NAREDBE


Svaka Add-on naredba ima nekoliko delova. Svi delovi se posebno definiu pri kreiranju naredbe i mogu se kasnije pregledati otvaranjem odgovarajueg prozora. General opte informacije sadre podatke o tome kada je naredba kreirana, koje je revizije imala, opis ta radi itd. Potrebno je voditi rauna o injenici da revizije nisu automatski podrane ve je korisnik duan da definie na koji nain se koriste i auriraju. Parameters par ametri definiu interfejs naredbe, odnosno razmenu podataka sa ostalim naredbama u programu. Local Tags lok alni tagovi su promenljive koje se koriste unutar naredbe za definisanje programskog koda i ne mogu da s ekoriste od strane drugih naredbi. Data Type tipovi podataka ukljuuju i parametre i lokalne tagove.

ADD-ON/222

Algorit amsk a logik a je zapravo programski kod koji se izvrava svaki put kada se naredba koristi u programu. Scan Modes - postoji mogunost kreiranja posebnih rutina kojima se definie rad naredbe u pre i post skenu ili pod nekim drugim uslovima Change Histor y prikazuje poslednje informacije o editovanju naredbe Help tokom kreiranja naredbe specificirano ime, opis, revizija i parametri se koristi za automatsko definisanje "help" informacije. Add-on naredbe se mogu formirati pomou leder dijagrama, funkcijskih blokova ili struktuiranog teksta. Pri tome one ne mogu koristiti naredbe kojima se utie na promenu toka programa (pauza, poziv potprograma, triger zadataka, preuzimanje vlasnitva nad fazom i slino). Drugim reima, add-on naredba, kao i svaka druga naredba mora da bude potpuno zatvorena tako da se izvrava u celosti.

11.2.FORMIRANJE ADD-ON NAREDBE 11.2.1. POETNA SPECIFIKACIJA


Formiranje Add-on naredbe zapoinje otvaranjem odgovarajueg prozora (Sl. 11-2) koji omoguava definisanje poetnih optih karakteristika naredbe. U okviru ovog menija specificira se ime taga, odnosno naziv pod kojim e se naredba pozivati, kao i programski jezik u kome e interna logika naredbe biti napisana. Pri razmiljanju o jeziku i izboru naredbi treba voditi rauna da se one tranzicione naredbe koje u leder programima reaguju na silaznu ivicu ne mogu izvoditi unutar add-on naredbe. Naime, kada je EnableIn bit resetovan, rutina koja sadri add-on logiku se ne izvodi, to znai da se ni prelaz na nulu ne moe detektovati. Otuda se za detekciju silazne ivice mora razviti posebna logika. U fazi kreiranja ili auriranja naredbe poeljno je uneti i podatak o kojoj reviziji naredbe se radi kao i dati tekstualni opis kako bi se logika lake pratila.
PR. 11-2 U skladu sa izloenim postupkom zapoeto je formiranje add-on naredbe za problem postavljen u Pr. 11-1. Postupak formiranja je prikazan na Sl. 11-2.

Izbor programskog jezika


SL. 11-2 POETNA SPECIFIKACIJA ADD-ON NAREDBE VENTIL_UPRAVLJANJE Kada se naredba kreira onda se u repertoaru naredbi pojavljuje i blok koji odgovara ovoj naredbi, pa se on moe koristiti za formiranje programa. Na Sl. 11-4 prikazan je ovaj blok u leder i FB programu. Naredbi se pridruuje tag koji je tipa strukture VENTIL_UPRAVLJANJE. Naravno

ADD-ON/223

sama struktura jo uvek nema jasno specificiran oblik jer nisu definisani parametri strukture. istovremeno iz FB dijagrama se jasno vidi da naredba nema ni ulaz ni izlaz te je nejasno ta bi ona mogla da radi.
realizacija integralnog komenzatora sa kasnjenjem ulaza ventil_upravljanje ventil_upravljanje ventil_upravljanje_01 ...
realizacija integralnog komenzatora sa kasnjenjem ulaza ventil_upravljanje_01 ventil_upravljanje ...

SL. 11-3 BLOKOVI ADD-ON NAREDBE VENTIL_UPRAVLJANJE U LEDER I FB PROGRAMU

11.2.2. SPECIFIKACIJA PARAMETARA


Kada je definisan tag add-on naredbe pristupa se specifikaciji potrebnih parametara. Ovo se radi pomou menija koji se dobija iz opcije Properties. Da bi se razumeo nain na koji se parametri definiu neophodno je da se razmotri ta predstavlja koja opcija Vrste parametar a ( Usage ) Postoje tri vrste parametara Input parameters prenose se kao vrednosti u naredbu. Moraju biti SINT, INT, DINT, REAL ili BOOL tipa. Output parameters prenose se iz naredbe. Moraju biti SINT, INT, DINT, REAL ili BOOL tipa. InOut parametri prenose se preko reference u naredbu. Mogu biti bilo kog tipa ukljuujui i strukture i polja. Razlika izmeu toga da li se parametri prenose kao vrednosti ili kao reference sastoji se, pre svega u tome to se u prvom sluaju radi o pravljenju kopije pri pozivanju naredbe, a u drugom o uzimanju podatka sa memorijskog mesta na kome je on originalno definisan. Otuda je prva operacija sinhrona, to znai da se podaci ne mogu promeniti za vreme izvoenja add-on naredbe. Meutim, u drugom sluaju add-on naredba moe svaki put kad joj zatreba podatak na datom mestu u memoriji nai drugaiju vrednost. Ova prednost u konzistentnosti podataka ima i manu u pogledu veeg zauzea memorije i sporijem izvravanju. Tip parametara Tip parametara svakako zavisi od toga ta ti parametri predstavljaju. Pri tome, ako se radi o celobrojnim podacima pogodno je koristiti DINT tip jer se sve operacije izvode sa tim tipom. To znai da se drugi tipovi celobrojnih podataka interno konvertuju u DINT tip. Ako se parametar tipa InOut definie kao polje onda treba voditi rauna da se dimenzije polja definisane u add-on naredbi ne moraju slagati sa dimenzijama originalnog podatka ije se referenca koristi. Ovaj potencijalni problem se moe prevazii korienjem SIZE naredbe za odreivanje dimenzije podatka. Def ault Poetne vrednosti parametara koje se ele definisati prilikom inicijalizacije kontrolera u presken ciklusu zadaju se kao "default" vrednosti. Request i Vis ibilit y Pojam "Request" parametara odnosi se na one vrednosti koje se moraju preneti u add-on naredbu da bi ona mogla da se izvede, odnosno izneti iz nje da bi ona uopte imala smisla. U tom smislu, da bi se omoguilo testiranje na prisustvo ovih signala oni se specificiraju kao "req" parametri. Ukoliko odgovarajui signali nisu obezbeeni izvoenje naredbe se nee dozvoliti. Svi InOut parametri moraju se specificirati kao "req". Pojam "Visible" odnosi se na one parametre koji se ele tretirati kao ulazni ili

ADD-ON/224

izlazni signali. Pri tome, ovi ulazi i izlazi ne moraju i fiziki biti povezani pri korienju naredbe, ve se potrebne vrednosti mogu i predefinisati. Svi parametri koji se specificiraju kao "req" su automatski i vidljivi.
PR. 11-3 Posmatrajui algoritam iz Pr. 11-1 koji treba da se realizuje vidi se da je neophodno da se pored ulaznog i izlaznog signala definiu i parametri koji odreuju vrednosti kanjenja i vremenske konstante integralnog kompenzatora. Oba ova parametra su po tipu ulazna i ne vidi se razlog zato bi se prenosili kao reference. Za rad bloka za kanjenje neophodno je i da se specificira polje za smetanje prethodnih vrednosti odbiraka. S obzirom da se radi o polju ovaj podatak se mora specificirati kao InOut podatak. Konano ini se da je logino da se proverava da li je kanjenje unutar datih granica i da se informacija o tome prenese kao izlazni signal. U skladu sa izloenim definisani su parametri add-on naredbi prikazani na Sl. 11-4. Potrebno je zapaziti da su izlaz i memorija morali da budu oznaeni kao "req", pa su samim tim i vidljivi. Pored toga odabrano je da vidljivi signali budu izlaz i greka, kao i vreme kanjenja vremenska konstanta. Na taj nain omogueno je on-line doterivanje performanse sistema.

SL. 11-4 SPECIFIKACIJA PARAMETARA ADD-ON NAREDBE VENTIL_UPRAVLJANJE Poetne vrednosti parametara u ovom trenutku nisu razmatrane, no to se moe uiniti i kasnije. Isto tako, da bi se pojednostavila procedura izostavljen je izbor vremenskog naina rada koji se svakako mora ukljuiti. Potrebno je takoe zapaziti da svaka add-on naredba automatski generie dva sistemska parametra EnableIn i EnableOut koji slue za pamenje ulaznog i izlaznog uslova naredbe. Ako se logikom ne predvidi drugaije izlazni uslov je uvek jednak uslovnom. Pri tome, ulazni uslov zavisi od uslova u rangu leder naredbe, odnosno od signala koji se vodi kao ulaz u FB blok. U tekst naredbama ovaj uslov se ne moe menjati i ne utie na izvoenje naredbe.
realizacija integralnog kompenzatora sa kasnjenjem ulaza ventil_upravljanje realizacija integralnog kompenzatora sa kasnjenj... ventil_upravljanje ventil_upravljanje_02 ... Vkasnjenje 2.0 Vvremkonst 0.0 Vulaz komanda_ventila_1 0.0 Vizlaz 0.0 Vmemorija memorija_1
realizacija integralnog kompenzatora sa kasnjenjem ulaza ventil_upravljanje_02 ventil_upravljanje ...

Vkasinv
realizacija integralnog kompenzatora sa ... 0.0 Vkasnjenje Vvremkonst Vulaz Vmemorija memorija_1 Vizlaz 0 Vkasinv

SL. 11-5 IZGLED LEDER I FB ADD-ON NAREDBE VENTIL_UPRAVLJANJE Kada se specificiraju parametri onda je, bar u spoljnjem smislu, zaokrueno formiranje

ADD-ON/225

add-in naredbe. Naredba sada ima jasno definisanu strukturu taga prikazanu na Sl. 11-4. I sam pojavni oblik blokova je zaokruen (Sl. 11-5). Naredbama je pridruen isti tag VENTIL_UPRAVLJANJE_02 koji ima strukturu VENTIL_UPRAVLJANJE (Sl. 11-6)

SL. 11-6 TIP TAGA VENTIL_ UPRAVLJANJE_02 Naredba se moe koristiti i kao tekst naredba koja pored imena taga, mora da sadri i dva parametra koja su oznaena kao "req". ventil_upravljanje(ventil_upravljanje_06,komanda_ventila_1,memorija_1);

11.2.3. RAZVOJ INTERNOG ALGORITMA NAREDBE


Da bi kreirana naredba mogla neto i da radi neophodno je da se kreira interni algoritam. To pre svega zahteva da se specificiraju lokalni tagovi. Kao to je ve reeno ovi tagovi nisu deo strukture ve se samo interno koriste u algoritmu. Tagovi se kreiraju u okviru menija za definisanje naredbe Local Tags. Pr. 11-4
U skladu sa algoritmom koji je prikazan na Sl. 11-1 vidi se da je za realizaciju add-on naredbe neophodno da se definie tag bloka za kanjenje i tag bloka integralnog kompenzatora. Definisani lokalni tagovi prikazani su na

SL. 11-7 LOKALNI TAGOVI ADD-ON NAREDBE VENTIL_UPRAVLJANJE

Kada se definiu lokalni tagovi onda je mogue da se formira sam algoritamski kod naredbe. To se ostvaruje otvaranjem rutine koja je pridruena add-on naredbi.

ADD-ON/226

Pr. 11-5
U skladu sa definisanim lokalnim tagovima razvijen je FB program kojim se realizuje naredba (Sl. 11-8)

SL. 11-8 INTERNI ALGORITAM ADD-ON NAREDBE VENTIL_UPRAVLJANJE

Formirana add-on naredba izvrava se isto kao i sve druge programske naredbe u rutinama koje su pridruene nekom odreenom zadatku. Imajui u vidu da neki drugi zadatak koji ima vii prioritet moe prekinuti rad ovog zadatka jasno je da se add-on naredba ne mora uvek izvesti u celosti. Ukoliko se to eli spreiti mogue je koristiti UID/IDE naredbu za blokiranje prekida zadatka dok se naredba ne zavri. Samo se po sebi razume da performansa add-on naredbe zavisi od konfiguracije i realizovanog koda. Kada je ulazni uslov resetovan naredba se ne izvrava ali se ipak poziva ime se troi stanovito vreme. U tom smislu poeljno je utvrditi da li se naredba moe preskoiti ako uslov nije ispunjen i o tome dati odgovarajuu informaciju u prateoj dokumentaciji.

11.2.4. SPECIFIKACIJA NAINA SKENIRANJA


Kao i sve druge naredbe add-on naredba podrava etiri, ve pominjana, naina skeniranja True uslov je istinit, naredba se izvrava u skladu sa ulaznim uslovom i postavlja EnableIn=1 False uslov je neistinit, naredba se izvrava u skladu sa ovim uslovom i postavlja EnableIn=0. Naredbe u kontroleru mogu, ali i ne moraju imati kodove koji se izvravaju pod ovim uslovima. Presken izvrava se kada s ekontroler ukljuuje ili prelazi iz programskog u radni reim (run). Naredbe u kontroleru mogu, ali i ne moraju imati kodove koji se izvravaju u ovom skenu. Postsken izvrava se kao rezultat akcije u SFC rutini kojom ona postaje neaktivna, uz uslov da je rutina konfigurisana za automatsko resetovanje. Naredbe u kontroleru mogu, ali i ne moraju imati kodove koji se izvravaju u ovom skenu. U principu ako se ne specificiraju drugaiji zahtevi add-on naredba realizuje dati algoritam kada je uslov istinit i ne izvrava se kada uslov nije istinit. Pored toga, algoritam se izvrava i u presken i u postsken ciklusu, pri emu se u presken ciklusu prenose i odgovarajue vrednosti parametara.

ADD-ON/227

Korisnik ima mogunost da definisanjem tri rutine; presken, postsken i false, predvidi i dodatne aktivnosti koje e se izvriti odmah poto odgovarajua standardna rutina obradi algoritam naredbe. Ove rutine se specificiraju u okviru Scan Mode menija u kome se definie add-on naredba. Pr. 11-6
Za razvijenu add-on naredbu definisanje posebnih sken rutina vri se otvaranjem prozora prikazanog na Sl. 11-9. Sken rutina moe da se formira u bilo kom od tri raspoloiva programska jezika. Pored toga, moe da se dodatno specificira da li se izvrava ili ne.

Skok na kod rutine

Bira se da li e se izvravati

Bira se programski jezik SL. 11-9 KREIRANJE POSEBNE SKEN RUTINE

11.2.5. FORMIRANJE HELP INFORMACIJE


Generika forma HELP naredbe se formira automatski kad se kreira add-on naredba. Dodatne informacije se mogu dobiti pomou opcije HELP kojom se otvara prozor za dodavanje informacija. Sve dodatne informacije bie prebaene u osnovni generiki HELP. Izgled generisanog HELP-a za razvijenu add-on naredbu dat je na Sl. 11-10. Potrebno je na kraju da se napomene da opcija CHANGE HISTORY omoguava da se promene informacije o datumima kreiranja i revizije naredbe kao i o autoru.

ADD-ON/228

SL. 11-10 IZGLED DELA GENERISANE HELP NAREDBE

DODATAK A/229

DODATAK A PIDE NAREDBA


STRUKTURA TAGA PID_ENHANCED

Ulazni parametri PIDE_01 EnableIn PIDE_01 PV PIDE_01 P VFault PIDE_01 P VEUMax PIDE_01 P VEUMin PIDE_01 SPProg PIDE_01 SPOper PIDE_01 SPCascade PIDE_01 SP HLimit PIDE_01 SP LLimit PIDE_01 UseRatio PIDE_01 RatioProg PIDE_01 RatioOper PIDE_01 RatioHLimit PIDE_01 RatioLLimit PIDE_01 CVFault PIDE_01 CVInitReq PIDE_01 CVInitValue PIDE_01 CVProg PIDE_01 CVOper PIDE_01 CVOverride PIDE_01 CVPrevious PIDE_01 CVSetPrevious PIDE_01 CVManLimiting PIDE_01 CVEUMax PIDE_01 CVEUMin PIDE_01 CVHLimit PIDE_01 CVLLimit PIDE_01 CVROCLimit PIDE_01 FF PIDE_01 FFPrevious PIDE_01 FFSetPrevious PIDE_01 HandFB PIDE_01 HandFBFault PIDE_01 WindupHIn PIDE_01 WindupLIn PIDE_01 ControlAction PIDE_01 DependIndepend PIDE_01 PGain PIDE_01 IGain PIDE_01 DGain PIDE_01 PVEProportional PIDE_01 PVEDerivative PIDE_01 DSmoothing

BOOL REAL BOOL REAL REAL REAL REAL REAL REAL REAL BOOL REAL REAL REAL REAL BOOL BOOL REAL REAL REAL REAL REAL BOOL BOOL REAL REAL REAL REAL REAL REAL REAL BOOL REAL BOOL BOOL BOOL BOOL BOOL REAL REAL REAL BOOL BOOL BOOL

Izlazni parametri PIDE_01 EnableOut PIDE_01 CVEU PIDE_01 CV PIDE_01 CVInitializing PIDE_01 CVHAlarm PIDE_01 CVLAlarm PIDE_01 CVROCAlarm PIDE_01 SPP PIDE_01 SPercent PIDE_01 SP HAlarm PIDE_01 SP LAlarm PIDE_01 PVPercent PIDE_01 E PIDE_01 EP ercent PIDE_01 InitP rimary PIDE_01 WindupHOut PIDE_01 WindupLOut PIDE_01 RatioREAL PIDE_01 RatioHAlarm PIDE_01 RatioLAlarm PIDE_01 ZCDeadbandOn PIDE_01 P VHHAlarm PIDE_01 P VHAlarm PIDE_01 P VLAlarm PIDE_01 P VLLAlarm PIDE_01 P VROCP osAlarm PIDE_01 P VROCNegAlarm PIDE_01 DevHHAlarm PIDE_01 DevHAlarm PIDE_01 DevLAlarm PIDE_01 DevLLAlarm PIDE_01 P rogOper PIDE_01 CasRat PIDE_01 Auto PIDE_01 Manual PIDE_01 Override PIDE_01 Hand PIDE_01 DeltaT PIDE_01 AtuneReady PIDE_01 AtuneOn PIDE_01 AtuneDone PIDE_01 AtuneAborted PIDE_01 AtuneBusy PIDE_01 Status1

BOOL REAL REAL BOOL BOOL BOOL BOOL REAL REAL BOOL BOOL REAL REAL REAL BOOL BOOL BOOL REAL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL REAL BOOL BOOL BOOL BOOL BOOL DINT

DODATAK A/230

PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01

PVTracking ZCDeadband ZCOff PVHHLimit PVHLimit PVLLimit PVLLLimit PVDeadband PVROCPosLimit PVROCNegLimit PVROCPeriod DevHHLimit DevHLimit DevLLimit DevLLLimit DevDeadband AllowCasRat ManualAfterInit ProgProgReq ProgOperReq ProgCasRatReq ProgAutoReq ProgManualReq ProgOverrideReq ProgHandReq OperProgReq OperOperReq OperCasRatReq OperAutoReq OperManualReq ProgValueReset TimingMode OversampleDT RTSTime RTSTimeStamp AtuneAcquire AtuneStart AtuneUseGains AtuneAbort AtuneUnacquire

BOOL REAL BOOL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT REAL DINT DINT BOOL BOOL BOOL BOOL BOOL

PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01 PIDE_01

Status2 InstructFault P VFaulted CVFaulted HandFBFaulted PVSpanInv SPProgInv SPOperInv SP CascadeInv SPLimitsInv RatioP rogInv RatioOperInv RatioLimitsInv CVProgInv CVOperInv CVOverrideInv CVPreviousInv CVEUSpanInv CVLimitsInv CVROCLimitInv FFInv FFPreviousInv HandFBInv PGainInv IGainInv DGainInv ZCDeadbandInv PVDeadbandInv PVROCLimitsInv DevHLLimitsInv DevDeadbandInv AtuneDataInv TimingModeInv RTSMissed RTSTimeInv RTSTimeStampInv DeltaTInv

DINT BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL

DODATAK A/231

SPECIFIKACIJA PARAMETARA
Parametri bloka PIDE mogu se specificirati korienjem prozora koji su prikazani na sledeim slikama.

DODATAK A/232

LITERATURA/233

LITERATURA
Korisne publikacije koje se mogu nai na sajtu

www.rockwellautomation.com 1. LOGIX5000 CONTROLLERS COMMON PROCEDURES


1756-PM001_EN-E_COMMON PROCEDURES.PDF

2. CONTROLLOGIX CONTROLLERS
1756-UM001_-EN-P_CONTROLLLOGIX CONTROLLERS

3. 1768 COMPACTLOGIX CONTROLLERS


1768-UM001_-EN-P_COMPACT LOGIX CONTROLLERS

4. SOFTLOGIX 5 CONTROLLER
1789-UM001_-EN-P_SOFTLOGIX

5. LOGIX5000 CONTROLLERS QUICK START


1756-QS001_-EN-P_QUICK START

6. CONTROLLOGIX DIGITAL I/O MODFULES USER MANUAL


1756-UM058_-EN-P_DIGITAL IO USERA MANUAL

7. LOGIX5000 CONTROLLERS MESSAGES PROGRAMMING MANUAL


1756-PM012_-EN-P_MESSAGES

8. LOGIX5000 CONTROLLERS DESIGN CONSIDERATION REFERENCE MANUAL


1756-RM094_-EN-P_DESIGN CONSIDERATIONS

9. LOGIX5000 CONTROLLERS GENERAL INSTRUCTIONS REFERENCE MANUAL


1756-RM003_-EN-PREFERENCE MANUAL

10. PHASE MANAGER USER MANUAL


LOGIX-UM001_-EN-P_PHASE MANAGER

11. LOGIX5000 CONTROLLERS PROCESS CONTROL AND DRIVES INSTRUCTION


1756-RM006_-EN-P_INSTR_REFERENCE_PROCESS CONTROL

12. LOGIX5000 CONTROLLERS ADD-ON INSTRUCTION PROGRAMMING MANUAL


1756-PM010_-EN-P_ADD-ON INSTRUCTIONS

Das könnte Ihnen auch gefallen