TIA Portal Instruktioner

Skift och Rotation
Bitmanipulering

Optimera din registerbearbetning. Från ultrasnabb matematisk beräkning till komplex hantering av kommunikationsprotokoll — bemästra bitrörelser.

Varför skifta eller rotera bitar?

Skift- (Shift) och rotationsoperationer (Rotate) gör det möjligt att flytta bitarna i ett ord åt vänster eller höger. Inom industrin används de för att extrahera exakt information från ett kommunikationstelegram, skapa skiftregister för att spåra delar på en transportör, eller utföra multiplikationer/divisioner med potenser av 2 med extrem prestanda.

Den största skillnaden ligger i hanteringen av 'utgående' bitar: medan skiftning (Shift) kastar bort dem och ersätter dem med nollor, matar rotation (Rotate) in dem igen på andra sidan av ordet, vilket skapar en kontinuerlig cirkulär loop.

Skift (Shift)

Linjär rörelse med bitförlust

SHL / SHR — Skift Vänster/Höger

SHL

Vad den gör

Flyttar bitarna åt vänster (SHL) eller höger (SHR) ett antal positioner som definieras av ingången N. Bitar som lämnar registret går förlorade, och nya inkommande bitar sätts till 0.

När den ska användas

Snabb multiplikation med 2 (SHL), division med 2 (SHR), eller isolering av en specifik byte i ett 32-bitars ord.

Proffstips

Att skifta ett heltal 1 bit åt vänster motsvarar att multiplicera det med 2 utan att använda den matematiska enheten.

För tecknade typer (Int, DInt) behåller SHR ofta teckenbiten (aritmetiskt skift).

Om N är större än ordstorleken (t.ex. N=20 för ett WORD), blir resultatet 0.

Rotation (Rotate)

Cirkulär rörelse utan förlust

ROL / ROR — Rotation Vänster/Höger

ROL

Vad den gör

Roterar bitarna cirkulärt. Biten som går ut på ena sidan (t.ex. vänster för ROL) kommer omedelbart in på den andra sidan (höger). Ingen data går förlorad.

När den ska användas

Skapa roterande ljusmönster, enkel datakryptering eller hantering av cirkulära buffertar (FIFO).

Proffstips

Idealisk för att växla prioriteringar i en grupp pumpar eller motorer.

Till skillnad från skiftning ger en fullständig rotation (t.ex. 16 bitar för ett WORD) tillbaka det ursprungliga värdet.

Använd ROL/ROR för att ändra byte-ordningen (Endianness) vid datautbyte.

Shift vs Rotate: Matchen

Förstå inverkan på din data

EgenskapSkift (SHL/SHR)Rotation (ROL/ROR)
StrukturLinjärCirkulär
Utgående bitarKastade (Förlorade)Återinförda på motsatt sida
Inkommande bitarAlltid 0Återanvända utgående bitar
Matematisk användningMultiplikation / DivisionBitpermutation
Praktiskt exempelDelspårning (Transportör)Ljusmönster / Sekvenserare
RiskTömning av registerIngen (data bevaras)

Vanliga frågor

Varför använda SHL istället för multiplikation med 2?

SHL-instruktionen utförs mycket snabbare av PLC-processorn än en MUL-operation eftersom den arbetar direkt på registret utan att gå via den komplexa ALU:n.

Hur skapar man ett skiftregister för en transportör?

Använd SHR vid varje pulsgivarimpuls. Om en del detekteras vid inloppet, tvinga bit 0 till 1. Genom att skifta ordet spårar du delens position bit för bit.

Vad är inverkan av datatypen (Byte, Word, DWord)?

Instruktionen anpassar sig till storleken. En ROR på en Byte gör att bit 7 återkommer på position 0 efter 1 skiftning. På ett Word kommer bit 15 tillbaka till 0.

Kan variabler skiftas i SCL?

Ja, via SHL(IN:=var, N:=n) funktioner eller genom att använda standard bitvisa operatorer om din TIA Portal-version tillåter det.

Automatisera dina binära manipulationer

Behöver du isolera bitar eller skapa en komplex sekvenserare? T-IA Connect genererar dina skift- och rotationsnätverk med ett klick.