Operacje Konwersji
Skalowanie i Typy
Konwersja danych to most między światem fizycznym a kodem cyfrowym. Opanuj skalowanie sygnałów analogowych i transformację typów danych.
Czym są operacje konwersji w TIA Portal?
Operacje konwersji pozwalają na przekształcenie wartości z jednego typu danych na inny (np. z liczby całkowitej na rzeczywistą) lub manipulowanie precyzją liczb zmiennoprzecinkowych. Obejmują one również narzędzia do normalizacji i skalowania, niezbędne do przetwarzania sygnałów analogowych.
TIA Portal oferuje nowoczesne instrukcje, takie jak SCALE_X i NORM_X, które zastępują stare bloki SCALE/UNSCALE z systemów S7-300, oferując większą elastyczność i precyzję.
Konwersja Typu
Transformacja i zaokrąglanie formatów liczbowych
CONVERT — Konwertuj wartość
CONVCo robi
Konwertuje wartość z typu źródłowego na docelowy. Obsługuje konwersje między liczbami całkowitymi, rzeczywistymi, znakami, czasem i ciągami znaków.
Kiedy używać
Przygotowanie liczby całkowitej do złożonych obliczeń poprzez zmianę na Real lub konwersja kodu błędu na String dla HMI.
Porady Pro
W LAD kliknij na typy danych bloku, aby wybrać źródło i cel.
W SCL: myReal := INT_TO_REAL(myInt);
Uwaga na utratę precyzji przy konwersji z typów szerokich na krótsze.
ROUND / TRUNC
ROUNDCo robią
ROUND zaokrągla liczbę zmiennoprzecinkową do najbliższej liczby całkowitej. TRUNC po prostu usuwa część ułamkową.
Kiedy używać
Wyświetlanie pomiaru jako liczby całkowitej lub konwersja wyniku Real na indeks tablicy (Int).
Porady Pro
Jeśli część ułamkowa wynosi dokładnie .5, ROUND zaokrągla do najbliższej liczby parzystej (norma IEC).
TRUNC jest lepszy, jeśli chcesz tylko zignorować ułamki bez zaokrąglania.
Oba akceptują Real/LReal i zwracają zazwyczaj DInt.
CEIL / FLOOR
CEILCo robią
CEIL (Sufit) generuje większą lub równą liczbę całkowitą. FLOOR (Podłoga) generuje mniejszą lub równą liczbę całkowitą.
Kiedy używać
Obliczanie potrzebnej liczby pojemników (zawsze zaokrąglaj w górę za pomocą CEIL).
Porady Pro
CEIL(10.1) = 11 ; FLOOR(10.9) = 10.
Niezbędne w algorytmach logistycznych.
Pomocne w utrzymaniu wartości w ścisłych granicach całkowitoliczbowych.
Skalowanie (Scaling)
Przetwarzanie sygnałów analogowych
NORM_X — Normalizuj
NORM_XCo robi
Przekształca wartość z zakresu [MIN..MAX] na wartość znormalizowaną między 0.0 a 1.0.
Kiedy używać
Odczyt surowego wejścia analogowego (np. 0-27648) i zmiana na procenty.
Porady Pro
Zazwyczaj następuje po nim blok SCALE_X.
Jeśli wejście przekroczy limity, wyjście przekroczy 0.0 lub 1.0.
Upewnij się, że MIN różni się od MAX.
SCALE_X — Skaluj
SCALE_XCo robi
Bierze wartość znormalizowaną [0.0..1.0] i rzutuje ją na zakres fizyczny (np. 0-100°C).
Kiedy używać
Konwersja wyniku NORM_X na jednostkę inżynierską czytelną dla operatora.
Porady Pro
Kombinacja NORM_X + SCALE_X to nowoczesny standard Siemens.
Pozwala łatwo zmieniać zakresy czujników.
Służy również do wysyłania nastaw fizycznych na wyjścia analogowe.
Instrukcje Legacy
Kompatybilność S7-300 (FC105 / FC106)
SCALE / UNSCALE
Co robi
Stare bloki wykonujące bezpośrednią konwersję w jednym kroku.
Kiedy używać
Konserwacja programów migrowanych ze Step 7 Classic.
Porady Pro
SCALE odpowiada starem FC105.
Użyj BIPOLAR dla sygnałów ujemnych (+/- 10V).
W nowych projektach wybieraj NORM_X/SCALE_X.
Porównanie metod
Wybór właściwej instrukcji
| Chcesz... | Zalecana | Przykład |
|---|---|---|
| Zmienić typ (Int -> Real) | CONVERT | Dokładne obliczenia |
| Usunąć ułamki | TRUNC | Proste wyświetlanie |
| Zaokrąglić | ROUND | Statystyki |
| Czujnik 4-20mA | NORM_X + SCALE_X | Ciśnienie 0-16 bar |
| Zaokrąglenie w górę | CEIL | Obliczanie palet |
| Kod S7-300 | SCALE (FC105) | Migracja |
Często Zadawane Pytania
Dlaczego używać NORM_X i SCALE_X zamiast jednego bloku?
Pozwala to na większą elastyczność w filtrowaniu lub ograniczaniu wartości przed skalowaniem.
Jaka jest standardowa wartość dla wejść analogowych Siemens?
Zazwyczaj 0 do 27648 dla sygnałów unipolarnych.
Jak konwertować na String?
CONVERT robi to natywnie, lub użyj VAL_STRG dla większej kontroli.
Różnica między ROUND a TRUNC?
ROUND zaokrągla do najbliższej, TRUNC po prostu odcina ułamki.