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

) tip funkcijski blok  IL nima posebnih statusnih bitov. kjer se shranjuje rezultat trenutno izvedene inštrukcije CR nima točno doložene dolžine bito. ki se shrani v CR predhodne inštrukcije enak operandu sledeče inštrukcije . da mora rezultat. ki se imenuje CR (Current Result). CR je lahko tipa     elementarni tip podatka izpeljan tip podatka (struktura. tabela... 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. . Rezultati primerjav se prav tako shranjujejo v CR  IL zahteva da sta dve sledeči inštrukciji kompatibilni. kot je pri običajnih mikroprocesorjih. 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   ( .pogojna izvedba če je CR = TRUE .Povezovanje nivojev z oklepajem  C . Operatorji ima lahko razširitve.

  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 .) operanda in CR OR / Disjunkcija (Piercova f.

 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 .

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

kjer se uporabijo vhodni parametri kot operatorji Metoda1 Metoda2 LD T#500ms 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.IN CAL Time1 Metoda3 LD PT LD IN T#500ms Time1 Rel Time1 CAL Time1 (IN:=Rel.PT LD Rel ST Time1.   Funkcijski blok FB kličemo z ukazi CAL. PT:= T#500ms) .

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

 Funkcijski blok diagram izvira iz področja obdelave signalov. 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 .

čeprav le-teh standard ne definira.. *) kot pri tekstovnih jezikih. 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. Pogramska orodja ponavadi označujejo vezja zaporedno. ki se uporablja ukazih skokov. kar omogoča hitrejše iskanje.   . Komentar je prav tako ločen z (* . IEC 61131-3 komentarje ne definira. Kodni del v grafičnih jezikih se deli na vezja (networks)..

konektorjev. 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. Osnova grafične reprezentacije kode je tok podatkov (data flow) Sestavljena je iz blokov. povezav. Na vhode prispejo podatki za obdelavo. na izhodnih priključkih se pojavijo rezultati obdelave Bloki so med seboj povezani z povezavami (connections) ki reprezentirajo pretok podatkov  .

 funkcijski bloki so predstavljeni kot pravokotniki z vhodnimi in izhodnimi priključki vhodni priključki blokov so lahko ‘logično povezani’. 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     .

 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     . vendar je dovoljeno povezovanje le več vhodov na en izhod.

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

jih ima FB lahko več  dejanska vrednost parametra je lahko ime spremenljivke ali konstante. 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). 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) .

Ko se vezje izvede prvič ima spremenljivka prednastavljeno vrednost. 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.  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.

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

ki je ‘napajana’ z logično 1. ali pa pretok prekinejo Elementi so povezani z povezavami. ‘maso’ in predstavlja določitev logične vrednosti celotne veje      . ki so lahko horizontalne ali vertikalne. 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 steče skozi njih. Glede na logično stanje teh elementov. Lestvični diagram je ‘pripet’ na tako imenovane energijske letve na levi in desni strani Iz leve letve. ki bodisi prevajajo ali ne. energija poseže vse elemente priključene nanjo. ki je povezan na delsno letev oz.

.

.

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

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. ki predstavlja klicano funkcijo. imena dejanskih parametrov pa ob priključkih oziroma je priključek povezan s povezavo v vezju   . LAD podpira klicanje drugih POU tipa FC ali FB Klic je prezentiran s pravokotnikom. z vhodnimi priključki.

da se določi vrednost navitja z imenom funkcije   . 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. Če je EN pri klicu FALSE se klic ne izvede in tudi ENO dobi vrednost FALSE. vsaj en vhod FB mor biti tipa BOOL in morata biti povezana neposredno v vejo vezja. Standardni FB inajo izhod Q v ta namen  Funkcije morajo imeti poseben vhod in izhod imenovan EN in ENO. ki se uporabljata za nadzor izvajanja funkcije.

konstant in klicev funkcij iz katerih se določi vrednost desnega dela. ob vsakem naslednjem izvajanju pa prednosti iz predhodnega izvajanja . Ko se vezje izvede prvič ima spremenljivka prednastavljeno vrednost. ki predstavlja logični sestav iz spremenljivk. 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. 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.

 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. saj grafično nazorno prikaže potek krmiljenja  . č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.

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

 Osnova SFC je diagram stanj sekvenčnih vezij in Petrijeve mreže prva razširjena specifikacija tega koncepta je bil GRAFCET (Telemechaniqe. Edini dodatek temu standardu so bili elementi. ki definira jezike za načrtovanje funkcijskih diagramov.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. .

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

Združitev paralelne veje (Junction of parallel branch) Zanka in znak za skok (Loop) 8.1. 4. 3. 9. Zaključek veje (Branch end) . 2. 5. 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. 7.

 Korak   Korak je lahko aktiven ali neaktiven Ko je korak aktiven. Ko je pogoj izpolnjen. 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). ki je Boolov izraz. 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č   . ki sledi neposredno koraku   Prehod določa pogoj prehoda (transition condition).

 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). ki je boolova vrednost izraz. FBD. TRUE). 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. se predhodni korak deaktivra. IL ali ST Izraz je lahko podan neposredno ob prehodu. Pogoj prehoda je lahko podan enem od jezikov IEC61131-3: LAD.

Ni dovoljeno povezati med seboj dveh korakov ali dveh prehodov. Sekvenca  Preprosta kombinacija koraka in prehoda se imenuje sekvenca (sequence)  korak in prehod si morata vedno izmenično slediti. 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) .

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  . se korak S1 deaktivira in se aktivira korak. Alternativna veja  Ko je izpolnjen eden od pogojev prehodov T1 do T3.

 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.S3 in S5) se korakideaktiviranjo   .

FBD. Večina sistemov ne podpira boolovega indikatorja  . ki jih označujejo kvalifikatorji (action qualifier) Boolov indikator (Boolean indicator) je dodatna spremenljivka. LAD. ki določi vrednosti boolovi spremenljivki Ukazna aktivnost (Instruction action) izvede zaporedje več inštrukcij. ki so zapisani v IL. Uporablja se predvsem v tekstovnih različicah. ST ali zopet kot SFC  Vsaki aktivnosti pripadajo v bloku aktivnosti pogoji izvajanja. kjer aktivnost ni zapisana neposredno za klicem aktivnosti.   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. ki označuje status aktivnosti.

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

.

.

.

.

.

 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) . V tem primeru govorimo o zanki sekvenc IEC61131-3 dovoljuje logično povezovanje.

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. 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.

 Primer: . Aktiviranje več korakov je dovoljeno le v vzporedni veji. po prehodu T1 pa bi se zoper S2 in S3. Če se izpolni tudi pogoj za prehod T4 se zoprt aktivira S1. 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. čeprav je S2 še aktiven. To ni dovoljeno saj nekontrolirano podvaja število aktivnih korakov. po prehodu T3 pa S5.

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

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

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

ločene z vejico med seboj . zadnja inštrukcija (CR) določi vrednost *) END_TRANSITION STEP Oznaka_koraka  *lahko določimo več oznak korakov. 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