TIA Temporären VARIANT Zeiger vorbelegen

neibeck

Level-2
Beiträge
168
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich arbeite das erste Mal mit VARIANT, hab aber durchaus Erfahrung mit dem Aufbau des Any-Zeigers ;)
Ich will hier in einem FB aus SCL einen temporären VARIANT mittels MOVE_BLK_VARIANT durch einen Eingangs-Variant belegen. Jedoch bekomm ich beim Übersetzen den Fehler "Ungültiger Datentyp". Ich hab dann versucht, den Variant mittels P#M0.0 INT 1 vorzubelegen, jedoch kein Erfolg. Was verstehe ich hier nicht?

Code:
 //Preset variant (Invalid value, will be overwritten below anyway
                //#ActualDecadesVariant := P#M0.0 INT 1;
                
                    #tmp_result := MOVE_BLK_VARIANT(SRC := #Decades_Line1, COUNT := 1, SRC_INDEX := #Counter1, DEST_INDEX := 0, DEST => #ActualDecadesVariant);
                    
                IF #Actual_Line = 1 THEN
                    
                    #tmp_result := MOVE_BLK_VARIANT(SRC := #Decades_Line2, COUNT := 1, SRC_INDEX := #Counter1, DEST_INDEX := 0, DEST => #ActualDecadesVariant);
                    
                ELSIF #Actual_Line = 2 THEN
                    
                    #tmp_result := MOVE_BLK_VARIANT(SRC := #Decades_Line3, COUNT := 1, SRC_INDEX := #Counter1, DEST_INDEX := 0, DEST => #ActualDecadesVariant);
                    
                ELSIF #Actual_Line = 3 THEN
                    
                    #tmp_result := MOVE_BLK_VARIANT(SRC := #Decades_Line4, COUNT := 1, SRC_INDEX := #Counter1, DEST_INDEX := 0, DEST => #ActualDecadesVariant);
                    
                END_IF;

Gruß,

Neibeck

EDIT: Ich denke ich werde das Ganze wieder per Any-Zeiger lösen. Meine Intention war eigentlich, dass ich den Datentyp im Zeiger variabel gestalten könnte, jedoch scheint das nicht so ganz nach meiner Idee nach hinzuhaun. Was ich derzeit nicht ganz verstehe ist, wozu es überhaupt möglich ist (scheinbar) einen VARIANT als temp zu deklarieren. Laut Hans Berger - "Automatisieren mit SIMATIC S7-1500" ist ein solcher nämlich nur als Input, Output oder InOut zulässig.
 
Zuletzt bearbeitet:
Verwendest du TIA V15?
Es ist möglich per "VariantPut" dein Zeiger vorzubelegen. "MOVE_BLK_VARIANT" wird verwendet wenn du verschiedene Bereiche umkopieren willst.
 
Zurück
Oben