MHT2

IEC 61131-3 definira tri tekstovne in tri grafične programske jezike za kodiranje uporabniških programov PLC: Tekstovni
 Instruction List (IL) – Inštrukcijska lista  Structured Text (ST) – Strukturiran tekst  Sequential Function Chart (SFC) – sekvenčni funkcijski diagram*

Grafični
 Ladder Diagram (LD) – lestvični diagram  Function Block Diagram (FBD) – funkcijski blok diagram  Sequential Function Chart (SFC) – sekvenčni funkcijski diagram**
* tekstovna verzija ** grafična verzija

 

Deklaracijski del POU je pri vseh jezikih enak Kodni del POU se pri tekstovni jeziki sestoji iz zaporedja inštrukcij (instructions) pri IL oziroma zaporedja stavkov (statements) pri ST vrstni red inštrukcij oziroma stavkov predstavlja vrstni red izvajanja kodni del POU pri grafičnih jezikih se sestoji iz grafičnih elementov, ki predstavljajo funkcijo, in povezav (connectors), ki predstavljajo pretok podatkov (data flow) temeljijo na pretoku podatkov – blok se izvede takrat ko ima na voljo vse vhodne podatke

  

IL je programski jezik podoben strojnemu (assembler) jeziku mikroprocesorjev je osnovni jezik PLC, v katerega se prevajajo vsi drugi tekstualni in grafični jeziki je vrstično orientiran. Vsaka inštrukcija, ki je izvršljiv ukaz PLC je podana natanko v eni vrstici Vrstica IL ima naslednje elemente:

Oznako (Label) je potrebno navesti če želimo iz drugih delov programa s ukazom za skok ‘skočiti’ na to inštrukcijo, drugače jo lahko izpustimo

posamezni operator oziroma funkcija poda željeno operacijo nad sledečimi parametri ter vsebino univerzalnega akumulatorja med operatorjem in operandom mora bit vsaj en presledek ali tab
komentarji so enaki v vseh porgramskih jezikih in so označeni z parom (* *). Dovoljen je samo en komentar za posamezno vrstico

Rezultati primerjav se prav tako shranjujejo v CR  IL zahteva da sta dve sledeči inštrukciji kompatibilni. kjer se shranjuje rezultat trenutno izvedene inštrukcije CR nima točno doložene dolžine bito. . tabela. da mora rezultat.. kot je pri običajnih mikroprocesorjih. ki se imenuje CR (Current Result). standardni strojni jeziki delujejo na principu akumulatorjev v mikroprocesorju   IL deluje na virtualnem akumulatorju.. kot je to primer pri mikroprocesorskih akumulatorjihZa primerno dolžino in tip podatka poskrbi prevajalnik. ) tip funkcijski blok  IL nima posebnih statusnih bitov. ki se shrani v CR predhodne inštrukcije enak operandu sledeče inštrukcije . CR je lahko tipa     elementarni tip podatka izpeljan tip podatka (struktura. to pomeni.

B1: B2: LD ADD ST GT JMPC JMP LD ST PrviOperand DrugiOperand Rezultat 0 B2 Dalec StringOP StringRES (* Nalozi prvi operand *) (* Nalozi drugi operand *) (* Shrani rezultat *) .

  Nekateri operatorji spremenijo tip podatku v CR Tabela prikazuje različne tipe vpliva ki ga ima operator na CR Vpliv skupine operatorjev na CR Create Process Leave unchanged Okrajšava C P U Primeri Set to undefined   - Nekateri operatorji spremenijo tip podatku v CR Tabela prikazuje različne tipe vpliva ki ga ima operator na CR .

ki se imenujejo modifier Razširitve  N – Negacija operanda   ( .Povezovanje nivojev z oklepajem  C . Operatorji ima lahko razširitve.pogojna izvedba če je CR = TRUE .

) operanda in CR OR / Disjunkcija (Piercova f.  IEC 61131-3 definira naslednje operatorje Operatorji nad BOOL tipi podatkov Operator Skupina Pomen LD AND AND( OR OR( LDN ANDN ANDN( ORN ORN( C P P LOAD / Naloži (negiran) operand v CR AND / Konjunkcija (Schefferjeva f.) operanda in CR XOR XOR( ST S R ) XORN XORN( STN P U U U XOR / Antivalenca (ekvivalenca) operanda in CR STORE / Shrani CR v operand SET / v operan vpiši vrednost TRUE če je CR = 1 RESET / v operan vpiši vrednost FALSE če je CR = 1 zaključek nivoja .

 Operatorji nad ANY tipi podatkov Operator LD ST Skupina C U Pomen LOAD / Naloži operand v CR STORE / Shrani operand v CR ADD SUB MUL DIV GT GE EQ NE LE ADD( SUB( MUL( DIV( GT( GE( EQ( NE( LE( P P P P P P P P P ADD / Seštej operand in CR SUBTRACT / Odštej operand od CR MULTIPLY / Zmnoži operand in CR DIVIDE / Deli CR z operandom GREATER THEN / ali je CR večji od operanda GREATER OR EQUAL / ali je CR večji ali enak od operanda EQUAL / ali je CR enak od operandu NOT EQUAL / ali CR ni enak od operandu LESS THEN OR EQUAL / ali je CR manjši ali enak od operandu LT ) LT( P U LESS THEN / ali je CR manjši od operanda Zaključek nivoja .

 Operatorji za skok in klic Operator JMP JMPC JMPCN CALCN RETCN Skupina -ali U -U Pomen (Brez)-pogojni skok na instrukcijo z oznako CAL CALC RET RETC Ime funkcije U -ali U -U P (Brez)-pogojni klic funkcijskega bloka (Brez)-pogojna vrnitev iz funkcije ali funkcijskega bloka Klic funkcije .

ločeni so z vejicami. shranjen je v CR in ima tip podatka določen za funkcijo.  prvi parameter je vedno CR. zato je prvi navedeni parameter v bistvu drugi parameter funkcije Funkcija vrne natanko en parameter. Vrednost se določi tako da v kodi funkcije določimo vrednost spremenljivki. ki ima isto ime kot funkcija  .  parametri funkcije sledijo imenu.  Operand JMP je oznaka (LABEL) Operand CAL je ime instance FB  Funkcijo se v IL kliče tako  da se preprosto navede njeno ime.

PT LD Rel ST Time1.CALC in CALN Operand CAL je ime instance FB IEC 61131-3 določa metodo podajanja parametrov  klicanje z podajanjem aktualnih vhodnih in izhodnih parametrov v oklepajih  klicanje s shranjevanjem vhodnih in izhodnih parametrov pred klicem FB  implicitnim klicanjem. PT:= T#500ms) .IN CAL Time1 Metoda3 LD PT LD IN T#500ms Time1 Rel Time1 CAL Time1 (IN:=Rel.   Funkcijski blok FB kličemo z ukazi CAL. kjer se uporabijo vhodni parametri kot operatorji Metoda1 Metoda2 LD T#500ms ST Time1.

TretjiPar (* Drugi klic *) mFun DrugiPar. TretjiPar ST Vsota FUNCTION mFun : INT VAR _INPUT Par1. DrugiPar: INT := 20. END_VAR LD ADD ADD ST RET Par1 Par2 Par3 mFun END_FUNCTION .Par3: INT. END_VAR LD PrviPar mFun DrugiPar. TretjiPar: INT := 30. Vsota: INT.VAR PrviPar: INT :=10. Par2.

kjer so pomembna cela števila in števila v zapisu s plavajočo vejico  Kmalu se je uveljavil kot splošno uporabljan jezik na področju PLC . Funkcijski blok diagram izvira iz področja obdelave signalov.

IEC 61131-3 komentarje ne definira. ki se uporablja ukazih skokov. *) kot pri tekstovnih jezikih.   . Pogramska orodja ponavadi označujejo vezja zaporedno. Kodni del v grafičnih jezikih se deli na vezja (networks).. kar omogoča hitrejše iskanje. ki so pomoč pri kontroliranju poteka izvajanja POU Vsako vezje ima     Oznako vezja Komentar Kodni (grafični) del  Oznaka vezja je alfanurmerična oznaka ali nepredznačeno število. čeprav le-teh standard ne definira.. Komentar je prav tako ločen z (* .

povezav. Osnova grafične reprezentacije kode je tok podatkov (data flow) Sestavljena je iz blokov. konektorjev. na izhodnih priključkih se pojavijo rezultati obdelave Bloki so med seboj povezani z povezavami (connections) ki reprezentirajo pretok podatkov  . Na vhode prispejo podatki za obdelavo. opetacijo nad njimi oziroma njihovo procesiranje    Bloki imajo vhodne in izhodne priključke. grafične predstavitve skokov ter grafične predstavitve funkcije za klicanje FC ali FB Blok predstavlja obdelavo podatkov.

kar je predstavljeno z imenom spremenljivke ali konstante ob priključku vhodni in izhodni priključki so lahko tudi nepovezani negirani priključki so predstavljeni z krogcem priključki ki so aktivni na bok impulza so predstavljeni z > pred formalnim imenom parametra za pozitivni bok ter z < za negativni bok     . funkcijski bloki so predstavljeni kot pravokotniki z vhodnimi in izhodnimi priključki vhodni priključki blokov so lahko ‘logično povezani’.

vendar je dovoljeno povezovanje le več vhodov na en izhod. FDB uporablja horizontalne in vertikalne črte za predstavitev povezav Možno je razdeliti povezavo na več priključkov. medtem ko je prepovedano povezati več izhodov med seboj (‘wired-or’) Vsaka povezava mora biti priključena na izhod Povezava ima tip podatka kot ga ima izhod na katerega je povezana Standard definira križanje povezav brez spoja ter z spojem     .

Vsi elementi vezja. ki ga ne predstavlja črta. ki prezentira ‘logično povezovanje’. ki so na konektor povezani neposredno ali z konektorjem pripadajo istemu vezju Konektorji so lokalne oznake v POU. zato ni dovoljeno uporabljati isto ime za oznako povezave in za ime spremenljivke v POU   . to je povezvanje. Standard definira tudi konektor (connector). ampak par ali več enakih oznak povezav.

 Za nadzor izvajanja kode POU so definirani naslednji elementi     brezpogojen skok pogojen skok brezpogojna vrnitev in POU pogojna vrnitev iz POU  Grafična reprezentacija klica POU tipa FB in FC je podobna bloku  medtem ko ima FC lahko le en izhodni priključek (funkcijsko vrednost). jih ima FB lahko več  dejanska vrednost parametra je lahko ime spremenljivke ali konstante. ali pa je vhodni priključek parametra povezan s povezavo na izhod drugega bloka  IEC61131-3 ne zahteva uporabe EN/ENO priključkov za klic (kot je to pri LAD) .

  POU se izvaja vezje po vezju od zgoraj navzdol če je potrebno spremeniti potek izvajanja se uporabljajo elementi za (brez)-pogojni skok in vrnitev  Posamezno vezje se izvajo po naslednjih pravilih    določitev vrednosti vseh vhodov bloka. ob vsakem naslednjem izvajanju va prednosti iz predhodnega izvajanja . ki se bo v nadaljevanju izvedel izvedba bloka ni končana preden niso vse vrednosti izhodov iz bloka določene vezje ni izvedeno dokler niso izvedeni vsi bloki v vezju  v FBD lahko izhod enega bloka povežemo z vhodom bloka v istem vezju – kar imenujemo povratna spremenljivka. Ko se vezje izvede prvič ima spremenljivka prednastavljeno vrednost.

 Lestvični diagram (Ladder diagram -LAD) prihaja iz krmilij izvedenih z releji in predstavlja tok energije skozi vezje POU iz leve proti desni Pogramski jezik je zasnovan za predvsem za digitalne signale   Tako kot FBD je kodni (grafični) del LAD razdeljen na posamezna vezja (networks) .

Glede na logično stanje teh elementov. ‘maso’ in predstavlja določitev logične vrednosti celotne veje      . energija steče skozi njih. ki je povezan na delsno letev oz. Prav tako se povezave lahko križajo bodisi z ali brez ‘spoja’ Vezava elementov in vrsta elementov predstavljajo logične funkcije Na koncu vsake veje je ‘rele’. energija poseže vse elemente priključene nanjo. Lestvični diagram je ‘pripet’ na tako imenovane energijske letve na levi in desni strani Iz leve letve. ki bodisi prevajajo ali ne. ali pa pretok prekinejo Elementi so povezani z povezavami. ki je ‘napajana’ z logično 1. ki so lahko horizontalne ali vertikalne.

.

.

 JUMP (skok na oznako)  RETURN (vrnitev iz POU) .

 LAD podpira klicanje drugih POU tipa FC ali FB Klic je prezentiran s pravokotnikom. ki predstavlja klicano funkcijo. imena dejanskih parametrov pa ob priključkih oziroma je priključek povezan s povezavo v vezju   . z vhodnimi priključki. ki predstavljajo parametre ter izhodnim priključkom pri FC oziroma več piključki pri FB ki predstavljajo iz izhodne parametre imena formalnih parametrov so znotaj pravokotnika.

EN in ENO morata biti povezana v vejo vezja ENO se lahko uporablja za indikacijo napake Vrednost funkcije v uporabniški funkciji se določi tako. Standardni FB inajo izhod Q v ta namen  Funkcije morajo imeti poseben vhod in izhod imenovan EN in ENO. vsaj en vhod FB mor biti tipa BOOL in morata biti povezana neposredno v vejo vezja. ki se uporabljata za nadzor izvajanja funkcije. Če je EN pri klicu FALSE se klic ne izvede in tudi ENO dobi vrednost FALSE. da se določi vrednost navitja z imenom funkcije   .

Ko se vezje izvede prvič ima spremenljivka prednastavljeno vrednost. kjer se shranjuje vrednosti v določene spremenljivke  v FBD lahko izhod enega bloka povežemo z vhodom bloka v istem vezju – kar imenujemo povratna spremenljivka. konstant in klicev funkcij iz katerih se določi vrednost desnega dela. POU se izvaja vezje po vezju od zgoraj navzdol če je potrebno spremeniti potek izvajanja se uporabljajo elementi za (brez)-pogojni skok in vrnitev Posamezna veja vezja se lahko deli na:     levi del. ob vsakem naslednjem izvajanju pa prednosti iz predhodnega izvajanja . ki predstavlja logični sestav iz spremenljivk.

saj grafično nazorno prikaže potek krmiljenja  . Sekvenčni funkcijski diagram (Sequential Function Chart .SFC) je bil zasnovan za razdelitev posameznih kompleksnih programov na manjše enote ter predstavitev poteka krmiljenja med temi enotami. čas izvedbe teh enot je odvisen tako od statičnih pogojev (definiranih v SFC) kot tudi od dinamični pogojev (vrednosti vhodov in izhodov)   Z uporabo SFC je možno izvesti sekvenčne in paralelne procese primeren za strukturiranje.

v katerih se izvršujejo določene aktivnosti. elementi se pri ustvarjanju programa kombinirajo po nekaj preprostih pravilih   . Glavna naloga programiranja v SFC je razdeliti delovanje na posamezne korake oziroma faze. ter pogoje za prehode med posameznimi koraki SFC je sestavljen iz posameznih preprostih grafičnih elementov. ki predstavljajo elemente SFC-ja simboli oz.

dodani so tipi aktivnosti S in R. ki omogočajo izvedljive ukaze PLC glede shranjevanja podatkov . Francija) in je bila kasneje osnova standarda IEC 848   SFC temelji na IEC 60848. . Osnova SFC je diagram stanj sekvenčnih vezij in Petrijeve mreže prva razširjena specifikacija tega koncepta je bil GRAFCET (Telemechaniqe. ki definira jezike za načrtovanje funkcijskih diagramov. Edini dodatek temu standardu so bili elementi.

 Ker izvedba SFC potrebuje shranjevanje informacije o trenutnem stanju (aktivnih korakih in podobno) lahko SFC realiziramo samo v POU tipa PRG in FB. FBD. STL) ali pa zopet v SFC Tako kot pri FBD in LAD je prvi nivo strukturiranja programa vezje (network). Posamezne enote so lahko programirane v enem od drugih programskih jezikov IEC61131-3 (IL. POU napisan v SFC mora biti napisan v tem jeziku v celoti. LAD. V SFC se elementi vezja imenujejo koraki (steps) in prehodi (transitions)    .

4.1. Korak (Step) Prehod (Transition) Blok aktivnosti in aktivnost (Action block) Alternativna veja (Alternative branch) Združitev alternativne veje (Junction of alternative branch) Paralelna (sočasna) veja (Parallel (simultaneous) branch) 6. 5. 7. 2. 3. 9. Zaključek veje (Branch end) . Združitev paralelne veje (Junction of parallel branch) Zanka in znak za skok (Loop) 8.

se njemu določeni ukazi imenovani aktivnosti (actions) v bloku aktivnosti (action block) neprestano izvajajo dokler korak ne postane neaktiven Kdaj korak postane neaktiven določa prehod (transition). Ko je pogoj izpolnjen. ki je Boolov izraz. Korak   Korak je lahko aktiven ali neaktiven Ko je korak aktiven. ki sledi neposredno koraku   Prehod določa pogoj prehoda (transition condition). se korak deaktivra Povezava ali več povezav za prehodom določajo kateri korak ali več korakov se aktivira Začetni korak (Initial step) se aktivira ko se POU napisan v SFC pokliče prvič   .

naslednji korak pa se aktivira      . ali pa je logično povezan z pogojem prek oznake prehoda Ko je pogoj izpolnjen (vrednost izraza je ‘1’ oz. Pogoj prehoda je lahko podan enem od jezikov IEC61131-3: LAD. se predhodni korak deaktivra. Prehod  Prehod predstavlja prehajanje od enega koraka k drugemu Grafično ga predstavlja prečna črta prek vertikalne povezave Vsak prehod določa pogoj prehoda (transition condition). TRUE). FBD. IL ali ST Izraz je lahko podan neposredno ob prehodu. ki je boolova vrednost izraz.

ali sledečih korakov  Prehod ima lahko več predhodnih  Po deaktivaciji koraka je možno aktivirati enega od sledečih korakov (alternativna veja) ali več korakov naenkrat (paralelna veja) . Sekvenca  Preprosta kombinacija koraka in prehoda se imenuje sekvenca (sequence)  korak in prehod si morata vedno izmenično slediti. Ni dovoljeno povezati med seboj dveh korakov ali dveh prehodov.

 Alternativna veja  Ko je izpolnjen eden od pogojev prehodov T1 do T3. se korak S1 deaktivira in se aktivira korak. ki sledi prehodu z izpolnjenim pogojem Tri variante ▪ ▪ ▪ Brez prioritete (pogoji morajo biti ekskluzivni) Prioriteta od leve proti desni Prioriteta določena z oštevilčenjem  .

S3 in S5) se korakideaktiviranjo   . Vzporedna oziroma sočasna sekvenca  Sočasno aktiviranje vseh povezanih korakov Ko je pogoj prehoda T1 izpolnjen se deaktivira S1. atkivirajo pa se vsi sledeči koraki povezani na T1 Ko je izpolnjen pogoj prehoda in so vsi koraki povezani na prehod T2 aktivni (S2.

FBD. Večina sistemov ne podpira boolovega indikatorja  . ki jih označujejo kvalifikatorji (action qualifier) Boolov indikator (Boolean indicator) je dodatna spremenljivka. ki določi vrednosti boolovi spremenljivki Ukazna aktivnost (Instruction action) izvede zaporedje več inštrukcij. ki označuje status aktivnosti. ST ali zopet kot SFC  Vsaki aktivnosti pripadajo v bloku aktivnosti pogoji izvajanja.   Blok aktivnosti (action block) Ko je korak aktiven se neprenehoma izvajajo aktivnosti ki so navedene v bloku aktivnosti Blok aktivnosti se nahaja na desni strani ob simbolu koraka   Aktivnost (action) Aktivnost je lahko ▪ ▪ Boolova aktivnost (Boolean action)je aktivnost. LAD. Uporablja se predvsem v tekstovnih različicah. ki so zapisani v IL. kjer aktivnost ni zapisana neposredno za klicem aktivnosti.

 1. resetiranje vrednosti. so korak in vse njegove aktivnosti klicane še enkrat. da se zagotovi pravilna zaustavitev aktivnosti (ustavitev časovnikov.…) 2. . Izvajanje aktivnosti Vsak korak je izveden vsaj enkrat po tem ko je bil aktiviran Po deaktivaciji koraka.

.

.

.

.

.

V tem primeru govorimo o zanki sekvenc IEC61131-3 dovoljuje logično povezovanje. Zanka sekvenc  Prehod lahko vodi tudi na enega od predhodnih korakov. ki ga prikažemo z paroma puščic ob katerih je oznaka koraka h kateremu povezava vodi oziroma prehoda od katerega povezava prihaja   Konec veje  Vejo lahko zaključimo tudi z elementom za konec veje (Branch End) .

 IEC 61131-3 definira dve vrsti napak. ki jih ta algoritem onemogoča  Pravilo: V vzporednih vejah ne uporabljamo skokov . vendar ta algoritem ni popolnoma zanesljiv. ki se jim moramo izogniti pri povezovanju vezji v SFC:  Nevarno povezovanje  Nedostopno vezje  IEC 61131-3 opisuje algoritem za odpravo napak povezav (IEC TR394). še vedno lahko ustvarimo popolnoma dostopne ali varne povezave.

čeprav je S2 še aktiven. Nevarno vezje  Nevarno vezje (unsafe network) omogoča nekontrolirano in nekoordinirano aktiviranje korakov (izven paralelnih sekvenc) ▪ Po prehodu T1 se aktivirata koraka S2 in S3. Aktiviranje več korakov je dovoljeno le v vzporedni veji. po prehodu T3 pa S5. Če se izpolni tudi pogoj za prehod T4 se zoprt aktivira S1. To ni dovoljeno saj nekontrolirano podvaja število aktivnih korakov.  Primer: . po prehodu T1 pa bi se zoper S2 in S3.

saj je za ta prehod potrebno da je aktiven korak S6. ker ni aktiven korak S4. prav tako pa ni možen prehod v S1 prek T5. Nedostopno vezje  Nedostopno vezje je del SFC. saj prehod v S6 prek T4 ni možen. kjer sekvence ne morejo postati aktivne  Primer: ▪ Ko se v vezju po aktivaciji korakov S2 in S3 prek T1 aktivira S5 prek T3. . se izvajanje ustavi.

ločene z vejico med seboj . ki kličejo aktivnosti *) END_STEP ACTION (* stavki ki izvedejo aktivnost *) END_ACTION *lahko določimo več oznak korakov. ST verzija TRANSITION FROM Oznaka_koraka* TO Oznaka_koraka* := (* ST izraz *) END_TRANSITION STEP Oznaka_koraka: (* stavki. V tem primeru jih navedemo v oklepaju.

T#100ms). ST verzija TRANSITION FROM Korak1 TO Korak5 := := Tipka_Start & Zalogovnik_Poln END_TRANSITION STEP Oznaka_koraka: Vklopi_Motor (N). END_STEP ACTION Vklopi_Motor Motor_ON := Motor_Pripravljen & Varovalke_OK END_ACTION ACTION Vklopi_Luc Rdeca_Luc := TRUE. V tem primeru jih navedemo v oklepaju. ločene z vejico med seboj . END_ACTION *lahko določimo več oznak korakov. Vkopi_Luč (L.

zadnja inštrukcija (CR) določi vrednost *) END_TRANSITION STEP Oznaka_koraka  *lahko določimo več oznak korakov. ločene z vejico med seboj . V tem primeru jih navedemo v oklepaju. IL verzija TRANSITION FROM Oznaka_koraka TO Oznaka_koraka := (* lista inštrukcij.

 .

Sign up to vote on this title
UsefulNot useful