BitMaske mit Doppelword oder HEX erstellen

carepicha

Level-1
Beiträge
49
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Liebe Forum Mitglieder,

Ich möchte aus einem externen Teilnehmer die Fehler über eine Bit-Maske auslesen.

Mein Ansatz scheint nicht zu funktionieren, kann mir ev. jemand erklären weshalb?

Code:
bTest:= ((DWORD_TO_BYTE(dwVision)) AND (DWORD_TO_BYTE(dwVisionErrorCode))) = (DWORD_TO_BYTE(dwVisionErrorCode));



In einem zweiten Schritt möchte ich eigentlich direkt auf auf eine Hex Konstante vergleichen
Zum Beispiel so;
Code:
bTest:= (DWORD_TO_BYTE(dwVision) AND 16x0010) = 16x0010;

Danke schon mal vorab für Eure Unterstützung
 
Kommt Zeit kommt Rat......

Code:
bTest:=(dwVision AND 16#100) = 16#100;

Warum einfach wenn auch kompliziert geht.....;-
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also bei Konstanten kenn ich das nur mit der Raute also 16#10.
DWORD_TO_BYTE nimmt ja dann das niederwertigste Byte. Willst du auch das haben?

Edit: man sollte sich mit dem Antworten auch beeilen. :rolleyes:
 
Zuletzt bearbeitet:
Dass mit der Konstante ist gut. Genau das brauche ich

Kannst du DWORD_TO_BYTE genauer erläutern?
Was meinst du mit dem niederwertigstem Bit?

Danke und Gruss
 
Z.B. aus 16#EEFFABCD wird dann 16#CD. D.h. wenn du ein bestimmtes Byte haben willst musst du vorher shiften oder mit .B0, .B1, .B2 oder .B3 das benennen.
 
Also so?

Code:
[COLOR=#333333]bTest:= (DWORD_TO_BYTE(dwVision) AND 16x0010) <> 0 [/COLOR]

Gibt das immer das gleiche wie?
Code:
[COLOR=#333333]bTest:= (DWORD_TO_BYTE(dwVision) AND 16x0010) = 16x0010;[/COLOR]

Gruss
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das DWORD_TO_BYTE kannst Du weglassen, denn mit der UND-Verknüpfung blendest Du eh schon alle anderen 31 Bit aus!
Außerdem geh# ich mal davon aus, das die Kollegen Recht haben und auch bei CoDeSys die Raute # statt des x zur Trennung des Zahlensystems und des Wertes benutzt wird. Und führende Nullen kann man sich wohl in den meisten Zahlensystemen sparen:

Code:
btest:= (dwVision AND 16#10) <> 0
 
Zuletzt bearbeitet:
Zurück
Oben