Istruzioni TIA Portal

Scorrimento e Rotazione
Manipolazione di Bit

Ottimizza l'elaborazione dei tuoi registri. Dal calcolo matematico ultra-rapido alla gestione di protocolli di comunicazione complessi, padroneggia il movimento dei bit.

Perché scorrere o ruotare i bit?

Le operazioni di scorrimento (Shift) e rotazione (Rotate) permettono di spostare i bit di una parola verso sinistra o verso destra. Nell'industria, sono utilizzate per estrarre informazioni precise da un telegramma di comunicazione, creare registri a scorrimento per il tracciamento dei pezzi su convogliatore, o eseguire moltiplicazioni/divisioni per potenze di 2 in modo estremamente performante.

La differenza principale risiede nel trattamento dei bit 'uscenti': mentre lo scorrimento (Shift) li elimina e li sostituisce con zeri, la rotazione (Rotate) li reinserisce dall'altro lato della parola, creando un ciclo circolare continuo.

Scorrimento (Shift)

Movimento lineare con perdita di bit

SHL / SHR — Scorrimento Sinistra/Destra

SHL

Cosa fa

Sposta i bit verso sinistra (SHL) o verso destra (SHR) di un numero di posizioni definito dall'ingresso N. I bit che escono dal registro vengono persi, e i nuovi bit entranti sono impostati a 0.

Quando usarlo

Moltiplicazione rapida per 2 (SHL), divisione per 2 (SHR), o isolamento di un byte specifico in una parola a 32 bit.

Consigli Pro

Scorrere un intero di 1 bit verso sinistra equivale a moltiplicarlo per 2 senza usare l'unità di calcolo matematico.

Per i tipi con segno (Int, DInt), SHR spesso conserva il bit di segno (scorrimento aritmetico).

Se N è maggiore della dimensione della parola (es: N=20 per un WORD), il risultato sarà 0.

Rotazione (Rotate)

Movimento circolare senza perdita

ROL / ROR — Rotazione Sinistra/Destra

ROL

Cosa fa

Ruota i bit in modo circolare. Il bit che esce da un lato (es: a sinistra per ROL) rientra immediatamente dall'altro lato (a destra). Nessun dato viene perso.

Quando usarlo

Creazione di pattern luminosi rotanti, crittografia semplice dei dati o gestione di buffer circolari (FIFO).

Consigli Pro

Ideale per alternare le priorità in un gruppo di pompe o motori.

A differenza dello scorrimento, una rotazione completa (es: 16 bit per un WORD) restituisce il valore iniziale.

Usa ROL/ROR per riorganizzare l'ordine dei byte (Endianness) negli scambi dati.

Shift vs Rotate: Il confronto

Capire l'impatto sui tuoi dati

ProprietàScorrimento (SHL/SHR)Rotazione (ROL/ROR)
StrutturaLineareCircolare
Bit uscentiEliminati (Persi)Reinseriti all'opposto
Bit entrantiSempre 0Bit uscenti riciclati
Uso MatematicoMoltiplicazione / DivisionePermutazione di bit
Esempio realeTracciamento pezzo (Convogliatore)Sotto-sequenziatore / Luci
RischioSvuotamento del registroNessuno (dati preservati)

Domande Frequenti

Perché usare SHL invece di una moltiplicazione per 2?

L'istruzione SHL viene eseguita molto più velocemente dal processore del PLC rispetto a un'operazione MUL, poiché lavora direttamente sul registro senza passare per l'ALU complessa.

Come creare un registro a scorrimento per un convogliatore?

Usa SHR ad ogni impulso di un encoder. Se un pezzo viene rilevato all'ingresso, forza il bit 0 a 1. Scorrendo la parola, tracci la posizione del pezzo bit per bit.

Qual è l'impatto del tipo di dati (Byte, Word, DWord)?

L'istruzione si adatta alla dimensione. Un ROR su un Byte farà riapparire il bit 7 in posizione 0 dopo 1 scorrimento. Su un Word, sarà il bit 15 a tornare a 0.

Si possono scorrere variabili in SCL?

Sì, tramite le funzioni SHL(IN:=var, N:=n) o usando gli operatori bitwise standard se la tua versione di TIA Portal lo consente.

Ottimizza le tue manipolazioni binarie

Hai bisogno di isolare dei bit o creare un sequenziatore complesso? T-IA Connect genera le tue reti di scorrimento e rotazione in un clic.