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

ki se imenuje CR (Current Result). ) tip funkcijski blok  IL nima posebnih statusnih bitov. CR je lahko tipa     elementarni tip podatka izpeljan tip podatka (struktura. da mora rezultat. standardni strojni jeziki delujejo na principu akumulatorjev v mikroprocesorju   IL deluje na virtualnem akumulatorju.. kot je pri običajnih mikroprocesorjih.. ki se shrani v CR predhodne inštrukcije enak operandu sledeče inštrukcije . tabela. to pomeni. 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. . kjer se shranjuje rezultat trenutno izvedene inštrukcije CR nima točno doložene dolžine bito.

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 .

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

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

shranjen je v CR in ima tip podatka določen za funkcijo.  prvi parameter je vedno CR. ki ima isto ime kot funkcija  . ločeni so z vejicami.  Operand JMP je oznaka (LABEL) Operand CAL je ime instance FB  Funkcijo se v IL kliče tako  da se preprosto navede njeno ime. 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.  parametri funkcije sledijo imenu.

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

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

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.

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

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

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

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

ob vsakem naslednjem izvajanju va prednosti iz predhodnega izvajanja .  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. 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) .

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

.

.

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

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

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

ob vsakem naslednjem izvajanju pa prednosti iz predhodnega izvajanja . ki predstavlja logični sestav iz spremenljivk. Ko se vezje izvede prvič ima spremenljivka prednastavljeno vrednost. 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. 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.

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. Sekvenčni funkcijski diagram (Sequential Function Chart . saj grafično nazorno prikaže potek krmiljenja  .

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

Edini dodatek temu standardu so bili elementi. 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. ki omogočajo izvedljive ukaze PLC glede shranjevanja podatkov .dodani so tipi aktivnosti S in R. Francija) in je bila kasneje osnova standarda IEC 848   SFC temelji na IEC 60848. .

POU napisan v SFC mora biti napisan v tem jeziku v celoti. 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. LAD. 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)    . FBD.

7. 3.1. 9. 5. 2. Zaključek veje (Branch end) . 4. 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. 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). 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). Korak   Korak je lahko aktiven ali neaktiven Ko je korak aktiven. Ko je pogoj izpolnjen. ki je Boolov izraz.

naslednji korak pa se aktivira      . IL ali ST Izraz je lahko podan neposredno ob prehodu. ki je boolova vrednost izraz. 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. FBD. 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).

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

S3 in S5) se korakideaktiviranjo   . 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. Vzporedna oziroma sočasna sekvenca  Sočasno aktiviranje vseh povezanih korakov Ko je pogoj prehoda T1 izpolnjen se deaktivira S1.

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

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

.

.

.

.

.

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. Zanka sekvenc  Prehod lahko vodi tudi na enega od predhodnih korakov.

 IEC 61131-3 definira dve vrsti napak. vendar ta algoritem ni popolnoma zanesljiv. ki jih ta algoritem onemogoča  Pravilo: V vzporednih vejah ne uporabljamo skokov . še vedno lahko ustvarimo popolnoma dostopne ali varne povezave. 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 se izpolni tudi pogoj za prehod T4 se zoprt aktivira S1. To ni dovoljeno saj nekontrolirano podvaja število aktivnih korakov. po prehodu T3 pa S5. Aktiviranje več korakov je dovoljeno le v vzporedni veji. 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.  Primer: . po prehodu T1 pa bi se zoper S2 in S3.

saj je za ta prehod potrebno da je aktiven korak S6. se izvajanje ustavi. prav tako pa ni možen prehod v S1 prek T5. 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. ker ni aktiven korak S4. Nedostopno vezje  Nedostopno vezje je del SFC.

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

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

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

 .

Sign up to vote on this title
UsefulNot useful