Wiskundige Functies
Berekeningen & Algoritmen
Van eenvoudige optellingen tot complexe vergelijkingen, wiskundige functies transformeren uw ruwe data naar bruikbare informatie voor de besturing van uw processen.
Wat zijn wiskundige functies in TIA Portal?
Met wiskundige functies in TIA Portal kunt u rekenkundige, trigonometrische en logaritmische berekeningen uitvoeren op verschillende datatypes (Integers, Reals). Ze zijn essentieel voor het schalen van sensoren, trajectberekening of PID-regelkringen.
TIA Portal onderscheidt zich door de CALCULATE-instructie, waarmee een complexe expressie (bijv. (in1 + in2) * in3 / in4) in één blok kan worden geschreven, wat de leesbaarheid verbetert in vergelijking met een keten van individuele ADD/MUL-blokken.
Basisrekenkunde
Fundamentele bewerkingen voor gegevensverwerking
CALCULATE — Berekenen
CALCWat het doet
Hiermee kunt u een vrije wiskundige expressie definiëren die verschillende ingangen (IN1...INn) combineert. U voert de formule in en TIA Portal genereert de bijbehorende pinnen.
Wanneer te gebruiken
Zodra een berekening meer dan twee stappen vereist. Ideaal voor debiet-, volumeberekeningen of elke complexe natuurkundige formule.
Pro Tips
U kunt functies zoals ABS, SQRT of SIN direct binnen de CALCULATE-expressie gebruiken.
Controleer altijd het uitgangsdatatype (OUT) om overflows te voorkomen.
In SCL is dit het natuurlijke equivalent van een directe toewijzing: out := (in1 + in2) * in3;
ADD / SUB / MUL / DIV
+Wat ze doen
Standaard rekenkundige instructies: Optellen, Aftrekken, Vermenigvuldigen en Delen.
Wanneer te gebruiken
Voor eenvoudige en snelle bewerkingen tussen twee waarden.
Pro Tips
Gebruik bij deling (DIV) altijd de |OK|-test of controleer of de deler niet nul is om een CPU-stop te voorkomen.
De ADD-instructie kan meer dan twee ingangen accepteren door op het gele icoon op het blok te klikken.
Voor integers geeft DIV het gehele quotiënt terug. Gebruik MOD voor de rest.
MOD — Modulo
MODWat het doet
Geeft de rest van de gehele deling tussen IN1 en IN2 terug.
Wanneer te gebruiken
Beheer van ringbuffers, afwisselende cycli (bijv. pompen 1 en 2), of eenheidconversie (bijv. seconden naar minuten/seconden).
Pro Tips
Zeer nuttig voor het triggeren van een actie elke 'N' cycli.
Alleen beschikbaar voor integer datatypes (Int, DInt, etc.).
SCL: remainder := value1 MOD value2;
Teken & Increment
Tekenbeheer en snelle eenheidsbewerkingen
INC / DEC — Verhogen / Verlagen
++Wat het doet
Telt 1 op bij of trekt 1 af van de opgegeven variabele (in InOut).
Wanneer te gebruiken
Eenvoudige tellers, lus-indexen, wachtrijbeheer.
Pro Tips
Sneller te schrijven dan een volledig ADD- of SUB-blok.
Let op het datatype: een increment op een Int bij 32767 springt naar -32768.
In SCL: i := i + 1; of INC(i);
ABS — Absolute Waarde
ABSWat het doet
Geeft de positieve waarde van een getal terug, of het nu oorspronkelijk positief of negatief was.
Wanneer te gebruiken
Berekenen van de afwijking tussen een meting en een instelwaarde, afstandsmeting, PID-foutberekening.
Pro Tips
Essentieel voor het berekenen van de absolute fout (|instelwaarde - meting|).
Ondersteunt zowel integers als reals.
SCL: positiveVal := ABS(originalVal);
Min / Max / Limiet
Waardeselectie en begrenzing
MIN / MAX — Minimum / Maximum
MINWat het doet
Vergelijkt N waarden en geeft de kleinste (MIN) of grootste (MAX) terug.
Wanneer te gebruiken
Selecteren van de hoogste temperatuur uit meerdere sensoren, bepalen van de minimaal toegestane snelheid.
Pro Tips
U kunt zoveel ingangen aan het blok toevoegen als nodig is.
Zeer nuttig voor multi-sensor diagnostiek.
SCL: peakValue := MAX(val1, val2, val3);
LIMIT — Begrenzen
LIMITWat het doet
Begrenst (clampt) een ingangswaarde (IN) tussen een minimum (MN) en een maximum (MX).
Wanneer te gebruiken
Veiligheid op analoge uitgangen (bijv. voorkomen dat een klep meer dan 80% opent), begrenzen van gebruikersinstellingen.
Pro Tips
Vervangt op voordelige wijze een combinatie van MIN en MAX.
Als MN > MX, hangt de uitgang af van het CPU-type, maar meestal wordt MX genomen.
SCL: safeVal := LIMIT(MN:=0.0, IN:=rawVal, MX:=100.0);
Machten & Wortels
Exponentiële en radicale berekeningen
SQRT / SQR / EXPT
SQRTWat ze doen
SQRT (Vierkantswortel), SQR (Kwadraat), EXPT (Aangepaste macht).
Wanneer te gebruiken
Meetkundige berekeningen, conversie van niet-lineaire signalen, vloeistoffysica.
Pro Tips
SQRT van een negatief getal geeft NaN. Test altijd de ingang of gebruik ABS.
EXPT verbruikt veel CPU-cycli, gebruik SQR voor eenvoudige kwadraten.
SCL: area := 3.14 * SQR(radius);
Trigonometrie
Hoek- en rotatieberekeningen
SIN / COS / TAN / ASIN...
SINWat ze doen
Standaard goniometrische berekeningen en hun inverse (arcsin, arccos, arctan). Hoeken zijn altijd in RADIALEN.
Wanneer te gebruiken
Robotkinematica, hoekpositioneringsberekeningen, verwerking van oscillerende signalen.
Pro Tips
Om graden naar radialen om te rekenen: Radialen = Graden * (PI / 180).
TAN(PI/2) neigt naar oneindig, bewaak uw ingangen.
Gebruik systeemconstanten voor PI om nauwkeurigheid te garanderen.
Geavanceerde Functies
Logaritmen en fractionele delen
LN / EXP / FRAC
LNWat ze doen
LN (Natuurlijk Log), EXP (Exponentieel e^x), FRAC (Extraheert het decimale deel).
Wanneer te gebruiken
Modelleren van chemische processen, exponentiële groei, of eenheidscheiding (FRAC).
Pro Tips
FRAC(12.34) geeft 0.34 terug. Zeer handig voor precisie-tijdberekeningen.
EXP is het exacte omgekeerde van LN.
SCL: fraction := FRAC(totalValue);
Vergelijking van rekenmethoden
LAD vs SCL — Welke methode kiezen?
| Type berekening | Aanbevolen methode | Waarom? |
|---|---|---|
| Eenvoudige optelling | ADD-blok (LAD) | Visueel en gemakkelijk te volgen |
| Complexe formule | CALCULATE-blok | Compact en vermindert het aantal netwerken |
| Wiskundig algoritme | SCL-taal | Syntaxis lijkt op C/Pascal, ideaal voor formules |
| Trigonometrische berekening | SCL of CALCULATE | Individuele blokken zijn te groot |
| Signaalbegrenzing | LIMIT-blok | Siemens-standaard, zeer robuust |
| Index-reset | INC/DEC-instructie | Zeer snel te implementeren |
Veelgestelde Vragen
Wat is het voordeel van CALCULATE ten opzichte van meerdere ADD/MUL-blokken?
CALCULATE vermindert de ingenomen ruimte in het programma aanzienlijk. In plaats van 5 netwerken met tijdelijke tussenvariabelen, heeft u één blok met een leesbare formule. Het is ook gemakkelijker te onderhouden als de formule verandert.
Hoe gaat TIA Portal om met rekenfouten (bijv. deling door nul)?
Op S7-1200/1500 stopt een wiskundige fout niet noodzakelijkerwijs de CPU (afhankelijk van de config), maar het resultaat wordt NaN. Het is CRUCIAAL om de |OK|-instructie te gebruiken na een gevoelige berekening om het resultaat te valideren.
Gebruiken trigonometrische functies graden of radialen?
Alle functies (SIN, COS, TAN, etc.) gebruiken uitsluitend RADIALEN. Als uw HMI graden levert, moet u de waarde vermenigvuldigen met 0.01745329 (PI/180) voordat u deze in het blok invoert.
Kan ik berekeningen uitvoeren op 64 bits (LReal)?
Ja, de S7-1500 ondersteunt native het LReal (Long Real) type voor verhoogde precisie. De meeste wiskundige functies accepteren dit type.