- Beiträge
- 5.695
- Reaktionspunkte
- 1.628
-> Hier kostenlos registrieren
Hi zusammen
Ich möchte einen Any an einen FC übergeben und ihn auf eine UDT struktur mappen. Das funktioniert in einem FB wunderbar aber nicht im FC.
Im FC nehme ich ja den Any vom INPUT und speichere ihn IM TEMP um eine AT Sicht draufzulegen.
so sieht mein FC aus.
Leider scheint der Pointer an LS_ZLV_GW irgendwie nicht richtig übergeben zu werden . Oder mein BLKMOV macht blödsinn.
Das kommt dabei raus:
an erster stelle sollte DB141.dbw112 stehen und das mit dem Blockmove kopiert werden nach LS_ZLV_GW_OUT
der 1. Wert im DBW112 hat 100 die anderen 0 bis dbw 126
mfG René
Ich möchte einen Any an einen FC übergeben und ihn auf eine UDT struktur mappen. Das funktioniert in einem FB wunderbar aber nicht im FC.
Im FC nehme ich ja den Any vom INPUT und speichere ihn IM TEMP um eine AT Sicht draufzulegen.
so sieht mein FC aus.
Code:
VAR_INPUT [COLOR=#ff0000]LS_ZLV_GW [/COLOR]: ANY;// Hier wird das Erste Wort aus dem LS DB aufgelegt
END_VAR
VAR_OUTPUT
LS_ZLV_GW_OUT : LS_ZLV_GW;
END_VAR
VAR_TEMP
[COLOR=#ff0000]tLS_ZLV_GW [/COLOR]: ANY; // hier wird der Pointer für die Lokaldaten gespeichert um den Any draufzulegen
pLS_ZLV_GW AT tLS_ZLV_GW : ANY_POINTER;
para : LS_ZLV_GW; // temporäre Variablen vom UDT Typ
Ret : INT;
END_VAR
(*Pointer auf UDT schreiben zum arbeiten*) // Ventilator allgemein
[COLOR=#ff0000]tLS_ZLV_GW := LS_ZLV_GW[/COLOR]; // Pointer aus schnittstelle in Temporärbereich holen.
pLS_ZLV_GW.Bereichstyp := 2; // Typ des Bereichs soll Byte sein (INT = 2)
pLS_ZLV_GW.Anzahl_Werte := 42; // Länge des Pointers weil wir einen Any ohne Länge angeben wollen
// Muss so lange sein wie der UDT der angezeigt werden soll.
Ret := BLKMOV(SRCBLK := pLS_ZLV_GW ,DSTBLK := para); // Kopieren in die Temporäre Variable.
Leider scheint der Pointer an LS_ZLV_GW irgendwie nicht richtig übergeben zu werden . Oder mein BLKMOV macht blödsinn.
Das kommt dabei raus:

an erster stelle sollte DB141.dbw112 stehen und das mit dem Blockmove kopiert werden nach LS_ZLV_GW_OUT
der 1. Wert im DBW112 hat 100 die anderen 0 bis dbw 126
mfG René