TIA Portal Instructies

Verschuiving en Rotatie
Bitmanipulatie

Optimaliseer de verwerking van uw registers. Van ultrasnelle wiskundige berekeningen tot complex beheer van communicatieprotocollen, beheers de beweging van bits.

Waarom bits verschuiven of roteren?

Verschuivings- (Shift) en rotatiebewerkingen (Rotate) maken het mogelijk om bits van een woord naar links of rechts te verplaatsen. In de industrie worden ze gebruikt om nauwkeurige informatie uit een communicatietelegram te extraheren, schuifregisters te creëren voor het volgen van stukken op een transportband, of vermenigvuldigingen/delingen door machten van 2 extreem efficiënt uit te voeren.

Het belangrijkste verschil ligt in de behandeling van 'uitgaande' bits: terwijl Shift ze verwijdert en vervangt door nullen, voert Rotate ze terug in aan de andere kant van het woord, waardoor een continue cirkelvormige lus ontstaat.

Verschuiving (Shift)

Lineaire beweging met bitverlies

SHL / SHR — Verschuiving Links/Rechts

SHL

Wat het doet

Verschuift de bits naar links (SHL) of rechts (SHR) met een aantal posities gedefinieerd door ingang N. Bits die het register verlaten gaan verloren, en nieuwe inkomende bits worden op 0 gezet.

Wanneer te gebruiken

Snelle vermenigvuldiging met 2 (SHL), deling door 2 (SHR), of het isoleren van een specifieke byte in een 32-bit woord.

Pro Tips

Een integer 1 bit naar links verschuiven is gelijk aan vermenigvuldigen met 2 zonder de wiskundige eenheid te gebruiken.

Voor getekende types (Int, DInt) behoudt SHR vaak de tekenbit (rekenkundige verschuiving).

Als N groter is dan de woordgrootte (bijv. N=20 voor een WORD), is het resultaat 0.

Rotatie (Rotate)

Cirkelvormige beweging zonder verlies

ROL / ROR — Rotatie Links/Rechts

ROL

Wat het doet

Roteert bits cirkelvormig. De bit die er aan de ene kant uitgaat (bijv. links voor ROL) komt er aan de andere kant (rechts) onmiddellijk weer in. Er gaan geen gegevens verloren.

Wanneer te gebruiken

Creëren van roterende lichtpatronen, eenvoudige gegevensversleuteling of beheer van ringbuffers (FIFO).

Pro Tips

Ideaal voor het afwisselen van prioriteiten in een groep pompen of motoren.

In tegenstelling tot verschuiven geeft een volledige rotatie (bijv. 16 bits voor een WORD) de oorspronkelijke waarde terug.

Gebruik ROL/ROR om de byte-volgorde (Endianness) aan te passen bij gegevensuitwisseling.

Shift vs Rotate: De vergelijking

De impact op uw gegevens begrijpen

EigenschapVerschuiving (SHL/SHR)Rotatie (ROL/ROR)
StructuurLineairCirkelvormig
Uitgaande bitsVerwijderd (Verloren)Teruggevoerd aan overzijde
Inkomende bitsAltijd 0Gerecycleerde uitgaande bits
Wiskundig gebruikVermenigvuldiging / DelingBit-permutatie
PraktijkvoorbeeldStuk-tracking (Transportband)Looplicht / Sequencer
RisicoRegister leegmakenGeen (gegevens behouden)

Veelgestelde Vragen

Waarom SHL gebruiken in plaats van vermenigvuldigen met 2?

De SHL-instructie wordt veel sneller uitgevoerd door de PLC-processor dan een MUL-bewerking, omdat deze direct op het register werkt zonder de complexe ALU te passeren.

Hoe maak ik een schuifregister voor een transportband?

Gebruik SHR bij elke puls van een encoder. Als er een stuk wordt gedetecteerd bij de ingang, dwing bit 0 naar 1. Door het woord te verschuiven, volgt u de positie van het stuk bit voor bit.

Wat is de impact van het datatype (Byte, Word, DWord)?

De instructie past zich aan de grootte aan. Een ROR op een Byte laat bit 7 na 1 verschuiving weer verschijnen op positie 0. Bij een Word keert bit 15 terug naar 0.

Kunnen variabelen in SCL worden verschoven?

Ja, via de functies SHL(IN:=var, N:=n) of door standaard bitwise operators te gebruiken als uw TIA Portal versie dit toestaat.

Optimaliseer uw binaire manipulaties

Bits isoleren of een complexe sequencer maken? T-IA Connect genereert direct uw verschuivings- en rotatienetwerken.