Matematične Funkcije
Izračuni & Algoritmi
Od preprostega seštevanja do kompleksnih enačb — matematične funkcije pretvorijo vaše surove podatke v uporabne informacije za vodenje vaših procesov.
Kaj so matematične funkcije v TIA Portalu?
Matematične funkcije v TIA Portalu omogočajo izvajanje aritmetičnih, trigonometričnih in logaritemskih izračunov na različnih podatkovnih tipih (Cela števila, Realna števila). So bistvene za skaliranje senzorjev, izračun trajektorij ali regulacijo PID zank.
TIA Portal izstopa z navodilom CALCULATE, ki omogoča zapis kompleksnega izraza (npr. (in1 + in2) * in3 / in4) v enem bloku, kar izboljša preglednost v primerjavi z verigo posameznih blokov ADD/MUL.
Osnovna Aritmetika
Temeljne operacije za obdelavo podatkov
CALCULATE — Izračunaj
CALCKaj počne
Omogoča definiranje prostega matematičnega izraza, ki združuje več vhodov (IN1...INn). Vnesete formulo in TIA Portal generira ustrezne priključke.
Kdaj uporabiti
Takoj ko izračun zahteva več kot dva koraka. Idealno za izračune pretoka, volumna ali katero koli kompleksno fizikalno formulo.
Pro Nasveti
Funkcije, kot so ABS, SQRT ali SIN, lahko uporabite neposredno znotraj izraza CALCULATE.
Vedno preverite izhodni podatkovni tip (OUT), da preprečite prekoračitve (Overflow).
V SCL je to naravni ekvivalent neposredne dodelitve: out := (in1 + in2) * in3;
ADD / SUB / MUL / DIV
+Kaj počnejo
Standardna aritmetična navodila: Seštevanje, Odštevanje, Množenje in Deljenje.
Kdaj uporabiti
Za preproste in hitre operacije med dvema vrednostma.
Pro Nasveti
Pri deljenju (DIV) vedno uporabite test |OK| ali preverite, da delitelj ni nič, da preprečite zaustavitev CPU.
Navodilo ADD lahko sprejme več kot dva vhoda s klikom na rumeno ikono na bloku.
Za cela števila DIV vrne celoštevilski količnik. Uporabite MOD za ostanek.
MOD — Modulo
MODKaj počne
Vrne ostanek celoštevilskega deljenja med IN1 in IN2.
Kdaj uporabiti
Upravljanje krožnih medpomnilnikov (ring buffers), izmenjava ciklov (npr. črpalki 1 in 2) ali pretvorba enot (npr. sekunde v minute/sekunde).
Pro Nasveti
Zelo uporabno za sprožitev dejanja vsakih 'N' ciklov.
Na voljo samo za celoštevilske podatkovne tipe (Int, DInt itd.).
SCL: remainder := value1 MOD value2;
Predznak & Inkrement
Upravljanje predznaka in hitre enotne operacije
INC / DEC — Povečaj / Zmanjšaj
++Kaj počne
Prišteje ali odšteje 1 določeni spremenljivki (v InOut).
Kdaj uporabiti
Preprosti števci kosov, indeksi zank, upravljanje vrst.
Pro Nasveti
Hitreje za zapis kot celoten blok ADD ali SUB.
Pozor na podatkovni tip: inkrement na Int pri 32767 bo preskočil na -32768.
V SCL: i := i + 1; ali INC(i);
ABS — Absolutna vrednost
ABSKaj počne
Vrne pozitivno vrednost števila, ne glede na to, ali je bilo prvotno pozitivno ali negativno.
Kdaj uporabiti
Izračun odstopanja med meritvijo in nastavljeno vrednostjo, merjenje razdalje, izračun PID napake.
Pro Nasveti
Nujno za izračun absolutne napake (|nastavljena vrednost - meritev|).
Podpira cela in realna števila.
SCL: positiveVal := ABS(originalVal);
Min / Max / Meja
Izbira in omejevanje vrednosti
MIN / MAX — Najmanj / Največ
MINKaj počne
Primerja N vrednosti in vrne najmanjšo (MIN) ali največjo (MAX).
Kdaj uporabiti
Izbira najvišje temperature med več sondami, določanje minimalne dovoljene hitrosti.
Pro Nasveti
Bloku lahko dodate toliko vhodov, kolikor jih potrebujete.
Zelo uporabno za diagnostiko z več senzorji.
SCL: peakValue := MAX(val1, val2, val3);
LIMIT — Omeji
LIMITKaj počne
Omeji (clamp) vhodno vrednost (IN) med minimumom (MN) in maksimumom (MX).
Kdaj uporabiti
Varnost na analognih izhodih (npr. preprečevanje odpiranja ventila za več kot 80 %), omejevanje uporabniških nastavitev.
Pro Nasveti
Učinkovito nadomesti kombinacijo MIN in MAX.
Če je MN > MX, je izhod odvisen od tipa CPU, običajno pa se vzame MX.
SCL: safeVal := LIMIT(MN:=0.0, IN:=rawVal, MX:=100.0);
Potence & Koreni
Eksponentni in radikalni izračuni
SQRT / SQR / EXPT
SQRTKaj počnejo
SQRT (Kvadratni koren), SQR (Kvadrat), EXPT (Poljubna potenca).
Kdaj uporabiti
Geometrijski izračuni, pretvorba nelinearnih signalov, fizika tekočin.
Pro Nasveti
SQRT negativnega števila vrne NaN. Vedno preverite vhod ali uporabite ABS.
EXPT porabi veliko CPU ciklov, uporabite SQR za preproste kvadrate.
SCL: area := 3.14 * SQR(radius);
Trigonometrija
Izračuni kotov in rotacij
SIN / COS / TAN / ASIN...
SINKaj počnejo
Standardni trigonometrični izračuni in njihovi inverzi (arcsin, arccos, arctan). Koti so vedno v RADIANIH.
Kdaj uporabiti
Kinematika robotov, izračuni kotnega pozicioniranja, obdelava nihajočih signalov.
Pro Nasveti
Pretvorba stopinj v radiane: Radiani = Stopinje * (PI / 180).
TAN(PI/2) teži k neskončnosti, spremljajte svoje vhode.
Uporabite sistemske konstante za PI, da zagotovite natančnost.
Napredne Funkcije
Logaritmi in decimalni deli
LN / EXP / FRAC
LNKaj počnejo
LN (Naravni logaritem), EXP (Eksponentna funkcija e^x), FRAC (Izloči decimalni del).
Kdaj uporabiti
Modeliranje kemijskih procesov, eksponentna rast ali ločevanje enot (FRAC).
Pro Nasveti
FRAC(12.34) vrne 0.34. Zelo priročno za izračune časovne natančnosti.
EXP je natančen inverz LN.
SCL: fraction := FRAC(totalValue);
Primerjava pristopov k izračunu
LAD vs SCL — Katero metodo izbrati?
| Vrsta izračuna | Priporočena metoda | Zakaj? |
|---|---|---|
| Preprosto seštevanje | Blok ADD (LAD) | Vizualno in enostavno sledljivo |
| Kompleksna formula | Blok CALCULATE | Kompaktno in zmanjša število mrež |
| Matematični algoritem | Jezik SCL | Sintaksa blizu C/Pascalu, idealno za formule |
| Trigonometrični izračun | SCL ali CALCULATE | Posamezni bloki zavzamejo preveč prostora |
| Omejevanje signala | Blok LIMIT | Siemensov standard, zelo robusten |
| Ponastavitev indeksa | Navodilo INC/DEC | Zelo hitra implementacija |
Pogosta Vprašanja
Kaj je prednost CALCULATE pred več bloki ADD/MUL?
CALCULATE znatno zmanjša prostor, ki ga zavzame program. Namesto 5 mrež z vmesnimi začasnimi spremenljivkami imate en sam blok z berljivo formulo. Prav tako ga je lažje vzdrževati, če se formula spremeni.
Kako TIA Portal obravnava napake pri izračunu (npr. deljenje z nič)?
Na S7-1200/1500 matematična napaka ne ustavi nujno CPU (odvisno od konfiguracije), vendar rezultat postane NaN. KLJUČNO je uporabiti navodilo |OK| po občutljivem izračunu, da preverite rezultat pred njegovo uporabo.
Ali trigonometrične funkcije uporabljajo stopinje ali radiane?
Vse funkcije (SIN, COS, TAN itd.) uporabljajo izključno RADIANE. Če vaš HMI zagotavlja stopinje, morate vrednost pomnožiti z 0.01745329 (PI/180), preden jo vstavite v blok.
Ali lahko izvajam izračune na 64 bitih (LReal)?
Da, S7-1500 nativno podpirajo tip LReal (Long Real) za povečano natančnost. Večina matematičnih funkcij sprejme ta tip.