Beruflich Dokumente
Kultur Dokumente
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
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
UVOD/2
1.1.1.
RS232
CERCOS drajveri
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.
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).
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
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.
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.
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.
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.
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.
Tip podatka
Opseg
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.)
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
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.
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.
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.
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.
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.
UVOD/14
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
O vezivanju udaljenih U/I modula bie rei kasnije kada se razmotre specifinosti komunikacije kontrolera preko razliitih mrea.
1.4.1.
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.
UVOD/16
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.
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
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.
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.
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
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
2.2.3.
DEVICENET MREA
DeviceNet mrea
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
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 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
System User
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
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
SLC 5/03
KOMUNIKACIJE/24
Udaljeni U/I moduli se vezuju preko odgovarajuih adaptera (ASB). Jedan DH/RIO modul moe da podri vie adaptera.
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.1.
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
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.
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).
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.
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.
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.
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.
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).
KOMUNIKACIJE/31
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.
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.
Nepovezane poruke
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 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
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
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
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.
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.
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
M P
M P
M P
M P
M P
M P
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
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
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.
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
PROJEKAT/43
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.
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
Kontroler 1756-L63
Promena ulaza
Backplane komunikacija
Auriranje izlaza
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
3.3.2.
PRIMLJENI TAG
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
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
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)
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.
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
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.
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.
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).
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
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
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
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).
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
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
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; ; ;
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
PROGRAMIRANJE/57
... Inicijalizacija
P1
...
motor_on
motor.2 :=1;
D 3 ... pumpa_on
pumpa.3 :=1;
... nije_kraj A4
ini_done
Inicijalizacija.DN
... upravljanje_motorima
... upravljanje_pumpama
...
gotovo
... vreme
...
nije_kraj
...
kraj
not vreme_dn
Branch A2 ACTION vrati se nazad
vreme_dn
Stop
4.5.1.
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
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
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
4.5.3.
IZVRAVANJE
STANJA
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
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.
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 deaktivirano
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
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
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
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.
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.
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;
Programmatic reset
motor_radi [:=] 1;
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.
... 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.
kraj
LAN
KRAJ.STATUS KRAJ.X KRAJ.RESET
KRAJ.COUNT
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> /
4.5.8.
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
...
sledeca_faza
... poc
... akt_1
...
uslov_1
...
SBR Subroutine
motor.5
a
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
...
SBR Subroutine
...
SBR
a b RET Return c
FAZE/71
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
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.
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
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).
FAZE/74
Spreman
Start
DONE Prekinut
Resetovanje
Restart
Stop Abort
Abort
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.
5.2.2.
SPECIFIKACIJA
RUTINA STANJA
Svakom radnom stanju unutar jedne faze, ukoliko je ono specificirano dijagramom
FAZE/77
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.
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.
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
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.
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.
5.3.2.
FORMIRANJE
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
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
...
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
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.
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
SL. 5-18 PROGRAMSKI KOD ZA REALIZACIJU RESSETING STANJA FAZE SMART TRAKA
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.
5.4.2.
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
Struktuirani tekst
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
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
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
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
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
pauzi
logici
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.
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
FAZE/89
5.4.4.
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
NAREDBE/91
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
c /
6.1.2.
NAREDBE AKCIJE
NAZIV LEDER PROGRAM LOGIKA STRUKTUIRANI TEKST
SIMBOL
a
a L
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;
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.
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)
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
a b
SB OB
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 ...
.InputBit = 0 (InputBit)n1 = 1 OutputBit = 0 U pre i post skenu ne izvrava se nikakva akcija U prvom prolazu (InputBit)n-1 =1
OSRI (u_ivica);
s_ivica
.InputBit = 0 (InputBit)n 1 = 1
OutputBit = 1
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
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
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
6.2.2.
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
EN DN
Pre-sken: EN, TT, DN, ACC i izlazni uslov se resetuju, Post-sken: izlazni uslov se resetuje
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 ...
TOFR(ime_cas);
NAREDBE/96
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 ...
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).
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
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
...
CD DN
CTUD(ime_brojaca);
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.1.
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.
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
NAREDBE/99
6.3.3.
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 ...
6.3.4.
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 ...
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
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)
NOT_01
AND Bitwise AND 0 SourceA SourceB Dest ...
NOT
...
NAREDBE/101
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
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)
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
NAREDBE/102
OPIS Ako je bit jednak 0, blok se ne obrauje Prvi operand Drugi operand Ako je 1 naredba je ispravno izvrena Rezultat operacije
Boolean And 0 In1 In2 In3 In4 In5 In6 In7 In8
In
BXOR_01
Out
BXOR
...
Boolean Exclusive Or 0
In1 In2
Out
Pre i post sken nema akcije SL. 6-14 SIMBOLI LOGIKIH NAREDBI NAD BULOVSKIM PROMENLJIVIM
6.4.2.
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
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
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.
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
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.
Compute Dest
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.
6.5.1.
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 ...
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
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
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
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
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
ABCD CDAB - ABCD BA DC U tekstualnom programu naredba se koristi kao poziv potprograma SWPB (Source, OrderMode, Dest);. HIGH/LOW
6.5.2.
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 ...
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.
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 ...
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
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.
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.
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.
NAREDBE/109
6.6.4.
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.
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
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
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
6.6.6.
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.
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.
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;
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
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.
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
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.
NAREDBE/114
Con_1.FD
BOOL
Ne koristi se
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
menja se
ne menja se
pre izvoenja naredbe posle izvoenja 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.
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.
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.
NAREDBE/118
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
i j
0 i
sbr(i,j);
naredbe;
RET Return from Subroutine Return Par k Return Par polje_1
ret(k,polje_1);
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
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.
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.
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).
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.
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
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
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.
PORUKE/125
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
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.
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.
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.
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
7.2.2.
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.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
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.
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.
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
7.2.5.
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
7.2.6.
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
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
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
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.
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.
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.
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
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
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
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
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
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).
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
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
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
OSTAVITI PRAZNO
PREDEFINISANA
NE POSTOJI
PREDEFINISANA
NE POSTOJI
NE POSTOJI
BROJ KANALA
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
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
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
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)
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
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.
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
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.
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.
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
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.
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.
PORUKE/152
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.
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
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
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.
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.
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.
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
SISTEMSKI PODACI/159
TEKST
? ? ? ? ??
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.
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.
TimeSlice ControllerLogTotal EntryCount ControllerLogExecution ModificationCount ConrtrollerLogUnsaved EntryCounts ControllerLogAutoWrite ExecutionCount ConfigureMask
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
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)
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
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
EmbededResponcEnable
SINT
ENQTransmitLimit
SINT
NAKReceiveLimit
SINT
NormalPollGroupSize
INT
PollingMode
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).
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.
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)
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
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
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
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
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
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
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
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
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
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
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
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)
Svi ovi atributi mogu se i postaviti pomou SSV naredbe (T. 8-11).
ATRIBUT TIP TAGA OPIS
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)
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
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
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
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.
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
CV E Edt
t 0 t
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,
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
PID/177
9.2.2.
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
PID/179
9.2.3.
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).
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
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.
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.
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
.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.
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
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.
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.
UPRAVLJANJE/186
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 ...
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
UPRAVLJANJE/188
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
UPRAVLJANJE/191
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 ...
sec
Pri svakom izvravanju naredbe u specificirani bafer se smeta podatak
UPRAVLJANJE/192
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.
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.
Y6 Y5 Out
Y4 Y3
Y2
X1
X2
X3
X4 In
X5
X6
UPRAVLJANJE/193
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
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
OpenTime
< MinOnTime
CloseTime=
OpenTime(n-1)
< CycleTime
OpenTime= OpenTime+Deadtime
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.
...
SRTP_01 SRTP ...
UPRAVLJANJE/197
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.
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 ...
dok je odgovarajui funkcijski blok dijagram zajedno sa strukturom pridruenog taga SCALE prikazan na Sl. 10-19. 16#0000_0000
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 ...
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.
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
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.
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.
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
0.5 ie KpInrange
0.5 i In KpInRange
Wldscale = = WldShapeMinus
Wldscale = = WldShapePlus
1 ie WldInrange
1 iIn WldInRange
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 -0.5
0.5
0.333 ie KpInrange
In
Kps=Kp Kpscale
Wldscale
Wldscale =
Wldscale = = WldShapePlus
1
= WldShapeMinus
0 -1
1 ie WldInrange
In
1 iIn WldInRange
-WldInRange < In < WldInRange
Wlds=Wld Wldscale
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.
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
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.
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
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
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.
NAREDBA Tekst naredba ima oblik UPDN(ImeTaga); dok je odgovarajui funkcijski blok dijagram zajedno sa strukturom pridruenog taga UP_DOWN_ACCUM
UPRAVLJANJE/211
DERV(ImeTaga); dok je odgovarajui funkcijski blok dijagram zajedno sa strukturom pridruenog taga DERIVATIVE prikazan na Sl. 10-31.
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.
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) , ;
0.0000001 0.7
0.000005 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
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.
0.0000001 0.7
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
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.
UPRAVLJANJE/214
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
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.
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.
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
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.
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.
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 =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.
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.
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).
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
UPRAVLJANJE/219
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
StorageArray
storage
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.
Funkcijski blok dijagrami zajedno sa strukturom tagova tipa MINIMU_CAPTURE, odnosno MAXIMUM_CAPTURE prikazani su na Sl. 10-49.
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.
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
EnableOut 0 Q 0 QNot
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
ADD-ON/221
11.
Add-ON naredbe
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.
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.
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 ...
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);
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)
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.
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.
Bira se da li e se izvravati
ADD-ON/228
DODATAK A/229
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
2. CONTROLLOGIX CONTROLLERS
1756-UM001_-EN-P_CONTROLLLOGIX CONTROLLERS
4. SOFTLOGIX 5 CONTROLLER
1789-UM001_-EN-P_SOFTLOGIX