Operazioni Logiche su Parole
Binario e Selezione
Manipola i dati nel cuore dei registri. Dal mascheramento binario bit per bit al multiplexing complesso, ottimizza l'elaborazione delle tue parole di dati.
Cosa sono le operazioni logiche su parole in TIA Portal?
Le operazioni logiche su parole consentono di eseguire calcoli booleani su tutti i bit di una parola (Word, DWord, LWord). Sono essenziali per il mascheramento dei bit, il confronto di pattern binari o la gestione semplificata di segnali raggruppati.
Questa sezione include anche potenti funzioni di selezione come SEL e MUX, che consentono di scegliere dinamicamente un valore tra diversi in base a una condizione o un indice, nonché strumenti di codifica (ENCO) e decodifica (DECO) per la gestione degli stati.
Logica Bit a Bit
Elaborazione booleana su Word e DWord
AND / OR / XOR — Operazioni binarie
ANDCosa fa
Esegue un'operazione logica (AND, OR, XOR) su ogni bit corrispondente tra due o più ingressi. Il risultato è fornito in una parola della stessa dimensione.
Quando usarlo
Mascherare bit specifici (AND con una maschera), combinare allarmi o rilevare variazioni di stato bit per bit.
Consigli Pro
AND è perfetto per 'spegnere' i bit, OR per 'accenderli'.
XOR è ideale per confrontare due parole e identificare quali bit differiscono.
Puoi aggiungere ingressi extra al blocco cliccando sull'icona gialla.
INVERT — Complemento a uno
INVCosa fa
Inverte lo stato di ogni bit nella parola di ingresso (0 diventa 1, 1 diventa 0).
Quando usarlo
Invertire un gruppo di segnali sensore o preparare calcoli binari specifici.
Consigli Pro
Equivalente all'operatore NOT nella programmazione classica ma applicato all'intera parola.
Molto utile per le comunicazioni con apparecchiature di terze parti con logica invertita.
Fai attenzione a non confonderlo con il complemento a due (NEG).
Selezione e Multiplexing
Instradamento dinamico dei valori
SEL — Selezione binaria
SELCosa fa
Seleziona uno dei due ingressi (IN0 o IN1) in base allo stato di un ingresso binario G (G=0 -> IN0, G=1 -> IN1).
Quando usarlo
Scegliere tra un setpoint manuale e uno automatico, o alternare tra due soglie di temperatura.
Consigli Pro
Equivalente grafico dell'operatore ternario (condizione ? a : b).
Più compatto di un blocco IF o di due reti di trasferimento condizionale.
Funziona con quasi tutti i tipi di dati (Int, Real, Time...).
MUX / DEMUX — Multiplexer
MUXCosa fanno
MUX seleziona un ingresso tra N in base a un indice K. DEMUX instrada un ingresso verso una delle N uscite in base all'indice K.
Quando usarlo
Gestione ricette (selezione per indice), visualizzazione dinamica su HMI o instradamento dati verso diverse postazioni di lavoro.
Consigli Pro
L'indice K inizia da 0. Se K=0, viene selezionato IN0.
Usa l'ingresso ELSE del MUX per definire un valore predefinito se l'indice è fuori limite.
DEMUX è molto potente per distribuire una misura verso diversi log storici.
Codifica e Decodifica
Conversione tra indice e posizione del bit
DECO — Decodifica
DECOCosa fa
Attiva il bit il cui numero corrisponde al valore di ingresso. Tutti gli altri bit della parola di uscita sono impostati a 0.
Quando usarlo
Convertire un numero di fase in un segnale binario per pilotare un'uscita specifica.
Consigli Pro
Se l'ingresso è 3, il bit 3 (il 4°) della parola di uscita sarà 1.
Consente di passare facilmente da un intero a una maschera di bit.
Ideale per pilotare colonne luminose o indicatori di stato.
ENCO — Codifica
ENCOCosa fa
Restituisce il numero del bit meno significativo (LSB) che si trova in stato 1 nella parola di ingresso.
Quando usarlo
Identificare quale guasto è apparso in una parola di allarmi per visualizzare il messaggio corrispondente.
Consigli Pro
Se la parola di ingresso contiene 2#0000_1000, ENCO restituisce 3.
Operazione inversa di DECO.
Molto utile per trasformare i segnali dai sensori di posizione discreti in un valore numerico.
Elaborazione Parole vs Singolo Bit
Perché lavorare sulla parola completa?
| Scenario | Approccio Word Logic | Vantaggio |
|---|---|---|
| Forzare 8 uscite a 0 | MOVE 0 -> Word | 1 rete vs 8 contatti |
| Mascherare un byte | AND 16#00FF | Precisione chirurgica |
| Invertire 16 segnali | INVERT | Rapidità di esecuzione |
| Scegliere 1 valore / 10 | MUX | Massima leggibilità |
| Instradare una misura | DEMUX | Logica flessibile |
| Priorità allarme | ENCO | Diagnosi istantanea |
Domande Frequenti
Qual è la differenza tra MUX e un Array?
MUX è un'istruzione cablata per pochi valori (spesso < 10). Per centinaia di valori, usa un Array con indicizzazione dinamica [i] in SCL.
Si può fare un AND su tipi REAL ?
No, le operazioni logiche bit a bit (AND, OR, XOR) sono consentite solo sui tipi binari (Byte, Word, DWord, LWord).
Come funziona l'indice del DEMUX ?
L'ingresso K definisce verso quale uscita viene copiato il valore IN. Se K=2, IN viene copiato su OUT2. Tutte le altre uscite rimangono al valore precedente o 0 a seconda della configurazione.
INVERT cambia il segno di un numero ?
No, INVERT inverte i bit. Per cambiare il segno (complemento a due), usa l'istruzione NEG (Matematica) o moltiplica per -1.