- Beiträge
- 5.693
- Reaktionspunkte
- 1.623
-> Hier kostenlos registrieren
Hm was mir grad aufgefallen ist
DB_OUT_Byte ist ein INT der eigentlich das entsprechende Byte angeben soll.
t_Eingang.DBNr ist ein Wort mit AT auf Pointer
In Step7 wird das klaglos übersetzt und funktioniert wie gewünscht.
In TIA wird dann aber das Rote als ungültiger Array angemotzt und lässt sich zumindest übersetzen wenn ich die eckigen Klammern gegen runde ersetze. Funktionieren tuts aber natürlich trotzdem nicht. Das Byte wird also nicht auf das entsprechend adressierte Byte im DB kopiert.
Jetzt frage ich mich, ist das nur Glück dass das bisher bei Step7 funktioniert hat und war schon immer falsch? Oder was ist hier los?
mfg René
Code:
WORD_TO_BLOCK_DB(t_Eingang.DBNr).[COLOR=#ff0000]DB[/COLOR][DB_OUT_Byte] := WORD_TO_BYTE(SHR(IN := (COM1.Reg_2 XOR COM1.Reg_4), N := 8));
DB_OUT_Byte ist ein INT der eigentlich das entsprechende Byte angeben soll.
t_Eingang.DBNr ist ein Wort mit AT auf Pointer
In Step7 wird das klaglos übersetzt und funktioniert wie gewünscht.
In TIA wird dann aber das Rote als ungültiger Array angemotzt und lässt sich zumindest übersetzen wenn ich die eckigen Klammern gegen runde ersetze. Funktionieren tuts aber natürlich trotzdem nicht. Das Byte wird also nicht auf das entsprechend adressierte Byte im DB kopiert.
Jetzt frage ich mich, ist das nur Glück dass das bisher bei Step7 funktioniert hat und war schon immer falsch? Oder was ist hier los?
mfg René