INT,DINT,REAL in einem Array of Byte 0..512 speichern und Rückwärts

Nilxbaurx

Level-1
Beiträge
7
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Abend zusammen,

für unser Techniker Projekt müssen wir wie oben schon im Titel beschrieben verschiedene Variablen mit unterschiedlichem Datentypen zwischen zwei CPUs austauschen, dafür gibt es einen vordefinierten Wertebereich von 512 Byte für Eingänge und 512 Byte für Ausgänge.
Das ganze wird zwischen einer PLCNext F 2152 und einer 1500 Siemens CPU realisiert.
Die PLCNext programmieren wir in ST, für die Siemens CPU können wir zwischen SCL,FUP und KOP auswählen.

Wie könnten wir z.B. eine INT Variable in eine Array of Byte aufteilen und dann wieder auf der anderen Seite richtig zusammen pflücken?

VG
Nils
 
Variable in Byte-Array speichern oder herausholen:
- in ST: per POINTER TO INT/DINT/REAL, oder mit MEMCPY, oder per UNION, oder Zerlegen/Zusammenbasteln mit Bits-Schieben SHL/SHR und bitweise OR
- in SCL: per AT, per Slice, oder Zerlegen/Zusammenbasteln mit Bits-Schieben SHL/SHR und bitweise OR

Vermutlich musst Du noch auf einer Seite die Byte-Reihenfolge vertauschen. Das würde ich auf der Siemens CPU machen, besonders wenn Du da mit "optimiertem" Speicher arbeiten willst/sollst, dann ist sowieso Basteln mit den Bytes angesagt.

Harald
 
Zurück
Oben