CoDeSys
Siemens S7-1200 viide Siemens LOGO! viide Automatiseerimise viide Mehhatroonikaseadmete viide Pneumoautomaatika viide

Matemaatilised ja teisendusfunktsioonid

Matemaatiliste funktsioonide teostamisel kasutatakse enamasti numbrilisi muutujaid ja/või arve (konstante). Arvu tüübiks võib olla kas täis- või reaalarv. Täisarvulised muutujaid deklareeritakse andmetüübiga SINT, USINT, INT, UINT, DINT, UDINT, LINT või ULINT. Reaalarvud on arvu märgiga tähistatud komakohaga arvud. Reaalarvud deklareeritakse andmetüübiga REAL ja LREAL. Tabelites 2.4 on toodud numbrilised andmetüübid, nende määramispiirkond, bittide arv (kui suurt ala vajavad mälus) ja konstandi näide (nii nagu neid tuleb kirjutata PLC programmis). Täpsemalt võib lugeda andmetüüpide kohta peatükis PLC-s kasutatavad andmetüübid".

Aritmeetilised tehted

Funktsiooni nimi
(FBD ja LD)
Märk (ST) Märk
(matemaatikas)
Tehe
ADD + + Liitmine
SUB Lahutamine
MUL * × Korrutamine
DIV / ÷ Jagamine
MOD MOD Jäägiga jagamine
EXPT EXPT Eksponentsiaal

CoDeSys võimaldab teostada viite tavalist aritmeetikatehet (tabel 6.1). Peale tavalise jagamise funktsiooni pakutakse ka jäägiga jagamist (MOD), kus tulemuseks on jagamise jääk (murdosa). Aritmeetikatehete juures võib kasutada ka biti mustriga andmetüüpe (tabel 2.3).

Aritmeetikatehteid on soovitav teha muutujatega mille on sama andmetüüp. Jälgida tuleks ka seda, et aritmeetikatehte väljundmuutuja andmetüübiks on valitud sama andmetüüp, mis on suurima mälumahuga sisendmuutujal (nt DINT) või sellest veel suurema mälumahuga andmetüüp (nt LINT). See on vajalik selleks, et aritmeetikatehte tulemus mahuks muutujasse. Kui väljundmuutuja andmetüübi mälumaht on väiksem kui suurima mälumahuga sisendmuutuja andmetüübil, siis võib juhtuda, et õige väärtuse asemel esitatakse tulemuseks mingi suvaline väärtust.

Joonisel 6.1 on näide CoDeSys aritmeetikafunktsioonide kasutamisest FBD keeles. Antud näide vastab järgnevale tehtele: c=(10+5100/(26-2). Tehte vastus peaks olema 62,5. Kuid PLC võib anda selle tulemuseks mõnikord ka 62, kui programmis kasutatud muutujad deklareeriti täisarv (nt INT) andmetüübina. Kui soovitakse täpsemat väärtust, siis tuleks kasutada andmetüüpi REAL või LREAL. Peale selle on ADD funktsioonil sisestatud aktiveerimissisendi väärtuseks TRUE, mis tähendab et seda matemaatilist tehet täidetakse kogu aeg (vaata peatükki "Funktsioonide ja funktsioonplokkide aktiveerimissignaalid"). TRUE (loogiline 1) väärtus kandub edasi ka teistele aritmeetikafunktsioonidele.

Joonis 6.1.

Kuigi matemaatiliste arvutuste tegemine LD ja FBD keeles on võimalik, siis oluliselt lihtsam ja ülevaatlikum on kasutada selleks ST keelt. Ülevalpool joonisel 6.1 teostatud tehe on tehtud ka joonisel 6.2 ST keeles (tehe on ST keeles välja kirjutatud).

//Aritmeetikatehe konstantidega
c:=(10+5)*100/(26-2);

Järgnevalt on esitatud CoDeSys koostatud aritmeetiliste tehet näite failid, mis saab laadida alla ja testida arvutis.

FBD ja LD keeles on võimalik kasutada aritmeetikafunktsioone ilma funktsiooni aktiveerimissignaalita (joonis 6.3). See tähendab, et nende tehete täitmist ei saa juhtida ja neid täidetakse kogu aeg. Samuti võimaldab see kanda ühe aritmeetikafunktsiooni tulemust edasi teise aritmeetikafunktsiooni sisendisse ilma vahemuutujata.

FBD LD
Arimeetika FBD Aritmeetika näide LD-s

Järgnevalt on esitatud CoDeSys koostatud aritmeetiliste tehet näite failid, kus ei kasutata funktsiooni aktiveerimissignaale.

Aritmeetikafunktsioonidele ADD ja MUL on võimalik lisada juurde veel sisendeid, mida kasutatakse vastava operatsiooni tegemiseks. See tähendab et need funktsioonid ei ole piiratud kahe sisendiga.


MOD funktsioon on ainuke aritmeetikafunktsioon, kus ei saa kasutada andmetüüpe REAL ja LREAL. Joonisel 6.4 on kasutatud MOD funktsiooni FBD ja ST keeles. ST keeles puudub MOD funktsioonil spetsiaalne märk.

FBD ST
MOD FBD //MOD jagamine
TArv2 := SArv4 MOD 2;

EXPT funktsioon võimaldab leida eksponentsiaalväärtuse mingil teisel alusel IN1IN2 (joonis 6.5). Muutujaga SArv1 antakse ette väärtus, mida kasutatakse eksponendi alusena ja konstant 2 määrab astmeväärtuse ehk siis eksponendi: (SArv1)2. EXPT funktsiooni väljundmuutuja andmetüübina tohib kasutada ainult komakoha arvuga andmetüüpe (REAL ja LREAL).

FBD ST
EXPT FBD //Astendamine
TArv3 := EXPT(SArv1, 2);

Tabelis 6.2 on esitatud aritmeetika tehete juures kasutatavad muutujad, sisendid ja väljundid.

Muutuja Sisend / Väljund Andmetüüp Kommentaar
EN BOOL Funktsiooni aktiveerimissisend
a, b, SArv1, SArv2, SArv3 Bitimustriga ja arvuga elementaarsed andmetüübid Sisendid, mille väärtusi kasutatakse aritmeetikatehetes (+, −, ×, ÷)
c, TArv1 Väljund, millesse salvestatakse aritmeetikatehte tulemus (+, −, ×, ÷)
SArv4 BYTE, WORD, DWORD, LWORD, SINT, USINT, INT, UINT, DINT, UDINT, LINT, ULINT Sisend, mille väärtust kasutatakse MOD funktsioonis
TArv2 Väljund, millesse salvestatakse MOD funktsiooni tulemus
Valjund1 REAL, LREAL Väljund, millesse salvestatakse EXPT funktsiooni tulemus


Joonis 6.6.

ST keelt on võimalik kasutada ka FBD ja LD keeltes funktsiooni EXECUTE abil. See võimaldab koostada näiteks aritmeetika tehteid ST keeles ja rakendada saadud tulemus otse FBD või LD keele programmis (joonis 6.6). Kõik ST keelses programmis kasutatud muutujad tuleb deklareerida selles POU-s kus EXECUTE funktsiooni kasutatakse. ST keele programmis olevatele muutujatele ei ole ettenähtud eraldi deklaratsiooniala.

Järgnevalt on esitatud CoDeSys koostatud funktsiooni EXECUTE näite failid, mis saab laadida alla ja testida oma arvutis.

Ülekandefunktsioon

Ülekandefunktsiooni kasutamine võimaldab laadida ühes muutujas olevad andmed ja siirata need teise muutujasse. CoDeSys-s kasutatakse selleks MOVE funktsiooni, kus siirdamis- ja laadimiskäsud on kombineeritud üheks terveks süsteemiks (joonised 6.7 ja 6.8).

FBD ST
MOVE FBD //Ülekandefunktsioon
IF Sisend1 THEN
    TArv1 := SArv1;
END_IF;

Joonis 6.8.

Joonisel 6.7 on esitatud FBD ja ST keeles MOVE ülekandefunktsioon. Näites kantakse muutuja SArv1 väärtus edasi muutujale TArv1 juhul, kui aktiveerimissisendis EN muutuja Sisend1 signaal on loogiline 1 (vaata peatükki "Funktsioonide ja funktsioonplokkide aktiveerimissignaalid"). Kui asendada muutuja Sisend1 konstandiga TRUE (ST-s ilma IF tingimuseta), siis täidetakse MOVE funktsiooni iga PLC töötsükli ajal. Siis ei pea andma eraldi luba funktsiooni täitmiseks.

Järgnevalt on esitatud CoDeSys koostatud ülekandefunktsiooni näite failid, mis saab laadida alla ja testida arvutis.

Tabelis 6.3 on esitatud MOVE funktsiooni juures kasutatud muutujad, sisendid ja väljundid. Mõlemad muutujad peaksid olema sama tüüpi ning sisendmuutuja SArv1 mälumaht ei toiks ületada väljundmuutuja TArv2 mälumahtu (vastupidi võib olla). MOVE funktsiooni sisendina võib kasutada ka konstantväärtust.

Muutuja Sisend / Väljund Andmetüüp Kommentaar
Sisend1 EN BOOL Funktsioon aktiveerimissisend. Võib jätta tühijaks
SArv1 Elementaarsed ja komplekssed andmetüübid Sisendmuutuja, mille väärtus kantakse väljundisse
TArv1 Väljundmuutuja, millesse salvestatakse sisendis olev väärtus

Arvfunktsioonid

Arvfunktsioonide teostamiseks kasutatakse ainult üht sisendoperandi. Tulemuseks on arvfunktsiooni väärtus [1]. Standard IEC 61131 käsitleb järgmisi funktsioone kui arvfunktsioone:

  • absoluutväärtus (ABS)
  • ruut (SQRT)
  • naturaallogaritm (LN)
  • logaritm (LOG)
  • eksponentsiial (EXP)
  • siinus (SIN)
  • koosinus (COS)
  • tangens (TAN)
  • argussiinus (ASIN)
  • arguskoosinus (ARCOS)
  • argustangens (ARTAN)

IEC 61131 näeb ette, et arvfunktsiooni sisend- ja väljundmuutujad peavad olema sama tüüpi.

Tabelis 6.4 on esitatud arvfunktsioonide (allpool) juures kasutatavate sisend- ja väljundmuutujad.

Muutuja Sisend / Väljund Andmetüüp Kommentaar
Sisend1 EN BOOL Funktsioon aktiveerimissisend. Võib jätta tühijaks
SArv1 Bitimustriga ja arvuga elementaarsed andmetüübid Sisendmuutuja, mille väärtus kasutatakse arvfunktsiooni teostamiseks
TArv1 Väljundmuutuja, millesse salvestatakse arvfunktsiooni tulemus
TArv2 REAL, LREAL Väljundmuutuja, millesse salvestatakse arvfunktsiooni tulemus

Absoluutväärtuse leidmine (ABS)

ABS funktsiooni teostamise tulemusena muudetakse sisendmuutuja märgiga (üks kõik kas + või -) täis- või reaalarv positiivseks täis- või reaalarvuks (joonis 6.9). See on ainuke arvfunktsioon, mille juures saab kasutada kõiki arvuga elementaarandmetüüpe.

FBD ST
ABS FBD //ABS funktsioon
TArv1 := ABS (SArv1);

Ruutjuur (SQRT)

SQRT arvutab sisendmuutuja SArv1 väärtuse ruutjuure (joonis 6.10). Funktsiooni SQRT töötab, kui sisendmuutujas SArv1 olev väärtus on suurem või võrdne nulliga. Negatiivse väärtuse puhul annab veateate.

FBD ST
SQRT FBD //SQRT funktsioon
TArv2 := SQRT (SArv1);

SQRT funktsiooni väljundmuutuja TArv2 andmetüübina saab kasutada ainult andmetüüpe REAL ja LREAL. Ka ülejäänud allpool tutvustatavad arvfunktsioonid lubavad kasutada ainult väljundmuutujaid, mille andmetüübiks on kas REAL või LREAL.

Logaritm ja eksponentfunktsioonid (LN, LOG, EXP)

LN funktsiooni teostamisel arvutatakse naturaallogaritm (logaritm alusel e = 2,718282) sisendimuutujas oleva väärtuse baasil (joonis 6.11). LOG funktsioon võimaldab leida sisendmuutuja logaritmi 10 alusel.

FBD ST
LN FBD LOG FBD //LN ST keeles
TArv2 := LN (SArv1);

//LOG ST keeles
TArv2 := LOG (SArv1);

Logaritmi väärtuse saab mingil teisel alusel (Logba) arvutada, kasutades nt naturaallogaritme, järgmise valemi abil:

Valem

EXP funktsioon võimaldab arvutada sisendmuutujas oleva väärtuse alusel eksponentsiaalväärtuse (eSArv1) (joonis 6.12). EXP on vastandiks naturaallogaritmile LN.

FBD ST
EXP FBD //EXP ST keeles
TArv2 := EXP (SArv1);

Kõikide siin käsitletud funktsioonide väljundmuutujate andmetüübid peavad olema kas REAL või LREAL.

Trigonomeetrilised funktsioonid

Nimi Kirjeldus
SIN siinus
COS koosinus
TAN tangens
ASIN arkussiinus
ACOS arkuskoosinus
ATAN arkustangens

Tabelis 6.5 on esitatud CoDeSys kasutatavad trigonomeetrilised funktsioonid. Antud funktsioonide väljundmuutujate andmetüübiks peab olema REAL või LREAL (joonis 6.13). Arvfunktsioonide SIN, COS või TAN abil arvutatakse mingi nurga siinus, koosinus või tangens. Arvutamisel kasutatakse nurga mõõtühikuna radiaani. Järgmise valemiga saab teisendada nurga kaardi väärtuse radiaaniks:

Valem
FBD ST
SIN FBD ACOS FBD //SIN ST keeles
TArv2 := SIN (SArv1);

//ACOS ST keeles
TArv2 := ACOS (SArv1);

Funktsioonide ASIN (arkussiinuse), ASIN (arkuskoosinuse) või ATAN (arkustangensi) abil leiad sisendmuutujas SArv1 oleva väärtusele vastava nurga väärtuse radiaanides (joonis 6.13). Funktsioonide ASIN ja ASIN puhul peab sisendmuutuja SArv1 väärtus olema suurem või võrdne -1,0 ja väiksem või võrdne +1,0. Joonisel 6.14 on esitatud funktsioonide ASIN, ASIN ja ATAN väljundväärtuste piirkond radiaanides.

Valikufunktsioonid

Valikufunktsioonide juures võib kasutada kõiki andmetüüpe, mis on kirjeldatud peatükis "PLC-s kasutatavad andmetüübid". Valikufunktsioonide juures kasutatavad nii sisend- kui ka väljundmuutujad peavad olema defineeritud sama andmetüübiga, et vältida veateateid programmi testimisel. Allpool peatükkides ei ole kasutatud valikfunktsioonide juures funktsiooni aktiveerimissignaale. See tähendab et valikfunktsioone täidetakse iga kord kui PLC töötsükkel algab otsast peale.

Suurima ja väikseima tagastamine (MIN, MAX)

MIN funktsioon valib kahes sisendmuutujas (SArv1 ja SArv2) olevatest väärtusest väikseima väärtuse ning väljastab selle väljundmuutujale TArv1 (joonis 6.15). Kasutada saab kõiki andmetüüpe, mis on kirjeldatud pt "PLC-s kasutatavad andmetüübid". Sisendmuutujate ja väljundmuutuja andmetüübid peavad kattuma.

FBD ST
MIN FBD MAX FBD //MIN ST keeles
TArv1 := MIN (SArv1, SArv2);

//MAX ST keeles
TArv1 := MAX (SArv1, SArv2);

MAX funktsioon valib kahes sisendmuutujas (SArv1 ja SArv2) olevatest väärtustest suurima väärtuse ning väljastab selle väljundmuutujale TArv1 (joonis 6.15).

Tabelis 6.6 on esitatud MIN ja MAX funktsiooni juures kasutatud muutujad, sisendid ja väljundid.

Muutuja Andmetüüp Kommentaar
SArv1 Kõik andmetüübid Sisendmuutuja, mille väärtus võrreldakse teise sisendmuutuja väärtusega
SArv2 Sisendmuutuja, mille väärtus võrreldakse esimese sisendmuutuja väärtusega
TArv1 Väljundmuutuja, millesse salvestatakse MIN või MAX funktsiooni tulemus

Väärtuse piiramine (LIMIT)

LIMIT funktsioon võimaldab sisendimuutuja SArv1 (IN) väärtust piirata sisendmuutujate SMin (MN - alumine piir) ja SMax (MX - ülemine piir) kaudu määratud piiridega. Kui SMin<SArv1<SMax, siis kantakse sisendmuutuja SArv1 väärtus üle väljundmuutujasse TArv1. Kui sisendmuutuja SArv1 väärtus nendele tingimustele ei vasta, siis kantakse väljundisse kas SMin või SMax väärtus olenevalt sellest, kumba piirväärtust ületab sisendmuutujas SArv1 olev väärtus (joonis 6.16).

FBD ST
LIMIT FBD //LIMIT ST keeles
TArv1 := LIMIT (SMin, SArv1, SMax);

Tabelis 6.7 on esitatud LIMIT funktsiooni juures kasutatud muutujad, sisendid ja väljundid.

Muutuja Sisend / Väljund Andmetüüp Kommentaar
SArv1 IN Elementaarsed ja komplekssed andmetüübid Sisendmuutuja, mille väärtus kantakse üle väljundisse kui kehtib seadus SMin<SArv1<SMax
SMin MN Sisendmuutuja, millega määratakse alumine piir
SMax MX Sisendmuutuja, millega määratakse ülemine piir
TArv1 Väljundmuutuja, kuhu väljastatakse LIMIT funktsiooni tulemus

Matemaatilised tehted aja muutujatega

Aja ja kuupäeva väärtusi saab liita (suurendada), lahutada (vähendada), korrutada ning jagada. Tabelis 6.8 on esitatud vastavate tehete juures kasutatavate muutujate andmetüübid. Ehk millised andmtüüpe võib kasutada koos vastava matemaatilise tehte juures. Joonistel 6.17 ja 6.18 on esitatud matemaatiliste tehete näited ajaliste muutujatega.

Funktsiooni nimi FBD ja LD keeles Märk ST keeles Muutuja SAeg1 Muutuja SAeg2 (SArv1) Muutuja TAeg1
ADD + TIME TIME TIME
TOD TIME TOD
DT TIME DT
SUB - TIME TIME TIME
DATE DATE TIME
TOD TIME TOD
TOD TOD TIME
DT TIME DT
DT DT TIME
MUL * TIME SINT, USINT, INT, UINT, DINT, UDINT TIME
DIV / TIME SINT, USINT, INT, UINT, DINT, UDINT TIME

Liitmine Lahutamine
ADD FBD SUB FBD
Korrutamine Jagamine
MUL FBD DIV FBD

//Ajaliste väärtuste liitmine ST keeles
TAeg1 := SAeg1 + SAeg2;

//Ajaliste väärtuse lahutamine ST keeles
TAeg1 := SAeg1 - SAeg2;

//Ajalise väärtuse korrutamine ST keeles
TAeg1 := SAeg1 * SArv1;

//Ajalise väärtuse jagamine ST keeles
TAeg1 := SAeg1 / SArv1;

Ajaliste matemaatiliste tehete juures võib kasutada ka funktsioonide aktiveerimissignaale, mis võimaldab mõjutada matemaatiliste funktsioonide täitmist.

Teisendusfunktsioonid

Teisendusfunktsioone kasutatakse üht tüüpi andmete teisenduseks teist tüüpi andmeteks [viide]. Näiteks on mingis aritmeetikatehtes vaja kasutada operataatorpaneelis oleva muutuja väärtust, mis on esitatud BCD koodis. Selleks tuleb muutuja väärtus BCD koodist teisendada täis- või reaalarvu kujule. Seejärel saab täis- või reaalarvu kujul olevat väärtust kasutada aritmeetikatehtes. Kui täis- või reaalarvulist aritmeetikatehte tulemust on vaja esitada BCD koodis, siis tuleb kasutada vastupidist teisendamist.

Teisendusfunktsioone tuleks kasutada ka siis kui väärtusi tahetakse kanda üle väiksemast andmetüübist suuremasse andmetüüpi nt INT-st DINT-i või vastupidi. See tagab et väärtus kantakse õigesti edasi ja seda ei moonutata (negatiivne väärtus jääb ikka negatiivseks väärtuseks).

Tabelis 6.9 on esitatud mõned IEC 61131 defineeritud teisendusfunktsioonid, mis on ka CoDeSys-s olemas.

Nimi Kommentaar
<andmetüüp>_TO_<andmetüüp> Teisendusfunktsiooni sisendisse antud mingi elementaarse andmetüübi väärtus teisendatakse teise elementaarsesse andmetüüpi
BCD_TO_<andmetüüp> Funktsiooni sisendisse antud BCD kood teisendatakse mingisse elementaarsesse andmetüüpi
<andmetüüp>_TO_BCD Funktsiooni sisendisse antud elementaarse andmetüübi väärtus teisendatakse BCD koodiks
TRUNC Funktsiooni sisendisse antud reaalarvuline väärtus teisendatakse täisarvuliseks. Tulemuseks on reaalarvu täisosa. Komakoht kustutatakse

Teisendusfunktsioon <andmetüüp>_TO_<andmetüüp>

Kõige otsesema andmetüüpide teisendamisega tegeleb funktsioon <andmetüüp>_TO_<andmetüüp>, mis võimaldab enamuse andmetüüpe teisendada mistahes muuks andmetüübiks. TO-st ettepoole kirjutatakse alati andmetüüp, millest võetakse teisendatav väärtus sisse ja teisele poole kirjutatakse andmetüüp, millesse väärtus teisendatakse. Joonistel 6.19 ja 6.20 on esitatud mõned teisendusfunktsiooni näited. CoDeSys on neid veel.

BOOL andmetüübi väärtus teisendatakse USINT väärtuseks STRING andmetüübi väärtus teisendatakse WORD väärtuseks
BOOL_TO_USINT FBD STRING_TO_WORD FBD
INT andmetüübi väärtus teisendatakse REAL väärtuseks TIME andmetüübi väärtus teisendatakse REAL väärtuseks
INT_TO_REAL FBD TIME_TO_REAL FBD

//Erinevad teisendusfunktsioonid ST keeles
TUSInt1 := BOOL_TO_USINT (TRUE);
TWord1 := STRING_TO_WORD ('123');
TReal1 := INT_TO_REAL (SInt1);
TReal1 := TIME_TO_REAL (T#53m38s);

Väärtuste teisendamine ühest andmetüübist teise ei pruugi toimuda ilma kadudeta. Eriti siis, kui teisendatakse suuremast mälumahuga andmetüübist väiksema mälumahuga andmetüüpi, nt WORD-st BYTE-i või DINT-st INT-i. Heal juhul esitatakse väärtus korrektselt. Halvemal juhul saadakse tulemuseks mingi suvaline väärtus.


Teisendusfunktsiooni võib kirjutada ka kujul TO_<andmetüüp>. See tähendab et ütlemata jääb, millisest andmetüübist väärtus sisse võetakse. Täpsustatakse ainult andmetüüp, millesse tahetakse väärtus salvestada (joonis 6.21).

FBD ST
TO_REAL FBD TO_TOD FBD (*TO_<andmetüüp> funktsioon ST keeles*)
TReal1 := TO_REAL (132);
TTod1 := TO_TOD (T#2345S);

BCD teisendusfunktsioonid

Nende kahe BCD teisendusfunktsiooni kasutamiseks tuleb lisada CoDeSys rakendusse teek nimega Util. Teegis on teisendusfunktsioonid BCD_TO_<andmetüüp> ja <andmetüüp>_TO_BCD (joonis 6.22). Mõlema puhul saab kasutada andmetüüpidena INT, BYTE, WORD ja DWORD. INT ja BYTE puhul esitatakse BCD koodi väärtusi vahemikus 0 kuni 99. WORD puhul saab esitada väärtusi 0 kuni 9999 ning DWORD puhul 0 kuni 99 999 999. Kui nendest vahemikest kaldutakse kõrvale, siis esitatakse tulemuseks mingi suvaline väärtus (enamasti on selleks veateate number).

FBD ST
BCD_TO_WORD FBD //BCD teisendus funktsioonid ST keeles
TDWord1 := BCD_TO_DWORD (999999);
TByte1 := INT_TO_BCD (20);
INT_TO_BCD FBD

Teisendusfunktsioon TRUNC

TRUNC on teisendusfunktsioon, mis teisendab komakohaga arvud (reaalarvud) teistesse tüüpidesse (täisarvudeks). TRUNC funktsioon lõikab välja komakohaga arvust täisarvu ja väljastab tulemuse muutujale, mis võtab enda alla 64 bitti. See funktsioon ei arvesta murdosa (joonis 6.23 ja 6.24). TRUNC_INT funktsioon väljastab täisarvu 32 bitisele muutujale.

FBD ST
TRUNC FBD //TRUNC funktsioonid ST keeles
TDInt1 := TRUNC (SReal1);
TInt1 := TRUNC_INT (SReal1);
TRUNC_INT FBD

Jooniselt 6.24 näeb et funktsioon REAL_TO_INT ümardab komakohaga arvud täisarvuks nii nagu seda matemaatikas tehakse.

Väärtused FBD
TRUNC FBD TRUNC_INT FBD
ST
//Komakoha arvu teisendamine ST keeles
TInt1 := REAL_TO_INT (SReal1);
Creative Commons Licence
"CoDeSys" is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License .