kp400
Level-1
- Beiträge
- 76
- Reaktionspunkte
- 16
-> Hier kostenlos registrieren
Hallo,
ich bei einem FB (SCL) als InOut eine CFG-Struktur (als UDT), in welcher ein Array of Struct vorhanden ist. Nun möchte ich die Anzahl der Arrayelemente ermitteln. Ich habe es zwar bereits geschafft, indem ich beim FB als InOut ein Variant anlege und dann per CountOfElements(CFG) die Elementanzahl auslese. Jedoch möchte ich als InOut eben nicht einen Variant Datentypen, sondern meinen UDT angeben.
Der CFG-UDT wird in einem Global-DB aufgerufen, diesen Global-DB habe ich dann auf das Variant InOut gelegt wodurch ich die Elementanzahl ermitteln konnte. Leider scheitert das wenn ich das InOut mit diesem UDT definiere und dann per CountOfElements auslesen probiere.
Bei dem folgenden Code kommt immer die Fehlermeldung beim Übersetzen, dass "_arr_variant" nicht initialisiert ist (_arr_variant ist eine TEMP Variable) => jedoch ist diese ja initialisiert, da sie am DST anliegt oder?
CFG_IO ist der InOut Parameter mit Datentyp UDT
VariantPut(SRC:=#CFG_IO,
DST:=#_arr_variant);
#_arrelements := UDINT_TO_INT(CountOfElements(#_arr_variant));
Danke für eure Hilfe!
ich bei einem FB (SCL) als InOut eine CFG-Struktur (als UDT), in welcher ein Array of Struct vorhanden ist. Nun möchte ich die Anzahl der Arrayelemente ermitteln. Ich habe es zwar bereits geschafft, indem ich beim FB als InOut ein Variant anlege und dann per CountOfElements(CFG) die Elementanzahl auslese. Jedoch möchte ich als InOut eben nicht einen Variant Datentypen, sondern meinen UDT angeben.
Der CFG-UDT wird in einem Global-DB aufgerufen, diesen Global-DB habe ich dann auf das Variant InOut gelegt wodurch ich die Elementanzahl ermitteln konnte. Leider scheitert das wenn ich das InOut mit diesem UDT definiere und dann per CountOfElements auslesen probiere.
Bei dem folgenden Code kommt immer die Fehlermeldung beim Übersetzen, dass "_arr_variant" nicht initialisiert ist (_arr_variant ist eine TEMP Variable) => jedoch ist diese ja initialisiert, da sie am DST anliegt oder?
CFG_IO ist der InOut Parameter mit Datentyp UDT
VariantPut(SRC:=#CFG_IO,
DST:=#_arr_variant);
#_arrelements := UDINT_TO_INT(CountOfElements(#_arr_variant));
Danke für eure Hilfe!