TIA Eingänge Doppelwortweise aus Struct kopieren

M-Ott

Level-3
Beiträge
1.774
Reaktionspunkte
375
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
wir verwenden TIA V13 Upd 6 mit einer CPU1214 DC/DC/DC.
Ich habe in einem nicht optimierten Datenbaustein eine 32-Bit große Struct angelegt. Dort möchte ich gerne ein Eingangsdoppelwort hineinkopieren.
Gibt es irgendeine Möglichkeit, das ohne absolute Zugriffe auf den DB zu bewerkstelligen?
 
- einen FC anlegen (Standardzugriff) mit VAR_INPUT ein DWORD
- "AT" dieses DWORD eine Struct deklarieren mit genau der Struktur in dem DB (idealerweise als PLC-Datentyp (UDT), dann braucht nur einmal die Struktur deklariert werden)
- einen VAR_INOUT oder VAR_OUTPUT für die Zielstruktur
- die INPUT-Struct in den OUTPUT-Struct kopieren (z.B. MOVE)

- beim FC-CALL Dein Eingangsdoppelword und die DB-Struct verschalten

etwa so:
Code:
FUNCTION "FC_Copy_DW_to_Struct" : Void
VAR_INPUT
  IN_DW : DWORD;
  at_IN_DW AT IN_DW : "MyUDT";
END_VAR
VAR_INOUT
  OUT_Struct : "MyUDT";
END_VAR

BEGIN
  OUT_Struct := at_IN_DW;
Code:
CALL "FC_Copy_DW_to_Struct"
 IN_DW     :="MyDWord"
 OUT_Struct:="MyDB"."MyStruct"

Harald
 
Zurück
Oben