Ordlogik-operationer
Binärt & Val
Manipulera data i hjärtat av registren. Från bit-för-bit binär maskering till komplex multiplexering — optimera bearbetningen av dina dataord.
Vad är ordlogik-operationer i TIA Portal?
Ordlogik-operationer gör det möjligt att utföra booleska beräkningar på alla bitar i ett ord (Word, DWord, LWord). De är nödvändiga för bitmaskering, jämförelse av binära mönster eller förenklad hantering av grupperade signaler.
Detta avsnitt innehåller även kraftfulla valfunktioner som SEL och MUX, som gör det möjligt att dynamiskt välja ett värde bland flera baserat på ett villkor eller ett index, samt verktyg för kodning (ENCO) och avkodning (DECO) för statushantering.
Bitvis logik
Boolesk bearbetning på Word och DWord
AND / OR / XOR — Binära operationer
ANDVad den gör
Utför en logisk operation (AND, OR, Exklusiv OR) på varje motsvarande bit mellan två eller flera ingångar. Resultatet ges i ett ord av samma storlek.
När den ska användas
Maskera specifika bitar (AND med en mask), kombinera larm eller detektera statusförändringar bit för bit.
Proffstips
AND är perfekt för att 'stänga av' bitar, OR för att 'slå på' dem.
XOR är idealisk för att jämföra två ord och identifiera vilka bitar som skiljer sig.
Du kan lägga till extra ingångar i blocket genom att klicka på den gula ikonen.
INVERT — Ettkomplement
INVVad den gör
Inverterar statusen för varje bit i ingångsordet (0 blir 1, 1 blir 0).
När den ska användas
Invertera en grupp givarsignaler eller förbereda specifika binära beräkningar.
Proffstips
Motsvarar NOT-operatorn i klassisk programmering men tillämpad på hela ordet.
Mycket användbart för kommunikation med tredjepartsutrustning med inverterad logik.
Var försiktig så att du inte förväxlar det med tvåkomplement (NEG).
Val & Multiplexering
Dynamisk värdeomdirigering
SEL — Binärt val
SELVad den gör
Väljer en av två ingångar (IN0 eller IN1) baserat på statusen för en binär ingång G (G=0 -> IN0, G=1 -> IN1).
När den ska användas
Välja mellan ett manuellt och ett automatiskt börvärde, eller växla mellan två temperaturtrösklar.
Proffstips
Grafisk motsvarighet till den ternära operatorn (villkor ? a : b).
Mer kompakt än ett IF-block eller två villkorliga överföringsnätverk.
Fungerar med nästan alla datatyper (Int, Real, Time...).
MUX / DEMUX — Multiplexorer
MUXVad de gör
MUX väljer en ingång bland N baserat på ett index K. DEMUX dirigerar en ingång till en av N utgångar baserat på index K.
När den ska användas
Recepthantering (val via index), dynamisk HMI-visning eller datadirigering till olika arbetsstationer.
Proffstips
Index K börjar på 0. Om K=0 väljs IN0.
Använd ELSE-ingången på MUX för att definiera ett standardvärde om indexet är utanför intervallet.
DEMUX är mycket kraftfullt för att distribuera en mätning till olika historikloggar.
Kodning & Avkodning
Konvertering mellan index och bitposition
DECO — Avkodning
DECOVad den gör
Aktiverar den bit vars nummer motsvarar ingångsvärdet. Alla andra bitar i utgångsordet sätts till 0.
När den ska användas
Konvertera ett stegnummer till en binär signal för att styra en specifik utgång.
Proffstips
Om ingången är 3, kommer bit 3 (den 4:e) i utgångsordet att vara 1.
Gör det enkelt att gå från ett heltal till en bitmask.
Idealisk för att styra signaltorn eller statusindikatorer.
ENCO — Kodning
ENCOVad den gör
Returnerar numret på den minst signifikanta biten (LSB) som är i tillstånd 1 i ingångsordet.
När den ska användas
Identifiera vilket fel som uppstod i ett larmord för att visa motsvarande meddelande.
Proffstips
Om ingångsordet innehåller 2#0000_1000, returnerar ENCO 3.
Omvänd operation till DECO.
Mycket användbart för att omvandla signaler från diskreta positionsgivare till ett numeriskt värde.
Ordbearbetning vs Individuell bit
Varför arbeta på hela ordet?
| Scenario | Ordlogik-metod | Fördel |
|---|---|---|
| Tvinga 8 utgångar till 0 | MOVE 0 -> Word | 1 nätverk vs 8 kontakter |
| Maskera en byte | AND 16#00FF | Kirurgisk precision |
| Invertera 16 signaler | INVERT | Exekveringshastighet |
| Välj 1 värde / 10 | MUX | Maximal läsbarhet |
| Dirigera en mätning | DEMUX | Flexibel logik |
| Larmprioritet | ENCO | Omedelbar diagnostik |
Vanliga frågor
Vad är skillnaden mellan MUX och en Array?
MUX är en hårdkodad instruktion för ett fåtal värden (ofta < 10). För hundratals värden, använd en Array med dynamisk indexering [i] i SCL.
Kan jag utföra AND på REAL-typer?
Nej, bitvisa logikoperationer (AND, OR, XOR) är endast tillåtna på binära typer (Byte, Word, DWord, LWord).
Hur fungerar DEMUX-indexet?
K-ingången definierar till vilken utgång IN-värdet kopieras. Om K=2 kopieras IN till OUT2. Alla andra utgångar förblir vid sitt tidigare värde eller 0 beroende på konfiguration.
Ändrar INVERT tecknet på ett tal?
Nej, INVERT flippar bitar. För att ändra tecken (tvåkomplement), använd instruktionen NEG (Matematik) eller multiplicera med -1.