Ich wollte das letzte Bit einer temporären Wort Variable in einem FC abfragen. Das kann man meines Wissens nur in dem man es mit seiner Absoluten adresse anspricht. Z.B.:
Meine Variable "Temp0 INT 0.0"
U L 1.7
= M 100.0
Es geht auch ohne absolute Adressierung und es geht auch ohne indirekte Adressierung. Welche der vielen möglichen Varianten man benutzt, sucht man sich anhand seiner Aufgabe heraus - das was halt verständlicher ist.
borromeus hat Dich zweimal gefragt, was Du eigentlich machen willst. Ich präzisiere die Frage:
Was verstehst Du unter "das letzte Bit einer Wort Variable"?
Warum deklarierst Du die Wort-Variable als INT?
Warum willst Du in einer
INT-Variable "das letzte Bit" abfragen?
Diese Operation passt nicht zum Datentyp INT.
Bist Du sicher, daß Du mit "das letzte Bit" das Bit.7 der WORD-/INT-Variable meinst oder meinst Du vielleicht das Bit.15 - das INT-Vorzeichen?
Wenn Dein Temp0 an Adresse LW 0 liegt, dann ist L 1.7 das Bit.7 und L 0.7 das Bit.15
Gibt es noch eine andere Möglichkeit als meine jetzige Variante?
Symbolisch saubere Möglichkeiten der Abfrage Bit.15 (INT-Vorzeichen) von INT- oder WORD-Variablen ohne indirekte Adressierung:
Code:
L #Temp0
SLW 1
U >0
= M 100.1
L #Temp0
UW W#16#8000
U >0
= M 100.2
L #Temp0
L 0
<I
= M 100.3
Abfrage Bit.7 ohne indirekte Adressierung:
Code:
L #Temp0
SRW 8
U >0
= M 100.5
L #Temp0
UW W#16#80
U >0
= M 100.6
Harald