TIA Probleme MOBE_BLK (Daten von einem DB in einen anderen DB übertragen)

Kreidler_Lucke

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

ich würde gerne im TIA_V16 in der Sprache SCL per "MOVE_BLK" Daten von einem DB in einen anderen DB übertragen. Ich habe die Quell und Zielbereiche soweit auch definiert und verknüpft.
Es handelt sich jeweils um ein Array of Struct (DB1), in welches ich in ein anderes Array of Struct (DB60) übertragen möchte. Jedoch erscheint die Fehlermeldung "Parameter der Funktion oder des Funktionsbausteins stimmen nicht mit den übergebenen Formalparametern überein. Hängt das Problem damit zusammen dass es sich um optimierte Bausteine handelt?

Das Ziel ist es jeweils 15 Nockendaten in 4 verschiedene Arrays zu packen. Also ich will quasi in Array 1 - 4 jeweils 15 unterschiedliche Nockendaten hinterlegen.
Diese 4 verschiedenen Nockendaten sollen dann später über ein HMI ausgewählt werden können.



Ich bin für jede Idee und jeden Tipp dankbar :) Ein kleines Beispiel wäre ideal.

Mit freundlichen Grüßen
 
Zuletzt bearbeitet:
Ob MOVE_BLK auch optimierten Speicher kann weiß ich nicht, aber in TIA SCL kann man gleiche Strukturen einfach per Zuweisung kopieren
Code:
Ziel := Quelle;
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Move_Blk kann nur array eines Basisdatentypen kopieren. Da du aber ein Array of Struct kopieren willst, wäre Move_BLK_Variant der Baustein. Ob Struct gehen oder nur UDT weiss ich nicht.

Code:
#status := MOVE_BLK_VARIANT(SRC := "Signal_Web_1".Sig_Web, // Array von dem Kopiert werden soll
                            COUNT := 3, // wieviele Members vom Array
                            SRC_INDEX := 0, // Ab welchem Platz
                            DEST_INDEX := 10, // wohin im Zielarray
                            DEST => "Signal_Web_2".Sig_Web); // Das Zielarray in das reinkopiert werden soll


// Wenn komplettes Array kopiert werden soll.
#status := MOVE_BLK_VARIANT(SRC := "Signal_Web_1".Sig_Web, // Array von dem Kopiert werden soll
                            COUNT := 20, // Arraygrösse
                            SRC_INDEX := 0, // Ab welchem Platz
                            DEST_INDEX := 0, // wohin im Zielarray
                            DEST => "Signal_Web_2".Sig_Web); // Das Zielarray in das reinkopiert werden soll
 
Zuletzt bearbeitet:
Zurück
Oben