P. 1
IEC6113-3 Jeziki

IEC6113-3 Jeziki

|Views: 78|Likes:
Published by Tomislav Canjuga

More info:

Published by: Tomislav Canjuga on Jan 19, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

11/12/2011

pdf

text

original

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

standardni strojni jeziki delujejo na principu akumulatorjev v mikroprocesorju

IL deluje na virtualnem akumulatorju, ki se imenuje CR (Current
Result
), kjer se shranjuje rezultat trenutno izvedene inštrukcije

CR nima točno doložene dolžine bito, kot je to primer pri mikroprocesorskih
akumulatorjihZa primerno dolžino in tip podatka poskrbi prevajalnik.

CR je lahko tipa

elementarni tip podatka
izpeljan tip podatka (struktura, tabela, ... )
tip funkcijski blok

IL nima posebnih statusnih bitov, kot je pri običajnih mikroprocesorjih. Rezultati primerjav

se prav tako shranjujejo v CR

IL zahteva da sta dve sledeči inštrukciji kompatibilni, to pomeni, da
mora rezultat, ki se shrani v CR predhodne inštrukcije enak operandu
sledeče inštrukcije

B1:

LD

PrviOperand

(* Naloziprvi operand *)

ADD

DrugiOperand

(* Nalozidrugi operand *)

ST

Rezultat

(* Shrani rezultat *)

GT

0

JMPC

B2

JMP

Dalec

B2:

LD

StringOP

ST

StringRES

Nekateri operatorji spremenijo tip podatku v CR

Tabela prikazuje različne tipe vpliva ki ga ima operator na CR

Vpliv skupine
operatorjev na CR

OkrajšavaPrimeri

Create

C

Process

P

Leave unchanged

U

Set toundefined

-

Nekateri operatorji spremenijo tip podatku v CR

Tabela prikazuje različne tipe vpliva ki ga ima operator na CR

Operatorji ima lahko razširitve, ki se

imenujejo modifier

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
AND(

ANDN
ANDN(

P

AND / Konjunkcija (Schefferjeva f.) operanda in CR

OR
OR(

ORN
ORN(

P

OR / Disjunkcija (Piercova f.) operandain CR

XOR
XOR(

XORN
XORN(

P

XOR / Antivalenca(ekvivalenca) operanda in CR

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 / alije CR večji od operanda

GE

GE(

P

GREATER OR EQUAL / alije CR večji ali enak od operanda

EQ

EQ(

P

EQUAL / alije CR enak od operandu

NE

NE(

P

NOT EQUAL / aliCR 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 / alije CR manjši od operanda

)

U

Zaključeknivoja

Operatorji za skok in klic

Operator

Skupina

Pomen

JMP
JMPC

JMPCN

-ali U
-U

(Brez)-pogojni skok na instrukcijo z oznako

CAL
CALC

CALCN

-
U

(Brez)-pogojni klic funkcijskega bloka

RET
RETC

RETCN

-ali U
-U

(Brez)-pogojna vrnitev iz funkcije ali funkcijskega bloka

Ime
funkcije

P

Klic funkcije

OperandJMP je oznaka (LABEL)

Operand CAL je imeinstance FB

Funkcijo se v IL kliče tako
da se preprosto navede njeno ime.
parametri funkcije sledijo imenu, ločeni so z vejicami.
prvi parameter je vedno CR, zato je prvi navedeni parameter v bistvu
drugi parameter funkcije

Funkcija vrne natanko en parameter,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, ki ima isto ime kot funkcija

Funkcijski blok FB kličemo z ukazi CAL,CALC in CALN

Operand CAL je imeinstance FB

IEC 61131-3določ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

Metoda3

CAL Time1 (IN:=Rel,PT:= T#500ms)

LD T#500ms
STTime1.PT
LD Rel
ST Time1.IN
CAL Time1

LD T#500ms
PT Time1
LD Rel
IN Time1

VAR

PrviPar: INT :=10;
DrugiPar: INT := 20;
TretjiPar: INT := 30;
Vsota: INT;
END_VAR

LD

PrviPar
mFunDrugiPar, TretjiPar
(* Drugi klic *)
mFunDrugiPar, TretjiPar
ST

Vsota

FUNCTION mFun: INT
VAR _INPUT
Par1, Par2,Par3: INT;

END_VAR

LD

Par1

ADD

Par2
ADD Par3
ST

mFun

RET

END_FUNCTION

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

Kodni del v grafičnih jezikih se deli na vezja
(networks), ki so pomoč pri kontroliranju
poteka izvajanja POU

Vsako vezje ima

Oznako vezja
Komentar
Kodni (grafični) del

Oznaka vezja je alfanurmeričnaoznaka ali
nepredznačenoštevilo, ki se uporablja

ukazih skokov.

Pogramskaorodja ponavadioznačujejo vezja
zaporedno, kar omogoča hitrejše iskanje,
čeprav le-teh standard ne definira.

Komentar je prav tako ločen z (* ... *) kot pri

tekstovnih jezikih. IEC 61131-3 komentarje
ne definira.

Osnova grafične reprezentacije kode

je tok podatkov (data flow)

Sestavljena je iz blokov, povezav,

konektorjev, grafične predstavitve
skokov ter grafične predstavitve

funkcije za klicanje FC ali FB

Blokpredstavlja obdelavo podatkov,
opetacijo nad njimi oziroma njihovo
procesiranje

Bloki imajo vhodne in izhodne
priključke
. 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, vendar je dovoljeno
povezovanje le več vhodov na en

izhod, 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

Standard definira tudi konektor

(connector), ki prezentira ‘logično
povezovanje’, to je povezvanje, 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,
zato ni dovoljeno uporabljati isto ime
za oznako povezave in za ime
spremenljivke v POU

Za nadzor izvajanja kode POU so
definirani naslednji elementi

brezpogojen skok
pogojen skok
brezpogojna vrnitev in POU
pogojna vrnitev iz POU

Grafična reprezentacijaklica 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 izvajopo 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

prednastavljenovrednost, ob vsakem
naslednjem izvajanju vaprednosti iz
predhodnega izvajanja

Lestvični diagram (Ladder
diagram -
LAD) prihaja iz
krmilijizvedenih z releji in
predstavlja tok energije skozi
vezje POU iz leve proti desni

Pogramskijezik je zasnovan za
predvsem za digitalne signale

Tako kot FBD je kodni

(grafični) del LAD razdeljen na

posamezna vezja (networks)

Lestvični diagram je ‘pripet’ na tako

imenovane energijske letve na levi in desni
strani

Iz leve letve, ki je ‘napajana’ z logično 1,
energija poseže vse elemente priključene
nanjo. Glede na logično stanje teh

elementov, ki bodisi prevajajo ali ne, 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’, ki je povezan na
delsno letev oz. ‘maso’ in predstavlja
določitev logične vrednosti celotne veje

JUMP
(skok na oznako)

RETURN
(vrnitev iz POU)

LAD podpira klicanje drugih POU tipa
FC ali FB

Klic je prezentirans pravokotnikom,
ki predstavlja klicano funkcijo, z

vhodnimi priključki, ki predstavljajo
parametre ter izhodnim priključkom
pri FC oziroma več piključkipri FB ki
predstavljajo iz izhodne parametre

imena formalnih parametrov so
znotajpravokotnika, imena dejanskih

parametrov pa ob priključkih oziroma
je priključek povezan s povezavo v

vezju

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.

Če je EN pri klicu FALSE se klic ne izvede

in tudi ENO dobi vrednost FALSE. 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, da se določi vrednost navitja z

imenom funkcije

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, ki predstavlja logični sestav iz spremenljivk,
konstant in klicev funkcij iz katerih se določi vrednost

desnega dela, 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. Ko se

vezje izvede prvič ima spremenljivka

prednastavljenovrednost, ob vsakem
naslednjem izvajanju pa prednosti iz
predhodnega izvajanja

Sekvenčni funkcijski diagram

(Sequential FunctionChart-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, saj

grafično nazorno prikaže potek

krmiljenja

Glavna naloga programiranja v
SFC je razdeliti delovanje na
posamezne korake oziroma

faze, v katerih se izvršujejo
določene aktivnosti, ter

pogoje za prehode med
posameznimi koraki

SFC je sestavljen iz
posameznih preprostih

grafičnih elementov, ki

predstavljajo elemente SFC-ja

simboli oz. elementi se pri
ustvarjanju programa
kombinirajo po nekaj
preprostih pravilih

Osnova SFC je diagram stanj
sekvenčnih vezij in Petrijeve
mreže

prva razširjena specifikacija tega

koncepta je bil GRAFCET
(Telemechaniqe, Francija) in je
bila kasneje osnova standarda
IEC 848

SFC temelji na IEC 60848, ki

definira jezike za načrtovanje

funkcijskih diagramov. Edini
dodatek temu standardu so bili

elementi, ki omogočajo izvedljive

ukaze PLC glede shranjevanja
podatkov -dodani so tipi
aktivnosti S in R.

Ker izvedba SFC potrebuje
shranjevanje informacije o
trenutnem stanju (aktivnih korakih in
podobno) lahko SFC realiziramo
samo v POU tipa PRG in FB.

POU napisan v SFC mora biti napisan
v tem jeziku v celoti.

Posamezne enote so lahko
programirane v enem od drugih
programskih jezikov IEC61131-3 (IL,
FBD, LAD, STL) ali pa zopet v SFC

Tako kot pri FBD in LAD je prvi nivo
strukturiranja programa vezje
(network). V SFC se elementi vezja
imenujejo koraki (steps) in prehodi
(transitions)

1.

Korak (Step)

2.

Prehod (Transition)

3.

Blok aktivnosti in aktivnost (Actionblock)

4.

Alternativna veja (Alternative branch)

5.

Združitev alternativne veje

(Junctionof alternative branch)

6.

Paralelna (sočasna) veja

(Parallel (simultaneous) branch)

7.

Združitev paralelne veje

(Junctionof parallel branch)

8.

Zanka in znak za skok
(Loop)

9.

Zaključek veje

(Branchend)

Korak

Korak je lahko aktiven ali neaktiven

Ko je korak aktiven, se njemu določeni ukazi

imenovani aktivnosti (actions) v bloku
aktivnosti (actionblock) neprestano izvajajo
dokler korak ne postane neaktiven

Kdaj korak postane neaktiven določa

prehod (transition), ki sledi neposredno
koraku

Prehod določa pogoj prehoda (transition
condition
), ki je Boolov izraz. Ko je pogoj
izpolnjen, se korak deaktivra

Povezava ali več povezav za prehodom
določajo kateri korak ali več korakov se

aktivira

Začetni korak (Initialstep) se aktivira ko se
POU napisan v SFC pokliče prvič

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

(transitioncondition), ki je boolovavrednost
izraz.
Pogoj prehoda je lahko podan enem od
jezikov IEC61131-3: LAD, FBD, IL ali ST
Izraz je lahko podan neposredno ob

prehodu, ali pa je logično povezan z

pogojem prek oznake prehoda

Ko je pogoj izpolnjen (vrednost izraza je ‘1’

oz. TRUE), se predhodni korak deaktivra,
naslednji korak pa se aktivira

Sekvenca

Preprosta kombinacija koraka in
prehoda se imenuje sekvenca
(sequence)

korakin prehodsi morata vedno

izmenično slediti. Ni dovoljeno

povezati med seboj dveh korakov
ali dveh prehodov.

Prehod ima lahko več predhodnih
ali sledečih korakov

Po deaktivacijikoraka je možno
aktivirati enega od sledečih
korakov (alternativna veja) ali več

korakov naenkrat (paralelna veja)

Alternativna veja

Ko je izpolnjen eden od
pogojev prehodov T1 do T3,
se korak S1 deaktivirain 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

Vzporedna oziroma

sočasna sekvenca

Sočasno aktiviranje vseh

povezanih korakov

Ko je pogoj prehoda T1
izpolnjen se deaktiviraS1,
atkivirajopa 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 (actionblock)

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 (Booleanaction)je aktivnost,
ki določi vrednosti boolovispremenljivki

Ukazna aktivnost (Instructionaction) izvede

zaporedje več inštrukcij, ki so zapisani v IL, FBD,

LAD, 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, ki označuje status aktivnosti.
Uporablja se predvsem v tekstovnih različicah,

kjer aktivnost ni zapisana neposredno za klicem

aktivnosti. Večina sistemov ne podpira

boolovegaindikatorja

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->