Nadzor Programa
Tok & Izvajanje
Obvladajte logični tok vašega programa. Od pogojnih skokov do diagnostičnih orodij v realnem času — optimizirajte strukturo izvajanja vašega krmilnika.
Kaj so operacije nadzora programa v TIA Portalu?
Operacije nadzora programa omogočajo spreminjanje zaporednega vrstnega reda izvajanja mrež. Uporabljajo se za obhod delov kode (Skoki), ustvarjanje kompleksnih razvejitev (Razdelilniki) ali upravljanje notranjega vedenja CPU (Stop, Watchdog, Merjenje časa).
Ta navodila so močna, vendar jih je treba uporabljati previdno, zlasti navodilo WAIT, ki popolnoma blokira cikel, ali skoke, ki lahko pri prevelikem številu otežijo iskanje napak. TIA Portal ponuja tudi sodobna orodja za lokalno prestrezanje napak v vsakem bloku.
Skoki in Tok
Navodila za preusmerjanje programa
JMP / JMPN — Pogojni skoki
JMPKaj počne
JMP prekine zaporedno izvajanje in skoči na oznako (LABEL), če je RLO 1. JMPN naredi enako, če je RLO 0.
Kdaj uporabiti
Obhod dela kode, ki se ne sme izvajati v specifičnem načinu, ali ustvarjanje preprostih zank v LAD/FBD.
Pro Nasveti
Cilj skoka (LABEL) mora biti znotraj istega bloka (FC ali FB).
Ne uporabljajte skokov nazaj za ustvarjanje zank brez izhodnega pogoja, saj tvegate prekoračitev cikličnega časa.
V SCL raje uporabite strukture IF...THEN ali CASE...OF.
SWITCH — Razdelilnik za več primerov
SWITCHKaj počne
Primerja vhodno vrednost z več ciljnimi vrednostmi in skoči na mrežo, ki ustreza prvemu potrjenemu primeru. Grafični ekvivalent za Switch/Case.
Kdaj uporabiti
Upravljanje stanj stroja (preprost Grafcet), izbira načinov delovanja ali usmerjanje kosov glede na kodo tipa.
Pro Nasveti
Čistejše in bolj berljivo kot serija primerjalnikov ==.
Uporabite vhod 'ELSE' za obravnavo primerov, ko se nobena vrednost ne ujema.
Idealno za strukture menijev na HMI.
RET — Povratek
RETKaj počne
Prisili konec izvajanja trenutnega bloka (FC/FB) in se vrne v klicni blok.
Kdaj uporabiti
Predčasna prekinitev funkcije, če je na začetku bloka zaznana napaka ali če varnostni pogoj ni izpolnjen.
Pro Nasveti
Uporabno za optimizacijo cikličnega časa z izpuščanjem nepotrebne obdelave preostale kode.
Bodite pozorni: izhodi bloka, ki še niso bili obdelani, bodo ohranili svoje zadnje stanje.
V SCL uporabite navodilo RETURN;
Nadzor Izvajanja
Upravljanje cikla CPU in meritve zmogljivosti
RUNTIME — Merjenje časa
RUNTIMEKaj počne
Meri čas izvajanja dela programa ali celotnega bloka v mikrosekundah (µs).
Kdaj uporabiti
Optimizacija kode, diagnostika težkih mrež ali izračuni zmogljivosti stroja.
Pro Nasveti
Pokličite RUNTIME enkrat za inicializacijo meritve, nato pa drugič za pridobitev rezultata.
Za shranjevanje rezultata meritve uporabite podatkovni tip LReal.
Priročno za preverjanje, ali se kompleksna zanka FOR ne približuje mejam watchdoga.
WAIT — Fiksna zakasnitev
WAITKaj počne
Prekine izvajanje programa za določeno trajanje v mikrosekundah. OPOZORILO: za razliko od časovnika (Timer), WAIT popolnoma blokira cikel CPU.
Kdaj uporabiti
Čakanje nekaj mikrosekund za stabilizacijo elektronskega signala na ultra hitri I/O kartici.
Pro Nasveti
Uporabljajte izjemno zmerno. Predolgo čakanje bo sprožilo napako Watchdog in ustavilo PLC.
Nikoli ne uporabljajte za procesne zakasnitve (sekunde/minute); za to uporabite TON časovnike.
Na voljo samo na S7-1500.
STP — Zaustavitev CPU
STPKaj počne
Prisili CPU v način STOP.
Kdaj uporabiti
Stanje usodne napake, kjer stroja ne smete več upravljati, ali diagnostični test.
Pro Nasveti
Zaustavitev je takojšnja. Za ponovni zagon bo potreben ročni poseg (HMI ali stikalo).
Kjer koli je mogoče, dajte prednost upravljanju alarmov z varnim odzivom pred brutalno zaustavitvijo CPU.
Uporabno v projektih zagona za 'prekinitev' na določenem mestu.
Obravnava Napak
Lokalno prestrezanje napak pri izvajanju
GET_ERROR / GET_ERR_ID
Kaj počneta
Pridobita informacije o prvi napaki, ki se je zgodila znotraj bloka (npr. dostop do neobstoječega indeksa polja).
Kdaj uporabiti
Izboljšanje robustnosti vaših blokov s prestrezanjem programskih napak brez ustavitve PLC-ja.
Pro Nasveti
GET_ERROR nudi podrobno strukturo, GET_ERR_ID vrne le številko napake.
Postavite ta navodila na konec vaših kritičnih blokov.
Omogoča ustvarjanje lastnega dnevnika napak.
Skoki vs Kontrolne strukture
Katero metodo uporabiti za preusmerjanje programa?
| Potrebujete... | Priporočeno navodilo | Zakaj? |
|---|---|---|
| Preprost skok v Ladderju | JMP | Preskok mreže |
| Kompleksna večkratna izbira | SWITCH / CASE | Bolj berljivo kot 10 JMP-jev |
| Merjenje notranjega časa | RUNTIME | Optimizacija zmogljivosti |
| Takojšnja zaustavitev | STP | Kritična strojna napaka |
| Zelo kratko čakanje | WAIT | Elektronska stabilizacija |
| Lokalna diagnostika | GET_ERROR | Izogibanje CPU STOP-u |
Pogosta Vprašanja
Kakšna je razlika med JMP in JMP_LIST?
JMP je enojni skok na cilj. JMP_LIST omogoča definiranje seznama ciljev. Glede na numerični indeks program skoči na 1., 2. ali N-to oznako na seznamu.
Ali je navodilo WAIT nevarno?
Da, če se uporablja nepravilno. Prekine izvajanje CELOTNEGA uporabniškega programa. Če vsota vaših WAIT-ov in vaše kode preseže čas watchdoga (pogosto 150 ms), bo CPU prešel v STOP.
Kako izmeriti skupni ciklični čas PLC-ja?
Za to ne potrebujete navodila RUNTIME. Informacijo lahko preberete neposredno v lastnostih CPU-ja na spletu ali uporabite sistemske spremenljivke OB1.
Kam postaviti oznake LABEL?
Oznake LABEL lahko postavite na začetek katere koli mreže. V LAD-u se pojavijo nad levo tirnico. Ime oznake mora biti edinstveno znotraj bloka.