Brauche Tip ! 4 einzelne Byte in ein Dword

Norton

Level-1
Beiträge
109
Reaktionspunkte
7
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Kollegen,
sorry für die blöde frage aber ich komm momentan nicht auf die Syntax
Ich will 4 einzelne Byte in ein Dword (Dint) packen
kann mir jemeand die Syntax sagen ?


Danke
 
Ich geh mal einfach von CoDeSys 2.3 aus:

Code:
VAR
    myDword : DWORD;
    ptrByteArray : POINTER TO ARRAY[0..3] OF BYTE;
END_VAR

Code:
ptrByteArray := ADR(myDword);


ptrByteArray^[0] := 16#AA;
ptrByteArray^[1] := 16#BB;
ptrByteArray^[2] := 16#CC;
ptrByteArray^[3] := 16#DD;
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
eine Lösung ohne Pointer könnte so aussehen:
Code:
VAR
   myDword:DWORD;
   myByte1:BYTE:=16#AA;
   myByte2:BYTE:=16#BB;
   myByte3:BYTE:=16#CC;
   myByte4:BYTE:=16#DD;
END_VAR

(*Code Implentation*)
myDword:=myByte1; (*myDword hat jetzt den Wert 16#AA*)
myDword:=(SHL(myDword,8) OR myByte2); (*myDword hat jetzt den Wert 16#AABB*)
myDword:=(SHL(myDword,8) OR myByte3); (*myDword hat jetzt den Wert 16#AABBCC*)
myDword:=(SHL(myDword,8) OR myByte4); (*myDword hat jetzt den Wert 16#AABBCCDD*)

Falls deine Programmiersoftware den Datentyp (DUT) UNION unterstützt, könntest Du es auch damit realisieren.
 
Zurück
Oben