TIA Portal Instructies

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

CALC

Wat 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

MOD

Wat 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

ABS

Wat 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

MIN

Wat 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

LIMIT

Wat 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

SQRT

Wat 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...

SIN

Wat 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

LN

Wat 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 berekeningAanbevolen methodeWaarom?
Eenvoudige optellingADD-blok (LAD)Visueel en gemakkelijk te volgen
Complexe formuleCALCULATE-blokCompact en vermindert het aantal netwerken
Wiskundig algoritmeSCL-taalSyntaxis lijkt op C/Pascal, ideaal voor formules
Trigonometrische berekeningSCL of CALCULATEIndividuele blokken zijn te groot
SignaalbegrenzingLIMIT-blokSiemens-standaard, zeer robuust
Index-resetINC/DEC-instructieZeer 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.

Vereenvoudig uw complexe berekeningen

Beschrijf uw natuurkundige formule of algoritme, T-IA Connect genereert het CALCULATE-blok of de geoptimaliseerde SCL-code met datavalidatie.