Instrukcje TIA Portal

Funkcje Matematyczne
Obliczenia i Algorytmy

Od prostego dodawania po złożone równania — funkcje matematyczne przekształcają surowe dane w użyteczne informacje do sterowania procesami.

Czym są funkcje matematyczne w TIA Portal?

Funkcje matematyczne w TIA Portal umożliwiają wykonywanie obliczeń arytmetycznych, trygonometrycznych i logarytmicznych na różnych typach danych (liczby całkowite, rzeczywiste). Są one niezbędne do skalowania czujników, obliczania trajektorii czy regulacji pętli PID.

TIA Portal wyróżnia się instrukcją CALCULATE, która pozwala na zapisanie złożonego wyrażenia (np. (in1 + in2) * in3 / in4) w jednym bloku, co poprawia czytelność w porównaniu z ciągiem pojedynczych bloków ADD/MUL.

Podstawowa Arytmetyka

Fundamentalne operacje przetwarzania danych

CALCULATE — Oblicz

CALC

Co robi

Pozwala zdefiniować dowolne wyrażenie matematyczne łączące wiele wejść (IN1...INn). Wprowadzasz formułę, a TIA Portal generuje odpowiednie piny.

Kiedy używać

Gdy obliczenie wymaga więcej niż dwóch kroków. Idealne do obliczeń przepływu, objętości lub dowolnych złożonych formuł fizycznych.

Porady Pro

Możesz używać funkcji takich jak ABS, SQRT lub SIN bezpośrednio w wyrażeniu CALCULATE.

Zawsze sprawdzaj wyjściowy typ danych (OUT), aby uniknąć przepełnienia (Overflow).

W SCL jest to naturalny odpowiednik bezpośredniego przypisania: out := (in1 + in2) * in3;

ADD / SUB / MUL / DIV

+
+, -, *, /

Co robią

Standardowe instrukcje arytmetyczne: Dodawanie, Odejmowanie, Mnożenie i Dzielenie.

Kiedy używać

Do prostych i szybkich operacji między dwiema wartościami.

Porady Pro

Przy dzieleniu (DIV) zawsze używaj testu |OK| lub sprawdzaj, czy dzielnik nie jest zerem, aby uniknąć zatrzymania CPU.

Instrukcja ADD może przyjąć więcej niż dwa wejścia po kliknięciu żółtej ikony na bloku.

Dla liczb całkowitych DIV zwraca iloraz całkowity. Użyj MOD dla reszty.

MOD — Modulo

MOD

Co robi

Zwraca resztę z dzielenia całkowitego między IN1 a IN2.

Kiedy używać

Zarządzanie buforami cyklicznymi, naprzemienna praca (np. pompy 1 i 2) lub konwersja jednostek (np. sekundy na minuty/sekundy).

Porady Pro

Bardzo przydatne do wyzwalania akcji co 'N' cykli.

Dostępne tylko dla całkowitoliczbowych typów danych (Int, DInt itp.).

SCL: remainder := value1 MOD value2;

Znak i Inkrementacja

Zarządzanie znakiem i szybkie operacje jednostkowe

INC / DEC — Inkrementacja / Dekrementacja

++
++ / --

Co robi

Dodaje lub odejmuje 1 od określonej zmiennej (typu InOut).

Kiedy używać

Proste liczniki sztuk, indeksy pętli, zarządzanie kolejkami.

Porady Pro

Szybsze w zapisie niż pełny blok ADD lub SUB.

Uwaga na typ danych: inkrementacja Int przy 32767 spowoduje przejście na -32768.

W SCL: i := i + 1; lub INC(i);

ABS — Wartość Bezwzględna

ABS

Co robi

Zwraca dodatnią wartość liczby, niezależnie od tego, czy pierwotnie była dodatnia czy ujemna.

Kiedy używać

Obliczanie odchyłki między pomiarem a wartością zadaną, pomiar odległości, obliczanie błędu PID.

Porady Pro

Niezbędne do obliczania błędu bezwzględnego (|wartość zadana - pomiar|).

Obsługuje liczby całkowite i rzeczywiste.

SCL: positiveVal := ABS(originalVal);

Min / Max / Limit

Wybór i ograniczanie wartości

MIN / MAX — Minimum / Maksimum

MIN

Co robi

Porównuje N wartości i zwraca najmniejszą (MIN) lub największą (MAX).

Kiedy używać

Wybór najwyższej temperatury spośród kilku sond, określanie minimalnej dozwolonej prędkości.

Porady Pro

Do bloku można dodać tyle wejść, ile potrzeba.

Bardzo przydatne w diagnostyce wieloczujnikowej.

SCL: peakValue := MAX(val1, val2, val3);

LIMIT — Ogranicz

LIMIT

Co robi

Ogranicza (clamp) wartość wejściową (IN) między minimum (MN) a maksimum (MX).

Kiedy używać

Bezpieczeństwo na wyjściach analogowych (np. zapobieganie otwarciu zaworu powyżej 80%), ograniczanie nastaw użytkownika.

Porady Pro

Korzystnie zastępuje kombinację MIN i MAX.

Jeśli MN > MX, wyjście zależy od typu CPU, ale zazwyczaj brany jest MX.

SCL: safeVal := LIMIT(MN:=0.0, IN:=rawVal, MX:=100.0);

Potęgi i Pierwiastki

Obliczenia wykładnicze i pierwiastkowe

SQRT / SQR / EXPT

SQRT

Co robią

SQRT (Pierwiastek kwadratowy), SQR (Kwadrat), EXPT (Dowolna potęga).

Kiedy używać

Obliczenia geometryczne, konwersja sygnałów nieliniowych, fizyka płynów.

Porady Pro

SQRT z liczby ujemnej daje NaN. Zawsze sprawdzaj wejście lub użyj ABS.

EXPT jest zasobożerne dla CPU, używaj SQR dla zwykłych kwadratów.

SCL: area := 3.14 * SQR(radius);

Trygonometria

Obliczenia kątów i rotacji

SIN / COS / TAN / ASIN...

SIN

Co robią

Standardowe obliczenia trygonometryczne i ich odwrotności (arcsin, arccos, arctan). Kąty są zawsze w RADIANACH.

Kiedy używać

Kinematyka robotów, obliczenia pozycjonowania kątowego, przetwarzanie sygnałów oscylacyjnych.

Porady Pro

Aby przeliczyć stopnie na radiany: Radiany = Stopnie * (PI / 180).

TAN(PI/2) dąży do nieskończoności, monitoruj wejścia.

Używaj stałych systemowych dla PI, aby zagwarantować precyzję.

Funkcje Zaawansowane

Logarytmy i części ułamkowe

LN / EXP / FRAC

LN

Co robią

LN (Logarytm naturalny), EXP (Wykładnicza e^x), FRAC (Wyodrębnia część dziesiętną).

Kiedy używać

Modelowanie procesów chemicznych, wzrost wykładniczy lub separacja jednostek (FRAC).

Porady Pro

FRAC(12.34) zwraca 0.34. Bardzo praktyczne przy obliczeniach precyzji czasowej.

EXP jest dokładną odwrotnością LN.

SCL: fraction := FRAC(totalValue);

Porównanie podejść obliczeniowych

LAD vs SCL — Którą metodę wybrać?

Typ obliczeńZalecana metodaDlaczego?
Proste dodawanieBlok ADD (LAD)Wizualne i łatwe do śledzenia
Złożona formułaBlok CALCULATEKompaktowy i redukuje liczbę segmentów
Algorytm matematycznyJęzyk SCLSkładnia zbliżona do C/Pascal, idealna do formuł
Obliczenia trygonometryczneSCL lub CALCULATEPojedyncze bloki zajmują zbyt dużo miejsca
Ograniczanie sygnałuBlok LIMITStandard Siemens, bardzo solidny
Resetowanie indeksuInstrukcja INC/DECBardzo szybka implementacja

Często Zadawane Pytania

Jaka jest przewaga CALCULATE nad wieloma blokami ADD/MUL?

CALCULATE znacznie redukuje miejsce zajmowane w programie. Zamiast 5 segmentów z pośrednimi zmiennymi tymczasowymi, masz jeden blok z czytelną formułą. Jest też łatwiejszy w utrzymaniu, jeśli formuła ulegnie zmianie.

Jak TIA Portal radzi sobie z błędami obliczeniowymi (np. dzielenie przez zero)?

W S7-1200/1500 błąd matematyczny nie musi zatrzymywać CPU (zależy od konfiguracji), ale wynik staje się NaN. KLUCZOWE jest użycie instrukcji |OK| po czułym obliczeniu, aby zweryfikować wynik przed jego użyciem.

Czy funkcje trygonometryczne używają stopni czy radianów?

Wszystkie funkcje (SIN, COS, TAN itp.) używają wyłącznie RADIANÓW. Jeśli HMI dostarcza stopnie, musisz pomnożyć wartość przez 0.01745329 (PI/180) przed podaniem jej do bloku.

Czy mogę wykonywać obliczenia na 64 bitach (LReal)?

Tak, S7-1500 natywnie obsługują typ LReal (Long Real) dla zwiększonej precyzji. Większość funkcji matematycznych akceptuje ten typ.

Uprość swoje złożone obliczenia

Opisz swoją formułę fizyczą lub algorytm, T-IA Connect wygeneruje blok CALCULATE lub zoptymalizowany kod SCL z walidacją danych.