Einzelne Bits löschen

otti121

Level-1
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo miteinander

Heute an meinem ersten SPS-Programmiertag, habe ich schon extrem viel über die SPS gelernt und bin verwundert wie weit ich schon gekommen bin.

Nun brauche ich jedoch eure Hilfe. Meine Eingangsklemme (RS 232) sendet mir ein DWort, jedoch benötige ich nicht alle Bits. Die ersten 8 Bits müssen gelöscht werden, danach folgen 16 bits welche ich benötige und den Rest kann man löschen.

Nun zu meiner Frage: Wie kann man dies realisieren?
Verwende momentan den ST, jedoch bin ich bei diesem auch noch kein Experte.

Ich danke für eure Mithilfe.
 
Stichwort "Ausmaskieren" - UND-Verknüpfen mit einer Bitmaske
oder die Bits so verschieben, daß sie in ein Word passen
Code:
DWord_Out := DWord_In AND 16#00FFFF00 ;  //höchste 8 Bit und niedrigste 8 Bit auf 0 setzen

Word_Out := SHR(DWord_In, 8) ;  //nur Bits 8 bis 23 in ein Word übernehmen

Oder empfängst Du in Wahrheit 4 Byte, von denen Du nur das zweite und dritte Byte übernehmen willst? Dann kopiere einfach nur das zweite und dritte Byte in Deine Zielvariable.

Harald
 
Zurück
Oben