Pomik in Rotacija
Manipulacija bitov
Optimizirajte obdelavo vaših registrov. Od ultrasunih matematičnih izračunov do kompleksnega upravljanja komunikacijskih protokolov, obvladajte gibanje bitov.
Zakaj pomikati ali rotirati bite?
Operacije pomika (Shift) in rotacije (Rotate) omogočajo premikanje bitov besede v levo ali desno. V industriji se uporabljajo za pridobivanje natančnih informacij iz komunikacijskega telegrama, ustvarjanje pomičnih registrov za sledenje kosov na transporterju ali izvajanje množenja/deljenja s potencami 2 z izjemno zmogljivostjo.
Glavna razlika je v obdelavi 'izhodnih' bitov: medtem ko jih pomik (Shift) zavrže in nadomesti z ničlami, jih rotacija (Rotate) ponovno vbrizga na drugo stran besede, kar ustvari neprekinjeno krožno zanko.
Pomik (Shift)
Linearno gibanje z izgubo bitov
SHL / SHR — Pomik Levo/Desno
SHLKaj počne
Premakne bite v levo (SHL) ali desno (SHR) za število mest, določeno z vhodom N. Biti, ki zapustijo register, se izgubijo, novi vhodni biti pa se nastavijo na 0.
Kdaj uporabiti
Hitro množenje z 2 (SHL), deljenje z 2 (SHR) ali izolacija določenega bajta v 32-bitni besedi.
Pro Nasveti
Pomik celega števila za 1 bit v levo je enakovreden množenju z 2 brez uporabe matematične enote.
Za označene tipe (Int, DInt) SHR pogosto ohrani predznakovni bit (aritmetični pomik).
Če je N večji od velikosti besede (npr. N=20 za WORD), bo rezultat 0.
Rotacija (Rotate)
Krožno gibanje brez izgube
ROL / ROR — Rotacija Levo/Desno
ROLKaj počne
Rotira bite krožno. Bit, ki zapusti eno stran (npr. levo za ROL), takoj vstopi na drugi strani (desno). Podatki se ne izgubijo.
Kdaj uporabiti
Ustvarjanje vrtečih se svetlobnih vzorcev, preprosto šifriranje podatkov ali upravljanje krožnih medpomnilnikov (FIFO).
Pro Nasveti
Idealno za izmenjavo prioritet v skupini črpalk ali motorjev.
Za razliko od pomika, popolna rotacija (npr. 16 bitov za WORD) vrne prvotno vrednost.
Uporabite ROL/ROR za spreminjanje vrstnega reda bajtov (Endianness) pri izmenjavi podatkov.
Shift vs Rotate: Primerjava
Razumevanje vpliva na vaše podatke
| Lastnost | Pomik (SHL/SHR) | Rotacija (ROL/ROR) |
|---|---|---|
| Struktura | Linearna | Krožna |
| Izhodni biti | Zavrnjeni (Izgubljeni) | Ponovno vbrizgani na nasprotni strani |
| Vhodni biti | Vedno 0 | Reciklirani izhodni biti |
| Matematična uporaba | Množenje / Deljenje | Permutacija bitov |
| Praktični primer | Sledenje kosa (Transporter) | Tekoči trak / Sekvencer |
| Tveganje | Praznjenje registra | Nobenega (podatki ohranjeni) |
Pogosta Vprašanja
Zakaj uporabiti SHL namesto množenja z 2?
Navodilo SHL procesor PLC-ja izvede veliko hitreje kot operacijo MUL, saj deluje neposredno na registru brez uporabe kompleksne ALU enote.
Kako ustvariti pomični register za transporter?
Uporabite SHR ob vsakem impulzu dajalnika. Če je na vhodu zaznan kos, prisilite bit 0 na 1. S pomikanjem besede sledite položaju kosa bit za bit.
Kakšen je vpliv podatkovnega tipa (Byte, Word, DWord)?
Navodilo se prilagodi velikosti. ROR na Byte-u bo bit 7 po 1 pomiku ponovno prikazal na položaju 0. Na Word-u se bo vrnil bit 15.
Ali lahko pomikamo spremenljivke v SCL?
Da, preko funkcij SHL(IN:=var, N:=n) ali z uporabo standardnih bitnih operatorjev, če vaša različica TIA Portala to dopušča.