Erfahrungen habe ich danit keine, nur scheint aus Deiner Beschreibung hervorzugehen, daß die untere Hälfte Wort des 32 Wortes nicht richtig gelesen wird (immer 0 bis 65534 (sollte es vielleicht bis 65535 (0xFFFF) so sein?))
Mögliche Ursachen:
1. ABB verwendet eine andere numerische Anfangsadresse für DINT (unwahrscheinlich)- Abhilfe: von der zu lesenden Adresse 2 (byte) abziehen oder addieren.
2. ABB verwendet eine andere Anordnung des oberen/unteren 16-bit-Wortes (wahrscheinlicher) - Abhilfe:
Du bekommst den Wert z.B. in DB10
BD12
Code:
L DB10:DBW12 // eine Hälfte der 32-bit
T LW 0 // zum tauschen
LDB10:DBW14 //2.Hälfte
T DB10:DBW12 // in die 1. Hälfte der 32-bit
L LW 0
T DB10:DBW14 // in die 2. Hälfte der 32-bit
3. Du müstest beides kombinieren.
4. Du liest die 16-bit Hälften (16-bit Übertragung klappt ja!) Deines DINT einzeln in die vertauschten Hälften deines Ziel-DBD ein.
Bookmarks