Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
KAUNO TECHNOLOGIJOS UNIVERSITETAS
INFORMATIKOS FAKULTETAS
VALDIKLI Ų PROGRAMAVIMAS STANDARTO IEC 61131-3 KALBOMIS
Referatas
Atliko: K ęstutis Valinčius
Kaunas 2011
Turinys
1 Įvadas ............................................................................................................................................... 3
2 Struktūriniai elementai ..................................................................................................................... 5
2.1 Konfiguracijos elementai ........................................................................................................ 5
2.2 Programos elementai ............................................................................................................... 6
2.3 Kintamieji ............................................................................................................................... 7
3 Programavimo kalbos ....................................................................................................................... 9
3.1 Kontaktų plano diagrama ........................................................................................................ 9
3.2 Funkcinių blokų diagrama .................................................................................................... 10
3.3 Nuoseklių funkcijų diagrama ................................................................................................ 11
3.4 Komandų sąrašo programavimo kalba .................................................................................. 14
3.5 Struktūrizuoto teksto programavimo kalba ........................................................................... 16
4 Išvados ............................................................................................................................................ 18
5 Literatųros sąrašas .......................................................................................................................... 19
1 Įvadas
PLC1 susideda iš pagrindinių priklausančių elementų rinkinio, papildomų prie valdiklio sistemos
prijungtų prietaisų, kurie skirti įrenginiams valdyti. Valdiklių paskirtis – atlikti uždavinius. Kadangi valdiklius
gamina skirtingos kompanijos, todėl skiriasi vykdomųjų programų greičiai, komunikacijos, išplėtimo galimybės.
Iš programavimo įrankių reikalaujama, kad jie užtikrintų kokybę ir mažą kainą kuriant paprastas ar sudėtingas
sistemas, kad keletas valdiklių būtų panaudojami vienu metu, kad būtų galima modifikuoti valdiklius jų veikimo
metu, kad sukurtas programas būtų galima pakartotinai naudoti, būtų naudojamas objektinis programavimas,
dokumentavimas, sukurtas programas galima testuoti ir modeliuoti. Valdiklio atmintyje atvaizduojamos įėjimo
signalų būsenos, tada remiantis šia informacija ir taikomąja programa (algoritmu) nustatomos išėjimo signalų
būsenos. Kitaip tariant, įėjimo signalo, apdorojimas ir valdymo signalų generavimas bei išėjimo signalo
siuntimas kitiems sistemos elementams.
Norint standartizuoti PLC buvo aprašytas IEC2 standartas „IEC 61131”. Šis standartas aprašytas
aštuoniais punktais (Lentelė Nr. 1).
Lentelė Nr. 1 IEC 61131 standarto punktai
Standartas Pavadinimas Aprašymas IEC61131-1 Bendroji standarto dalis Bendri apibrėžimai, tipinės funkcinės galimybės
kurios išskiria PLC iš kitų sistemų. Čia pateiktos standartinės valdiklių savybės.
IEC61131-2 Reikalavimai aparatūrinei įrangai Apibrėžia elektrinius, mechaninius bei funkcinius reikalavimus įrenginiams, matavimo metodikas, bei sąvokas (IP apsaugos klases, atsparumas vibracijai, atsparumas elektromagnetinei indukcijai, elektrinė izoliacija ir t.t.).
IEC61131-3 Programavimo kalbos Plačiai pasaulyje naudojamos PLC programavimo kalbos. Pagrindiniai programinės įrangos modeliai ir programavimo kalbos yra apibrėžiamos formaliai, apibrėžiama leksika, sintaksė, semantika, pateikiami pavyzdžiai.
IEC61131-4 Nurodymai vartotojams Skirta padėti PLC vartotojui visose projekto automatizavimo fazėse. Praktiški patarimai apima visus automatizavimo procesus nuo sistemos analizės iki pat aptarnavimo.
IEC61131-5 Komunikacijų specifikacija Apibrėžia komunikacijas tarp skirtingų gamintojų PLC ir kitų įrenginių.
IEC61131-6 Funkcinis saugumas
IEC61131-7 „Fuzzy“ valdiklių programavimas Pateikiamas juodraštinis variantas išplėtimų programavimo kalboms, kurie leistų įtraukti „Fuzzy“ logiką
IEC61131-8 Programinių kalbų įgyvendinimai ir taikomųjų programų dokumentacija
1 PLC - Programuojami loginiai valdikliai 2 IEC - Tarptautinės Elektrotechnikos Komisijos
IEC61131 standartas apibrėžia programavimo principus, bet ne konkrečias taisykles. Standartas apima
valdiklių programavimo sąvokas ir metodus. Standartas turi šabloną, pagal kurį galima įvertinti kaip kiekviena
programuojama sistema laikosi standarto.
IEC61131 standarto tikslai yra sumažinti valdymo sistemų projektavimo kaštus, standartizuoti
programinę įrangą ir komunikacijas tarp skirtingų gamintojų valdiklių, valdiklių programuotojų apmokymas.
IEC61131 standartas iš gamintojo reikalauja standartizuotos gaminio dokumentacijos pateikimo
vartotojui. Vartotojas gamintojui gali pateikti tam tikros konkrečios situacijos papildomas specifikacijas ir
reikalavimus.
2 Strukt ūriniai elementai
2.1 Konfiguracijos elementai
Pagal IEC61131 standartą vienas iš pagrindinių struktūrinių elementų yra konfigūracijos elementai. Jie
skirti techninei įrangai aprašyti. Konfigūracijos elementai yra tokie (Pav. 1):
• Konfigūracija. Konfigūracija pilnai aprašo valdymo sistemos techninės įrangos struktūrą, įskaitant
ir į ją įeinančias posistemes
• Resursai. Konfigūraciją nebūtinai sudaro vienas prietaisas. Konkrečioje valdiklio posistemėje
kiekvienas centrinis procesorius (CPU3) atitinka vieną resursą
• Užduotys. Užduotys valdo resurse instaliuojamų programos elementų vykdymo režimą.
Konfigūracija
Resursas Resursas Resursas
Užduotis Užduotis Užduotis
Pav. 1 Konfigūracija su keletu resursų, kurie gali tur ėti nepriklausomas užduotis
Jei sistemą sudaro tik vienas procesorius, kaip neretai būna, tuomet konfigūracija ir resursas yra labai
panašūs. Kiekviena užduotis turi savo ID4, vykdymo prioritetą, ir nustatymą kaip programa bus vykdoma:
periodiškai arba priklausomai nuo loginio įėjimo signalo, programos vidinio signalo arba valdiklio sisteminio
signalo. Užduotis paleidžiama, kai įvykio signalas keičia būseną iš žemo į aukštą lygį. Cikliškai vykdoma
programa gali kviesti ir startuoti kitas programas.
Užduotys yra vykdomos periodiškai arba įvykus tam tikram įvykiui. Įvykių tipai gali būti tokie:
• Cikliškai vykdomos užduotys;
• Laiku kontroliuojamos užduotys (INTERVAL tasks);
• Įvykiu kontroliuojamos užduotys (EVENT tasks);
• Pertraukimo užduotys;
Užduoties aprašas susideda iš vardo, prioriteto ir sąlygos, po kurios užduotis bus vykdoma. Sąlyga gali
būti laiko intervalas, ar tam tikras įvykis (signalas arba globalaus kintamojo FALSE/TRUE reikšmės
pasikeitimas).
Keletas taisyklių, kurias galima pritaikyti užduoties vykdymui yra šios:
• Užduotys su išpildyta sąlyga bus vykdoma tuomet, kai laiko intervalas pasiekė nurodytą reikšmę,
arba pasirinktas kintamasis pakeitė reikšmę iš FALSE į TRUE
• Jei keletas užduočių tenkina sąlygas, tuomet užduotis su didžiausiu prioritetu bus vykdoma
• Neįmanoma priskirti tokį patį prioritetą keletui užduočių 3 CPU – Centrinis Procesorius 4 ID – Identifikacijos numeris
• Jei didesnio prioriteto užduotis išpildo sąlyga tuo metu, kai žemesnio prioriteto užduotis yra
vykdoma, tuomet žemesnio prioriteto užduoties vykdymas bus pertraukas ir pratęstas tik kai
pasibaigs aukštesnio prioriteto užduoties vykdymas
2.2 Programos elementai
Pagal IEC 61131 standartą programos struktūrizavimui yra išskiriami tokie programos organizacinius
elementai (POU5) (Pav. 2):
• Programos (PRG)
• Funkcinius blokai (FB)
• Funkcijos (FUN)
Pav. 2 Programos struktūros organizaciniai elementai
Programos organizaciniai elementai yra sudaryti iš deklaravimo ir komandų dalių, atitinkamai pirmoje
dalyje yra deklaruojami kintamieji, jų tipai, funkciniai blokai, o antroje rašoma programa viena iš pasirinktų
standarto kalbų.
Pav. 3 parodyti konfigūracijos ir programos elementų tarpusavio ryšiai. Programa deklaruojama resurse
ir registruojama vienoje iš resurso užduočių. Programos paprastai skiriamos aiškią fizinę paskirtį turinčio
uždavinio vykdymui. Programoje gali būti deklaruojami GLOBAL bei ACCESS tipo kintamieji. Programos gali
kviesti funkcinius blokus ir funkcijas. Funkcinį bloką kviečia programos arba kiti funkciniai blokai. FB gali
turėti vieną arba daugiau išėjimo kintamųjų. Valdiklio ciklo pabaigoje FB vidinių parametrų reikšmės įrašomos į
FB kopijai deklaruotą atminties vietą. Funkciniai blokai skirti vykdyti dažnai pasikartojančius elementarius
valdymo uždavinius, pavyzdžiui, skaitiklius, taimerius, trigerius ir t.t. Funkcijos realizuoja nereikalaujančius
vidinės atminties valdymo uždavinius ir jas gali kviesti programos, funkciniai blokai ir kitos funkcijos. Jos gali
turėti vieną arba daugiau įėjimo kintamųjų, tačiau tik vieną išėjimą. Pavyzdžiui, funkcijos taikomos
matematiniams skaičiavimams, duomenų tipų konvertavimams.
Moduliai paprastai talpinami į IEC biblioteką. Biblioteka gali būti gamintojo specifinė ir taip pat
vartotojų susikurta.
Leidžiama naudoti lokalius ir globalius kintamuosius. Globalūs kintamieji skirti bendram naudojimui
konfigūracijos arba resursų rėmuose. Lokalūs kintamieji naudojami tik vieno programos elemento ribose.
5 POU - Programos organizaciniai elementai
Lokalių kintamųjų naudojimas gali padidinti programos efektyvumą, leidžiant uždaryti pasikartojančių
programos dalių tarpinių skaičiavimų duomenis.
Pav. 3 Valdiklio konfigūracijos ir programos struktūrini ų elementų tarpusavio ryšiai
2.3 Kintamieji
IEC 61131-3 standartas apibrėžia penkias skirtingas kintamųjų klases:
• Globalūs kintamieji
• Lokalūs kintamieji
• Įėjimo kintamieji
• Išėjimo kintamieji
• Įėjimo ir išėjimo kintamieji
Lokalūs kintamieji neturi sąsajos su išore, jie gali būti pasiekiami tik vidinėje programos dalyje.
Globalūs kintamieji gali būti pasiekiami iš visų organizacinių elementų.
Įėjimo, išėjimo ir įėjimo/išėjimo kintamieji yra susiję su programa, funkcija ar funkciniu bloku. Jie gali
būti keičiami skaitant ar rašant pasirinktame organizaciniame elemente.
Kintamieji yra aprašomi tarp raktažodžių VAR ir END_VAR programos tekste. Kiekvienas kintamasis
yra inicializuojamas po perkrovimo. Pagal nutylėjimą dažniausiai turi reikšmę 0 arba FALSE. Norint nustatyti
kitą reikšmę, tai galima padaryti naudojant priskyrimo ženklą ”:=”.
Kintamojo atributai Aprašant kintamąjį, tam tikri atributai gali būti vartojami papildomai:
• RETAIN: Šie kintamieji išliekia nepakitę net po elektros šaltinio nutrūkimo. Vėliau programa
tęsiama su paskutinėmis kintamųjų buvusiomis reikšmėmis.
• CONSTANT: Kintamojo reikšmės negali būti keičiamos
• AT: Kintamieji turi fiksuotą atminties adresą
Žemiau pateikiamas išėjimo kintamojo pavyzdys su pradine reikšme:
VAR_OUTPUT
par_out1 : INT := 10; (* Iš ėjimo parametras 1 su pradine reikšme 10 *)
END_VAR
Fiksuoto adreso kintamieji Tokie kintamieji priskiriami tam tikrai fizinės atminties vietai, panaudojant AT raktažodį. Adresas yra
specialių simbolių seka. Ji prasideda procento ženklu ”%”, paskiau nusakoma sritis, duomenų tipas ir pasibaigia
skaičių seka, nusakančia atminties vietą.
Srities raidės: I (Input), Q(Output), M(Marker, internal memory range)
Dydžio raidės: X (Single bit), B(Byte, 8 bits), W(Word, 16 bits), D(Double word, 32 bits)
Pavyzdžiai:
%QX1.0.2 Output bit 2
%IW1.0.1 Input bit 1
%MB7 Marker byte 7
%MW1 Marker word 1
%MD3 Marker double word 3
%MX1.2 Third marker bit in marker word 1
3 Programavimo kalbos
Taikomųjų programų sudarymui naudojama tokie kalbų tipai [1][8][9][10][11]:
• Komandų sąrašas (Instruction List – IL)
• Struktūrizuotas tekstas (Structured Text – ST)
• Funkcinių blokų diagrama (Function Block Diagram – FBD)
• Kontaktų planas (Ladder Diagram - LD)
• Nuosekliųjų diagramų (Sequential Function Chart - SFC)
Neretai kalbos tipo naudojimas pasirenkamas pagal tam tikrą konkrečią sritį, tačiau pilnas tipų rinkinys
pateikia pilną programinės įrangos technologijų spektrą. Kalbos tarpusavyje yra susijusios. Jos leidžia aprašyti
sudėtingus programos elementus, kurios gali būti naudojamos su kitomis programavimo kalbomis. Šiuo metu yra
sukurta nemažai programavimo paketų, kurie yra skirti loginiams valdikliams programuoti.
Taikomosios programos privalo būti dokumentuojamos paketuose, taip pat gali būti aprašoma
aparatūrinės įrangos konfigūracija konkrečiu atveju. Dokumentacija turi apimti:
• Atmintinę signalui ir duomenims
• Nuorodų lentelę visiems apdorojamiems duomenims
• Komentarus
• Pakeitimų aprašą
• Palaikymo ir naudojimo dokumentą
Komandų sąrašo ir struktūrizuoto teksto programavimo kalba valdymo uždavinius aprašo teksto
formatu. Kontaktų plano, funkcinių blokų diagramų ir nuosekliųjų funkcinių diagramų kalbos - grafiškai.
Programos teksto struktūrizavimui vartojami tokie raktiniai žodžiai, kaip FUNCTION ... END_FUNCTION,
FUNCTION_BLOCK ... END_FUNCTION_BLOCK, PROGRAM ... END_PROGRAM ir kt.
3.1 Kontakt ų plano diagrama
Kontaktų plano diagrama - tai grafinė kalba, kuri remiasi relių kontaktų planu [2]. Diagramos tikslas –
sutapatinti elektrinės schemos ir programos struktūras. Programą sudaro atskiros tinklo grandinės, kurių
pagrindinė savybė yra ta, kad už jos ribų nebesaugomas akumuliatoriaus turinys. Loginė srovės tekėjimo kryptis
iš kairės į dešinę, tačiau gali būti pasirenkama ir kita kryptis, t.y. iš viršaus į apačią. Loginės išraiškos šioje
kalboje atvaizduojamos relių kontaktų principu. Šios kalbos ribotumas dabar yra praplėstas tokiais elementais
kaip: taimeris, skaitliukas ir t.t. Kontaktų diagramą sudaro šie elementai:
• Kairioji srovės šina, teikianti tinklo grandinei loginį signalą
• Dešinioji srovės šina jungianti tinklo grandines tarpusavyje
• Horizontalios linijos, naudojamos kontaktų diagramos elementams sujungti
• Vertikalios linijos, naudojamos sujungti dvi arba kelias horizontalias linijas
• Kontaktai, naudojami būsenos perdavimui iš kairės pusės į dešinę
• Relės, naudojamos tarpinei būsenai atsiminti ir perduoti signalą iš kairės pusės į dešinę
• Funkcijos ir funkciniai blokai, kurie gali būti aprašomi bet kuria IEC kalba ir jų paskirtis yra
naudojantis kairės pusės įėjimo parametrais, formuoti dešinės pusės išėjimo kintamųjų reikšmes
arba būsenas. Kontaktų diagramoje funkcija vaizduojama bloku, kuriame įrašytas jos vardas.
Diagramos pavyzdys pateiktas Pav. 4.
Pav. 4 Kontaktų plano programos pavyzdys
Uždaviniai kontaktų plano programavimo kalba yra programuojami panaudojant žemiau lentelėje
pateiktais grafiniais simboliais.
Lentelė Nr. 2 Grafiniai kontakt ų plano simboliai
Simbolis Reikšmė -] [- Normaliai atviras kontaktas
-]/[- Normaliai uždaras kontaktas
-]P[- Reakcija į teigiamą frontą
-]N[- Reakcija į neigiamą frontą
-( )- Relė
-( / )- Invertuota relė
-( S )- Relė įjungiama komanda S ir tokioje padėtyje
išsaugoma iki bus komanda R išjungiama
-( R )- Su komanda S įjungtos relės išjungimas
-( M )- Buferizuota relė
-(SM)- Buferizuotos relės įjungimas su komanda S
-(RM)- Su komanda S įjungtos buferizuotos relės
išjungimas
3.2 Funkcinių blokų diagrama
Funkcinių blokų diagrama – tai grafinė kalba, kažkiek panaši į kontaktų plano programavimo kalbą [3].
Vietoj relių čia naudojami funkciniai blokai. Diagramos tikslas – vaizduoti valdymo algoritmą loginių funkcijų
sekomis. Loginės funkcijos diagramoje vykdomos iš kairės į dešinę. Funkcinių blokų diagramą sudaro šie
elementai:
• Horizontalios linijos, jungiančios du elementus ir perduodančios kairėje pusėje esančio elemento
išėjimo būseną į dešinės pusės elemento įėjimą
• Vertikalios linijos, jungiančios horizontalias linijas
• Kintamieji, kuriais yra pradedamos ir baigiamos loginių signalų sekos
• Funkcijos ir funkciniai blokai
Funkcinių blokų diagramos pavyzdys pateiktas Pav. 5.
Kint1
Kint2
IR
Kint1
Kint2
IR
Kint1
Kint2
IR
ARBA
Išėjimas1
Pav. 5 Funkcinių blokų programos pavyzdys
Ši diagrama yra sudaryta iš tokių elementų, kaip stačiakampiai blokai ir valdymo srautų komandos,
sujungtos horizontaliomis ir vertikaliomis linijomis. Laisvi blokai gali turėti prie jų prijungtus kintamuosius arba
konstantas. Įėjimai, išėjimai gali būti ir neprijungti. Kodo dalis yra suskirstoma į grandines, kurias sudaro:
• Grandinės pavadinimas
• Grandinės komentaras
• Grandinės grafikas
3.3 Nuoseklių funkcij ų diagrama
Valdymo uždaviniai gali būti atvaizduojami grafiniu arba tekstiniu formatu [6]. Grafiniam vaizdavimui
standartas IEC61131 numato tokius elementus:
• Žingsniai. Šios programos dalies vykdymo metu atliekami jai skirti veiksmai (akcijos). Jei nėra
kartu vykdomų lygiagrečių struktūros šakų, aktyvus būna tik vienas programos žingsnis.
Diagramoje žingsnis vaizduojamas stačiakampiu su jame įrašytu žingsnio vardu (Pav. 6).
Tarpusavyje žingsniai jungiami per pereigas vertikaliomis linijomis. Pirmasis žingsnis vadinamas
inicializavimo žingsniu ir vaizduojamas dviguba linija.
Pav. 6 Nuoseklių Funkcijų Diagramos programavimo kalbos žingsniai
• Pereigos. Sąlygos pereiti iš vieno žingsnio į kitą vadinamos pereigomis. Grafiškai tai vaizduojama
horizontaliu brūkšniu. Perėjimas iš vieno žingsnio į kitą galimas tik esant išpildytai pereigos sąlygai
(Pav. 7).
Pav. 7 Nuoseklių Funkcijų Diagramos programavimo kalbos pereiga
• Akcijos. Žingsnių paskirtis valdomajame procese yra atlikti jam skirtus veiksmus (akcijas). Jei
žingsnis neturi nei vienos akcijos, tada programa sustoja šiame žingsnyje ir laukia signalo iš
proceso. Akcija gali būti išreikšta atskiru loginiu kintamuoju ar programos fragmentu, parašytu
viena iš valdiklių programavimo kalbų ar kita nuosekliųjų funkcijų diagramos struktūra.
• Sujungimai tarp žingsnių ir pereigų. Būsenas galima skirstyti į žingsnius ir nustatinėti perėjimų
sąlygas. Nuoseklių sekų diagramų braižymo konstrukcijos aprašytos žemiau.
Sudarius struktūrą, galima būsenas skirstyti į žingsnius ir nustatinėti perėjimų sąlygas. Nuoseklių sekų
diagramų konstravimo būdai yra tokie:
1. Alternatyvus šakojimasis Perėjimas iš vieno žingsnio į kurį nors iš po jo sekančių žingsnių galimas tada, kai įvykdoma prieš
žingsnius esanti perėjimo sąlyga (Pav. 8). Programuojant pereigų sąlygas reikia sekti, kad tuo pačiu metu būtų
įvykdoma tik viena sąlyga.
Pav. 8 Nuoseklių sekų diagramų programavimo kalbos alternatyvaus šakojimo pavyzdys
2. Alternatyvus sujungimas Perėjimas galimas jei vienas iš virš pereigų esančių žingsnių aktyvus ir išpildoma jo perėjimo sąlyga
(Pav. 9).
Pav. 9 Nuoseklių sekų diagramų programavimo kalbos alternatyvaus sujungimo pavyzdys
3. Sinchroniškas šakojimas ir sujungimas Kai pirmas žingsnis aktyvus ir pereigos sąlygos įvykdytos, vykdomas perėjimas į sekančius žingsnius
(Pav. 10). Už pereigos esantys žingsniai aktyvuojami tuo pačiu metu. Šis šakojimosi būdas žymimas dviguba
horizontalia linija. Lygiagrečiose šakose toliau vyksta tarpusavyje nepriklausomi procesai. Perėjimas į kitą
žingsnį įvyksta tada, kai pereigos sąlyga įvykdyta ir tarpiniai žingsniai yra aktyvūs.
Pav. 10 Nuoseklių sekų diagramų programavimo kalbos sinchroniško šakojimo ir sujungimo pavyzdys
4. Šakojimas be tarpinių žingsnių Iš aktyvaus žingsnio per pereigas galimi du šakojimosi keliai (Pav. 11). Tačiau reikia įsitikinti, kad
abiejų pereigų sąlygos nebus įvykdomos kartu. Kai žingsnis aktyvus ir pereigos sąlyga įvykdyta, pereinama į
sekantį žingsnį. Tačiau jei esant aktyviam pradiniam žingsniui įvykdoma pereigos įvykdoma kita sąlyga, tada
perėjimas įvyksta be tarpinių žingsnių.
Pav. 11 Nuoseklių sekų diagramų programavimo kalbos sinchroniško šakojimo be tarpinių žingsnių pavyzdys
Pereigos Po pereigos esantis žingsnis aktyvuojamas, jei pereigos sąlyga yra TRUE. Gali būti tokios pereigų
sąlygos:
• Boolean kintamasis
• Boolean adresas
• Boolean konstanta (TRUE)
• Instrukcijų seka su Boolean rezultatu ST sintaksėje ((i<=100) AND b)
• Instrukcijų seka suprogramuota bet kurioje kalboje
Nuosekliųjų sekų diagramos pavyzdys pateiktas Pav. 12.
Pav. 12. Nuosekliųjų sekų diagramos pavyzdys
3.4 Komandų sąrašo programavimo kalba
Komandų sąrašas yra žemo lygio tekstinė kalba, kurią sudaro paprastos komandos [5]. Tai panašu į
mikroprocesorių technikoje naudojamą asemblerio kalbą (Lentelė Nr. 3) ir todėl ji naudojama aprašyti labai
greitiems procesams. Galima naudoti vartotojo sukurtas funkcijas arba funkcinius blokus.
Lentelė Nr. 3 Komandų sąrašo kalbos pagrindinės komandos
Operatorius Modifikatorius Kintamojo tipas Paaiškinimas LD N (1) Skaitymas į akumuliatorių
ST N (1) Operacijos rezultato rašymas operando
adresu
S (2) BOOL Operandui nustato reikšmę TRUE
R (2) BOOL Operandui nustato reikšmę FALSE
AND, & N,( BOOL Loginis IR
OR N,( BOOL Loginis ARBA
XOR N,( BOOL Loginis išskirtinis ARBA
ADD ( (1) Sudėtis
SUB ( (1) Atimtis
MUL ( (1) Daugyba
DIV ( (1) Dalyba
GT ( (1) Daugiau
GE ( (1) Daugiau arba lygu
EQ ( (1) Lygu
LE ( (1) Mažiau arba lygu
LT ( (1) Mažiau
JMP C,N LABEL Peršokimas į žymę
CAL C,N NAME (3) Funkcinio bloko kvietimas
RET C,N Grįžimas iš iškviestos funkcijos arba
funkcinio bloko
) (1) Skliaustų išraiškos pabaiga
(1) - taikomas generiniam duomenų tipui arba konkrečiam duomenų tipui.
(2) - Komanda vykdoma, jei prieš tai vykdytos komandos rezultatas – akumuliatoriaus turinys yra
TRUE. Jei operatorius papildytas simboliu N, tada komanda vykdoma kai rezultatas yra FALSE.
(3) - Funkcinio bloko vardas papildomas parametrų sąrašu.
Kiekviena programos komanda vykdoma kartu su akumuliatoriaus reikšme, vykdymo rezultatas vėl
talpinamas į akumuliatorių. Šalia programos pradžioje deklaruotų operandų, operatoriams gali būti tiesiog
nurodomi įėjimų, išėjimų ir vidinės atminties adresai.
Keletas šios kalbos bruožų:
• Kiekviena komanda prasideda iš naujos eilutės, turi operatorių IR, priklausomai nuo operacijos,
vieną ar keletą operandų atskirtų kableliais
• Identifikatoriaus žymė po kurios eina kabliataškis (;), gali būti komandos pradžioje
• Komentarai gali būti papildomai prirašomi
• Galima įterpti tuščias eilutes tarp instrukcijų
Pavyzdys:
LD 17
ST lint (* Komentaras*)
GE 5
JMPC next
LD idword
EQ istruct.sdword
STN test
next:
3.5 Strukt ūrizuoto teksto programavimo kalba
Struktūrizuotas tekstas yra tekstinė, aukšto lygio, plataus profilio kalba [4]. Šios kalbos sintaksė panaši
kaip ir Pascal programų kalbos sintaksę. Šios kalbos komandos (Lentelė Nr. 4) aprašas susideda iš operatorių ir
operandų. Operandai gali būti tokie:
• Konstantos ir kintamieji
• Funkcijų arba funkcinių blokų kvietimai
• Kitos išraiškos
Ši programavimo kalba yra lengvai skaitoma ir suprantama, siūlo ne tiktai galingą ciklų programavimo
būdą, bet taip pat sąlyginių komandų programavimo galimybę ir matematines funkcijas.
Struktūrizuoto teksto programavimo kalbos programos pavyzdys:
IF value < 7 THEN
WHILE value < 8 DO
value := value + 1;
END_WHILE;
END_IF;
Lentelė Nr. 4. Pagrindinės struktūrizuoto teksto komandos
Komandos tipas Pavyzdys Priskyrimas A:=B;
CV:=CV + 1;
C:=SIN(X);
FB kvietimas ir jo išėjimo
vartojimas
CMD_TMR(IN:=%IX5, PT:=300);
A:=CMD_TMR.Q
Grižimas iš FB RETURN
IF D:=B*B;
IF D<0.0 THEN
C:=A;
ELSIF D=0.0 THEN
C:=B;
ELSE
C:=D;
END_IF;
CASE CASE INT1 OF
1: BOOL1:=TRUE;
2: BOOL2:=TRUE;
ELSE
BOOL1:=FALSE;
BOOL2:=FALSE;
END_CASE;
FOR J:=101;
FOR I:=1 TO 100 BY 2 DO
IF ARR[I]=70 THEN
J:=I;
EXIT;
END_IF;
END_FOR;
WHILE J:=1;
WHILE J<=100 AND ARR[J]<>70 DO
J:=J+2;
END_WHILE;
REPEAT J:=-1;
REPEAT
J:=J+2;
UNTIL J= 101 OR ARR[J]=70
END_REPEAT;
EXIT Operatorių FOR, WHILE arba REPEAT vidinio ciklo pabaiga ; EXIT;
Tuščia komanda ;
4 Išvados
IEC61131 standartas leidžia standartizuoti programinę įrangą ir komunikacijas tarp skirtingų gamintojų
valdiklių, kad vartojams būtų lengviau ir patogiau įdiegti. Vartotojai gali perpanaudoti komponentus tarp
skirtingų valdiklių.
Standartas nurodo taikomosios programos sintaksę, taip sutaupomi diegiamos sistemos kaštai.
Vartotojas nepriklausomai gali pasirinkti tiekėjus, nereikia papildomai apmokinti darbuotojų.
Lengvai galima palikyti ir tobulinti sistemas.
Standartas sudaro plačią erdvę valdiklių technikos pažangai. Tačiau standartas nenusako programų
saugojimo formato, kas leistų greitai ir efektyviai perpanaudoti programinės įrangos komponentus.
5 Literat ųros sąrašas
[1] IEC 61131-3. Prieiga per internetą - http://en.wikipedia.org/wiki/IEC_61131-3 (žiūrėta 2011-03-18).
[2] Ladder Logic. Prieiga per internetą - http://en.wikipedia.org/wiki/Ladder_logic (žiūrėta 2011-03-18).
[3] Function block diagram. Prieiga per internetą - http://en.wikipedia.org/wiki/Function_block_diagram (žiūrėta
2011-03-18).
[4] Structured text. Prieiga per internetą - http://en.wikipedia.org/wiki/Structured_text (žiūrėta 2011-03-18).
[5] Structured list. Prieiga per internetą - http://en.wikipedia.org/wiki/Instruction_list (žiūrėta 2011-03-18).
[6] Sequential function chart. Prieiga per internetą - http://en.wikipedia.org/wiki/Sequential_function_chart (žiūrėta
2011-03-18).
[7] N. Ezerskis. Programuojamieji valdikliai: konfigūravimas, komunikacijos ir programavimas. 1998m.
[8] R. Simutis, D. Ežerskis. Valdymo uždavinių programavimas taikant projektavimo šablonų rinkinį. 2005.
[9] E. Tisserant, L Bessard, M Sousa. An Open Source IEC 61131-3 Integrated Development Environment.
[10] Overview of the IEC 61131 Standard. XSeries Products IEC 61131 General. Prieiga per internetą -
http://library.abb.com/GLOBAL/SCOT/scot267.nsf/VerityDisplay/F6DBB4B475EA9976852572F00067766C/$Fil
e/2101127.pdf (žiūrėta 2011-03-18).
[11] L. Manual. Introduction to IEC 61131-3 programming. Prieiga per internetą: http://src.lenze.com/lenze-
bibliothek/en/K1_Software/K13_Drive_PLC_Developer_Studio/SW_DDS_IEC61131-3_Introduction_v2-
0_EN.pdf (žiūrėta 2011-03-18).