Operacje logiczne na słowach
Binarne i Wybór
Manipuluj danymi w samym sercu rejestrów. Od bitowego maskowania binarnego po złożone multipleksowanie — zoptymalizuj przetwarzanie słów danych.
Czym są operacje logiczne na słowach w TIA Portal?
Operacje logiczne na słowach pozwalają na wykonywanie obliczeń boole'owskich na wszystkich bitach słowa (Word, DWord, LWord). Są one niezbędne do maskowania bitów, porównywania wzorców binarnych lub uproszczonego zarządzania zgrupowanymi sygnałami.
Ta sekcja zawiera również potężne funkcje wyboru, takie jak SEL i MUX, które pozwalają na dynamiczny wybór jednej wartości spośród wielu na podstawie warunku lub indeksu, a także narzędzia do kodowania (ENCO) i dekodowania (DECO) do zarządzania stanami.
Logika bitowa
Przetwarzanie boole'owskie na Word i DWord
AND / OR / XOR — Operacje binarne
ANDCo robi
Wykonuje operację logiczną (AND, OR, XOR) na każdym odpowiadającym bicie między dwoma lub więcej wejściami. Wynik jest podawany w słowie o tym samym rozmiarze.
Kiedy używać
Maskowanie specyficznych bitów (AND z maską), łączenie alarmów lub wykrywanie zmian stanu bit po bicie.
Porady Pro
AND jest idealny do 'wyłączania' bitów, OR do ich 'włączania'.
XOR jest idealny do porównywania dwóch słów i identyfikowania, które bity się różnią.
Możesz dodać dodatkowe wejścia do bloku, klikając żółtą ikonę.
INVERT — Dopełnienie jedynkowe
INVCo robi
Odwraca stan każdego bitu w słowie wejściowym (0 staje się 1, 1 staje się 0).
Kiedy używać
Odwrócenie grupy sygnałów z czujników lub przygotowanie specyficznych obliczeń binarnych.
Porady Pro
Odpowiednik operatora NOT w klasycznym programowaniu, ale zastosowany do całego słowa.
Bardzo przydatne w komunikacji z urządzeniami zewnętrznymi o odwróconej logice.
Uważaj, aby nie pomylić tego z dopełnieniem dwójkowym (NEG).
Wybór i multipleksowanie
Dynamiczne kierowanie wartości
SEL — Wybór binarny
SELCo robi
Wybiera jedno z dwóch wejść (IN0 lub IN1) na podstawie stanu wejścia binarnego G (G=0 -> IN0, G=1 -> IN1).
Kiedy używać
Wybór między wartością zadaną ręcznie a automatyczną, lub przełączanie między dwoma progami temperatury.
Porady Pro
Graficzny odpowiednik operatora trójargumentowego (warunek ? a : b).
Bardziej kompaktowy niż blok IF lub dwie sieci transferu warunkowego.
Działa z prawie wszystkimi typami danych (Int, Real, Time...).
MUX / DEMUX — Multipleksery
MUXCo robią
MUX wybiera jedno wejście spośród N na podstawie indeksu K. DEMUX kieruje wejście do jednego z N wyjść na podstawie indeksu K.
Kiedy używać
Zarządzanie recepturami (wybór przez indeks), dynamiczne wyświetlanie na HMI lub kierowanie danych do różnych stacji roboczych.
Porady Pro
Indeks K zaczyna się od 0. Jeśli K=0, wybierane jest IN0.
Użyj wejścia ELSE w MUX, aby zdefiniować wartość domyślną, jeśli indeks jest poza zakresem.
DEMUX jest bardzo potężny do dystrybucji pomiaru do różnych dzienników historii.
Kodowanie i Dekodowanie
Konwersja między indeksem a pozycją bitu
DECO — Dekodowanie
DECOCo robi
Aktywuje bit, którego numer odpowiada wartości wejściowej. Wszystkie pozostałe bity słowa wyjściowego są ustawiane na 0.
Kiedy używać
Konwersja numeru kroku na sygnał binarny do sterowania specyficznym wyjściem.
Porady Pro
Jeśli wejście wynosi 3, bit 3 (czwarty) słowa wyjściowego będzie miał stan 1.
Pozwala na łatwe przejście z liczby całkowitej na maskę bitową.
Idealne do sterowania kolumnami sygnalizacyjnymi lub wskaźnikami stanu.
ENCO — Kodowanie
ENCOCo robi
Zwraca numer najmniej znaczącego bitu (LSB), który jest w stanie 1 w słowie wejściowym.
Kiedy używać
Identyfikacja, który błąd pojawił się w słowie alarmowym, aby wyświetlić odpowiedni komunikat.
Porady Pro
Jeśli słowo wejściowe zawiera 2#0000_1000, ENCO zwraca 3.
Operacja odwrotna do DECO.
Bardzo przydatne do przekształcania sygnałów z dyskretnych czujników położenia na wartość numeryczną.
Przetwarzanie słowa vs Pojedynczy bit
Dlaczego warto pracować na całym słowie?
| Scenariusz | Podejście Word Logic | Zaleta |
|---|---|---|
| Wymuszenie 8 wyjść na 0 | MOVE 0 -> Word | 1 sieć vs 8 styków |
| Maskowanie bajtu | AND 16#00FF | Chirurgiczna precyzja |
| Odwrócenie 16 sygnałów | INVERT | Szybkość wykonania |
| Wybór 1 wartości / 10 | MUX | Maksymalna czytelność |
| Kierowanie pomiaru | DEMUX | Elastyczna logika |
| Priorytet alarmu | ENCO | Natychmiastowa diagnostyka |
Często Zadawane Pytania
Jaka jest różnica między MUX a tablicą (Array)?
MUX jest instrukcją zapisaną na sztywno w kodzie dla kilku wartości (często < 10). Dla setek wartości użyj tablicy z dynamicznym indeksowaniem [i] w SCL.
Czy można wykonać AND na typach REAL?
Nie, operacje logiczne bit po bicie (AND, OR, XOR) są dozwolone tylko na typach binarnych (Byte, Word, DWord, LWord).
Jak działa indeks DEMUX?
Wejście K definiuje, do którego wyjścia kopiowana jest wartość IN. Jeśli K=2, IN jest kopiowane do OUT2. Wszystkie pozostałe wyjścia pozostają przy swojej poprzedniej wartości lub 0 w zależności od konfiguracji.
Czy INVERT zmienia znak liczby?
Nie, INVERT odwraca bity. Aby zmienić znak (dopełnienie dwójkowe), użyj instrukcji NEG (Matematyka) lub pomnóż przez -1.