Professional Documents
Culture Documents
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
standardni strojni jeziki delujejo na principu akumulatorjev v mikroprocesorju
IL nima posebnih statusnih bitov, kot je pri običajnih mikroprocesorjih. Rezultati primerjav
se prav tako shranjujejo v CR
Razširitve
N – Negacija operanda
( - Povezovanje nivojev z oklepajem
C - pogojna izvedba če je CR = TRUE
IEC 61131-3 definira naslednje operatorje
Operatorji nad BOOL tipi podatkov
Operator Skupina Pomen
LD LDN C LOAD / Naloži (negiran) operand v CR
AND ANDN P AND / Konjunkcija (Schefferjeva f.) operanda in CR
AND( ANDN(
OR ORN P OR / Disjunkcija (Piercova f.) operanda in CR
OR( ORN(
XOR XORN P XOR / Antivalenca (ekvivalenca) operanda in CR
XOR( XORN(
ST STN U STORE / Shrani CR v operand
S U SET / v operan vpiši vrednost TRUE če je CR = 1
R U RESET / v operan vpiši vrednost FALSE če je CR = 1
) zaključek nivoja
Operatorji nad ANY tipi podatkov
Operator Skupina Pomen
LD C LOAD / Naloži operand v CR
ST U STORE / Shrani operand v CR
ADD ADD( P ADD / Seštej operand in CR
SUB SUB( P SUBTRACT / Odštej operand od CR
MUL MUL( P MULTIPLY / Zmnoži operand in CR
DIV DIV( P DIVIDE / Deli CR z operandom
GT GT( P GREATER THEN / ali je CR večji od operanda
GE GE( P GREATER OR EQUAL / ali je CR večji ali enak od operanda
EQ EQ( P EQUAL / ali je CR enak od operandu
NE NE( P NOT EQUAL / ali CR ni enak od operandu
LE LE( P LESS THEN OR EQUAL / ali je CR manjši ali enak od operandu
LT LT( P LESS THEN / ali je CR manjši od operanda
) U Zaključek nivoja
Operatorji za skok in klic
Operator Skupina Pomen
JMP -ali U (Brez)-pogojni skok na instrukcijo z oznako
JMPC JMPCN -U
CAL - (Brez)-pogojni klic funkcijskega bloka
CALC CALCN U
RET -ali U (Brez)-pogojna vrnitev iz funkcije ali funkcijskega bloka
RETC RETCN -U
Ime P Klic funkcije
funkcije
Operand JMP je oznaka (LABEL)
RETURN
(vrnitev iz POU)
LAD podpira klicanje drugih POU tipa
FC ali FB
2. Prehod (Transition)
9. Zaključek veje
(Branch end)
Korak
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
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
Blok aktivnosti (action block)
Aktivnost (action)
Aktivnost je lahko
▪ Boolova aktivnost (Boolean action)je aktivnost,
ki določi vrednosti boolovi spremenljivki
▪ Ukazna aktivnost (Instruction action) izvede
zaporedje več inštrukcij, ki so zapisani v IL, FBD,
LAD, ST ali zopet kot SFC
2. Po deaktivaciji koraka, so
korak in vse njegove
aktivnosti klicane še enkrat,
da se zagotovi pravilna
zaustavitev aktivnosti
(ustavitev časovnikov,
resetiranje vrednosti,…)
Zanka sekvenc
Konec veje
Nevarno povezovanje
Nedostopno vezje
Primer:
▪ Po prehodu T1 se aktivirata koraka S2
in S3, po prehodu T3 pa S5. Če se
izpolni tudi pogoj za prehod T4 se
zoprt aktivira S1, po prehodu T1 pa bi
se zoper S2 in S3, čeprav je S2 še
aktiven. To ni dovoljeno saj
nekontrolirano podvaja število
aktivnih korakov. Aktiviranje več
korakov je dovoljeno le v vzporedni
veji.
Nedostopno vezje
Nedostopno vezje je del SFC, 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, saj prehod v S6
prek T4 ni možen, ker ni aktiven
korak S4, prav tako pa ni možen
prehod v S1 prek T5, saj je za ta
prehod potrebno da je aktiven
korak S6.
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
ST verzija
TRANSITION FROM Korak1 TO Korak5 :=
:= Tipka_Start & Zalogovnik_Poln
END_TRANSITION
STEP Oznaka_koraka:
Vklopi_Motor (N);
Vkopi_Luč (L, T#100ms);
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. V tem primeru jih navedemo v oklepaju, ločene z vejico med seboj
IL verzija
STEP Oznaka_koraka
*lahko določimo več oznak korakov. V tem primeru jih navedemo v oklepaju, ločene z vejico med seboj