Mehhatroonikaseadmed
Euroopa struktuurfondide logo

Ülekande- ja programmi juhtimisfunktsioonid

Ülekandefunktsioonid

Ülekandefunktsioonide kasutamine (joonis 5.1) võimaldab laadida ja siirata andmeid (väärtusi) CPU akumulaatorist (ACCU) operandi või muutujasse. Neid saab rakendada ka andmete vahetamiseks akumulaatorite vahel. CPU akumulaator on spetsiaalne register, mida vajatakse mingite funktsioonide teostamisel kasutatavate digitaalsete andmete puhverdamiseks. Siemens PLC protsessoris on kaks akumulaatorit pikkusega 32 bitti. Neid vajatakse aritmeetika- ja digitaaltehete teostamisel, kus kahe sisendoperandi väärtuste alusel leitakse tehte käigus üks uus tulemus. Esimese operandi väärtus laetakse ACCU 1-le. Teise operandi väärtuse laadimise algul laetakse ACCU 1-l olev esimese operandi väärtus edasi ACCU 2-le ja siis laetakse uue operandi väärtus ACCU 1-le. Selle käigus kirjutatakse ACCU 2 varasem sisu üle. Seejärel teostatakse soovitud tehe ja saadud tulemus laetakse ACCU 1-le, kust see siiratakse väljundoperandi. Ainult ACCU 1 olevaid väärtusi saab üle kanda operandidele [6].

Joonis 5.1.

Standardis IEC 61131 on määratud IL keeles tähistavad LD- ja ST-käsud laadimise ja siirdamise funktsioone. STEP 7 puhul on selleks L- ja T-käsud STL keeles. FBD ja LAD keeltes kasutatakse MOVE funktsiooni andmete vahetamiseks operandide vahel (siirdamis- ja laadimiskäsud on kombineeritud üheks). STEP 7 ei võimalda kasutada ülekandefunktsioone bitt tüüpi operandide juures. Tabelis 5.1 on toodud STEP 7 laadimis- ja siirdamiskäskude tähised STL keeles koos vastavate operandidega. “n” tähistab operandi baidi aadressi mälus ja “x” DB numbrit. Tabelis 5.1 esitatud nõuded laadimis- ja siirdamisfunktsioonide kohta kehtivad ka MOVE funktsiooni puhul.

Joonis 5.2.

Joonisel 5.2 on esitatud FBD ja STL keeles MOVE ülekandefunktsioon. Näites kantakse operandi IW 2 väärtus edasi operandi QB 6-le juhul, kui sisendoperandi EN I 0.0 signaal on 1.

Laadimise / siirdamise koht Laadimiskäsk Siirdamiskäsk Kommentaar
PLC sisendid L IB n   Baidi laadimine sisendist
  T IB n Baidi siirdamine sisendisse
L IW n   Sõna laadimine sisendist
  T IW n Sõna siirdamine sisendisse
L IW n   Topeltsõna laadimine sisendisse
  T ID n Topeltsõna siirdamine sisendisse
    Siirdamiskäsuga uuendatakse sisendite väärtused ainult üheks PLC tsükliks. Järgmise PLC tsükli ajaks on sisendites saadaval juba uued reaalsed väärtused.
PLC väljundid L QB n T QB n Ühe baidi laadimine/siirdamine väljundisse
L QW n T QW n Sõna laadimine/siirdamine väljundisse
L QW n T QD n Topeltsõna laadimine/siirdamine väljundisse
Perifeeria L PIB n T PQB n Baidi laadimine/siirdamine baidipikkusega perifeeriasse
L PIW n T PQW n Laadimine/siirdamine sõnapikkusega perifeeriasse
L PIW n T PQD n Laadimine/siirdamine topeltsõnapikkusega perifeeriasse
Mälu L MB n T MB n Baidi laadimine/siirdamine baidipikkusega mälupiirkonda
L MW n T MW n Sõna laadimine/siirdamine mälupiirkonda
L MD n T MD n Topeltsõna Laadimine/siirdamine mälupiirkonda
Konstant L B#16#F5   Kuueteitkümnendarvulise (HEX) konstandi laadimine
L -50 Täisarvulise (INT) konstandi laadimine
L L#-400 Topelttäisarvulise (DINT) konstandi laadimine
L 2.5 Reaalarvulise konstandi laadimine
L S5T#2S500MS S5 ajaväärtusega konstandi laadimine
L C#250 S5 loenduri konstandi laadimine
Taimer L T n   Taimeri täisarv formaadis väärtuse laadimine
LC T n Taimeri kahend-kümnend (BCD) formaadis väärtuse  laadimine
Loendur L C n   HEX formaadis väärtuse laadimine loendurist
LC C n Kahend-kümnend (BCD) formaadis väärtuse laadimine loendurist koos andmeploki numbriga
Andmeplokiga seotud andmed L DB x. DBB n T DB x. DBB n Andmebaidi laadimine/siirdamine andmeblokist x baidi aadressilt n
L DB x. DBW n T DB x. DBW n Sõna laadimine/siirdamine andmeplokist x sõna aadressilt n
L DB x. DBD n T DB x. DBD n Topeltsõna laadimine/siirdamine andmeplokist x topeltsõna aadressil n
Laadimine/siirdamine ilma andmeploki numbrita
L DBB n T DBB n Andmebaidi laadimine/siirdamine
L DBW n T DBW n Sõna laadimine/siirdamine
L DBD n T DBD n Topeltsõna laadimine/siirdamine
Muutujad L #Speed T #Speed Muutuja nimetusega “Speed” laadimine/siirdamine
Joonis 5.3.

Kui siirdamine on lubatud (sisendis I 0.0 on signaal 1), siis laetakse operandi IW 2 (tähis paremale joondatud) sisu, mille pikkus on üks sõna, akumulaatorisse ACCU 1 (joonis 5.3). Suurima numbriga bait (Byte 3) jääb paremale poole. ACCU 1 kaks ülejäänud baiti täidetakse nullidega. Järgmisena siirdatakse ACCU 1 sisu operandi QB 6, mille pikkus on bait. Kõige paremal pool olev ACCU 1 baidi sisu (bait 3) kirjutatakse operandi QB 6. Seega, kui operandi IW 2 väärtuseks oli 0100 1001 1110 0110, siis operandi QB 6 väärtuseks on 1110 0110.

MOVE funktsiooni sisend EN võib olla ka tühi. See tähendab, et MOVE funktsiooni täidetakse PLCs iga tsükli ajal ning selleks ei pea ootama funktsiooni täitmise luba (sisendis EN peab olema signaal 1).

Programmi juhtimisfunktsioonid

PLC programmide teostamisel tuleb sageli loobuda programmi samm-sammulisest täitmisest ja täita ka alternatiivseid programmiosasid. See saavutatakse hüpete ja tsüklite kasutamisega mingis plokis või opereerides erinevate plokkidega. Funktsioonide ja plokkide tingimuslik käivitamine või programmi alternatiivne hargnemine viib samuti programmi mittelineaarsele täitmisele [6].

Tingimusteta ja tingimuslikud hüpped

Hüppefunktsioonidega saab programmi täitmist suunata ühest programmiosast teise. Standardi IEC 61131 kohaselt kirjeldatakse hüpe programmis käsuga JMP ja sellega seotud sihtkoha märgisega. Hüppeid programmis saab teostada tingimusteta või tingimuslikult.

Tabelites 5.2 ja 5.3 on esitatud STEP 7 hüppekäsud STL ja FBD keeles [6, 17]. LAD keeles asendatakse tabelis 5.3 kujutatud kastid kontaktide ja mähiste tingmärkidega. FBD ja LAD keeles kasutatud olekubittide väärtused leiab STEP 7 kaustast “Status bit”.

Käsk (ope-ratsioon) Operand Kommentaar
JU Sihtkoha märgis Tingimusteta hüpe.
JC Sihtkoha märgis Hüpe, kui loogilise operatsiooni tulemus (RLO) on 1.
JCN Sihtkoha märgis Hüpe, kui RLO = 0.
JCB Sihtkoha märgis Hüpe, kui RLO = 1. Kopeerida RLO biti sisu BR bitti.
JNB Sihtkoha märgis Hüpe, kui RLO = 1. Kopeerida RLO biti sisu BR bitti.
JBI Sihtkoha märgis Hüpe programmis ,kui süsteemibiti BR (binary result) väärtus on 1.
JNBI Sihtkoha märgis Hüpe, kui süsteemibitt BR on 0.
JO Sihtkoha märgis Hüpe, kui aritmeetika tehte tulemus ületab lubatut suurimat väärtust. Süsteemibitt OV (Overload) on 1.
JOS Sihtkoha märgis Hüpe kui vähemalt üks eelmistest aritmeetikatehete tulemustest ületab lubatut suurimat väärtust. Süsteemibitt OS (overload with save) on 1.
JZ Sihtkoha märgis Hüpe, kui aritmeetikatehte tulemus on võrdne 0.
JN Sihtkoha märgis Hüpe, kui aritmeetikatehte tulemus ei ole võrdne 0.
JP Sihtkoha märgis Hüpe, kui aritmeetikatehte tulemus on suurem kui 0.
JM Sihtkoha märgis Hüpe, kui aritmeetikatehte tulemus on väiksem kui 0.
JPZ Sihtkoha märgis Hüpe, kui aritmeetikatehte tulemus on suurem või võrdne kui 0.
JMZ Sihtkoha märgis Hüpe, kui aritmeetikatehte tulemus on väiksem või võrdne kui 0.
JUO Sihtkoha märgis Hüpe, kui esines lubamatu aritmeetikatehe. Süsteemibitid CC1 ja CC0 on 1.
LOOP Sihtkoha märgis Tsükliline hüpe. ACCU 1 sisu vähendatakse ja hüpatakse seni, kuni ACCU 1 sisu ei ole võrdne 0-ga.

Käsk (operatsioon) Operand Kommentaar
Tabeli joonis Sihtkoha märgis Tingimusteta hüpe.
Tabeli joonis Sihtkoha märgis Hüpe, kui RLO = 1.
Tabeli joonis Sihtkoha märgis Hüpe, kui RLO = 0.
Tabeli joonis Sihtkoha märgis Hüpe, kui aritmeetikatehte tulemus on suurem kui 0. Süsteemibittide juurest leiab ka < 0, == 0, >< 0, >= 0 ja <= 0.
Tabeli joonis Sihtkoha märgis Hüpe, kui aritmeetikatehte tulemus ületab lubatut suurimat väärtust (OV = 1).
Tabeli joonis Sihtkoha märgis Hüpe, kui vähemalt üks eelmistest aritmeeti- katehete tulemustest ületab lubatut suurimat väärtust (OS = 1).
Tabeli joonis Sihtkoha märgis Hüpe, kui reaalarvudega esines lubamatu aritmeetikatehte.
Tabeli joonis Sihtkoha märgis Hüpe, kui süsteemibitt BR on 1.
Tabeli joonis Hüppe sihtkoha plokk, sihtkoha märgis kirjutatakse selle sisse.
Joonis 5.4.

Programmi koostamisel tähistatakse hüppe siht sihtkoha märgisega. See märgis saab koosneda maksimaalselt neljast sümbolist. Esimene sümbol peab olema täht, teised võivad olla kas siis tähed, numbrid või allkriips (nt M_01). Selle märgise juures tuleb arvestada suurte ja väikeste tähtedega. Hüppe sihtkoha märgis kirjutatakse STL keeles hüppekäsu sümbolite järele ja FBD keeles hüppekäsu ploki kohale. STL keeles sisestatakse hüppe sihtkoha märgise programmirea algusse, millele järgneb koolon, nt M_01: A I 1.0. FBD keeles paigutatakse Networki algusse eriline plokk, millesse kirjutatakse hüppe sihtkoha märgis. Sihtkoha märgis saab programmis olla ainult ühes kohas, kuid sinna saab hüpata ühe ploki erinevatest kohtadest. Antud plokis saab hüpata nii edasi kui ka tagasi.

Joonisel 5.4 on kirjutatud FBD ja STL keeltes programm, kus on kasutatud hüppe käske. Operandile QB 6 omistatakse operandi IW 2 signaali väärtus kui operandi I 0.0 signaal on 1. Kui aga sisendi operandi I 0.0 signaal on 0, siis omistatakse operandile QB 6 väärtus 0.

Oluline on teada, et muutujate väärtused programmi osades jäävad sellisteks, nagu need määrati viimasel täitmisel enne ülehüppamist programmi vastavast osast. Ja seda isegi siis, kui muutuja väärtuse määramise tingimus on muutunud.

Ploki aktiveerimisfunktsioonid

Standardis IEC 61131 kasutatakse käsku CAL funktsiooniplokkide FB tingimusteta ja tingimuslikuks aktiveerimiseks. Selle käsuga ei saa programmis aktiveerida funktsioone FC.

Tabelites 5.4 ja 5.5 on esitatud plokkide aktiveerimisfunktsioonid STEP7 STL ja FBD keeltes. Käsuga CALL aktiveeritakse konkreetsed funktsioonid ja funktsiooniplokid ning seejuures nende siirdeparameetrite väärtused uuendatakse. Käsu CALL järel nimetatud funktsionaalse ploki siirdeparameetrid paiknevad allpool käsku (joonis 5.5 b). Käske UC ja CC kasutatakse plokkide aktiveerimiseks, millel puuduvad siirdeparameetrid.

Käsk (operatsioon) Operand Kommentaar
CALL FB, FC, SFB, SFC Ploki tingimusteta aktiveerimine
UC FB, FC Ploki tingimusteta aktiveerimine, millel ei ole siirdeparameetreid
CC FB, FC Ploki tingimuslik aktiveerimine, millel ei ole siirdeparameetreid
OPN DB, DI Andmeploki (DB) avamine

Käsk (operatsioon) Operand Kommentaar
Tabeli joonis FC, FSC Ploki tingimusteta aktiveerimine, millel ei ole siirdeparameetreid
Tabeli joonis DB DB avamine

FBD keeles on plokkide aktiveerimiskäsuks ristkülik (joonis 5.5 a). Ristküliku sees on esitatud ploki nimi ja tema siirdeparameetrid. Siemensi PLC programmis aktiveeritakse FB koos neile vastavate DB-ga. Erinevalt FCst ei ole vaja FB siirdeparameetreid siduda operandidega. FB avamisel säilitavad tema siirdeparameetrid oma esialgsed väärtused.

Käsku OPN täidetakse tingimusteta. Avatud DB on aktiivne seni, kuni avatakse järgmine/teine DB.

Joonis 5.5.

FBd (joonis 5.5 a), FCd ja paljud standardfunktsioonid (joonis 5.2 b) omavad FBD ja LAD keeltes aktiveerimissisendit EN (Enable) ja aktiveerimisväljundit ENO (Enable Output). Need mõjutavad plokkide ja funktsioonide täitmise käiku. Plokk aktiveeritakse või standardfunktsioon teostatakse, kui aktiveerimissisendi EN signaal on 1 või sellega ei ole midagi seotud. Aktiveerimisväljundi ENO signaal muutetakse nulliks vea ilmnemisel ploki või standardfunktsiooni täitmisel isegi siis, kui aktiveerimisisendi EN signaal on 1. Kui aktiveerimissisendi EN signaal on 0, siis plokki ei aktiveerita või standardfunktsiooni ei täideta ning aktiveerimisväljundi ENO signaal jääb 0 [6].

Oluline on teada, et PLC töötamise ajal (CPU on TÖÖ režiimis) peavad kõik programmi aktiveeritavad ja töötavad plokid olema laetud PLCsse, vastasel korral programmi täitmine katkestatakse ja CPU läheb STOPP režiimi.

Ploki töö lõpetamise funktsioonid

Standard IEC 61131 kasutab FCdes või FBdes oleva programmi täitmise tingimuseta või tingimuslikuks katkestamiseks käsku RET. Naastes programmi täitmisel plokki, millest vahepeal toimus mingi muu ploki aktiveerimine, jätkub programmi täitmine poolelijäänud kohalt.

Tabelis 5.6 on esitatud plokkide töö lõpetamise funktsioonid STL ja FBD keeltes. LAD keeles asendatakse tabelis 5.6 esitatud ristkülik relee mähisega. Käskudega BEU, BEC ja RET katkestatakse plokis oleva programmi täitmine enneaegselt. BEC ja RET käskude puhul katkestatakse programmi täitmine juhul, kui enne vastavaid käske on RLO biti signaal 1. Käsu BEU puhul saab ploki töö enneaegset lõpetamist vältida hüppefunktsiooni kasutamisega (käsust hüpatakse üle).

Käsk (operatsioon) STL Käsk (operatsioon) FBD Kommentaar
BE   Märgib ploki lõppu
BEC   Märgib ploki tingimusliku lõppu (RLO = 1)
BEU   Märgib ploki tingimuseta lõppu
  Tabeli joonis Märgib ploki tingimusliku lõppu (RLO = 1)

Joonisel 5.6 on esitatud PLC näidisprogramm STL keeles. Programm on kirjutatud erinevatesse plokkidesse. Selles programmis on kasutatud hüppe-, plokkide aktiveerimis- ja nende töö lõpetamisfunktsioone. Algul aktiveeritakse OB 1 kaudu plokk FB 1 ja selle sees olevat programmi täidetakse kogu aeg. Plokis FB 1 oleva programmi täitmine katkestatakse käsu BEC poolt enneaegselt kui mälubitt M 0.1 signaal on 1. Plokid FC 4 ja FB 4 aktiveeritakse, kui nende aktiveerimistingimused OB 1-s on täidetud. See tähendab, et FC 4-s oleva programmi täitmise alustamiseks (ploki aktiveerimiseks) peab sisendi I 0.0 signaal olema 1 ja FB 5 puhul peab sisendi I 0.1 signaal olema 0. Mõlemas plokis aktiveeritakse teisi plokke tingimusteta (FC 4-s on see FB 4 ja FB 5-s on see FC 1). FB 4-s oleva programmi täitmine katkestatakse käsu BEU poolt, kui hüppefunktsiooni JC M001 ei täideta. See tähendab, et hüppe JC tingimus ei ole täidetud (mälubiti M 12.1 signaal on 0) ja plokis FB 4 oleva programmi täitmine lõpeb enne ploki lõppu jõudmist (seda tähistab BE). Plokis FC 1 avatakse andmeplokk DB 10 mingite andmete salvestamiseks (ülekandefunktsioon).

Joonis 5.6.
Creative Commons Licence
"Mehhatroonikaseadmed" is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License .