Step 7 Bereich aus einem DB in einen anderen DB kopieren mit SCL

JuSa

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

ich bin ein Anfänger was SCL angeht und brauche eure Hilfe.
Ich möchte eine errechnete DB Adresse in einen anderen DB umkopieren und das mt SCL.
Wie das in AWL funktioniert verstehe ich.
Hier das AWL Programm dazu:
Aber wie setze ich das ganze in SCL um?

Vielen Dank im Vorraus!

//Pointer vorbereiten
L #ProgrammIndex
L #AbstandDatensatz // Abstand zwischen den Parametern
*I
L #Quell_DB_Anfang // Erster Eintrag beginn
+I
SLW 3
T #AR1Buffer
L #Ziel_DB_Anfang // Anfang im Visu DB
SLW 3
T #AR2Buffer

L #AnzahlParameter // Kopieren der Parameter mittels Schleife
SP1: T #Zaehler

LAR1 P#0.0
LAR2 P#0.0

L #Zaehler
L 1
-I
SLW 3
L #AR1Buffer
+I
+AR1

L #Zaehler
L 1
-I
SLW 3
L #AR2Buffer
+I
+AR2

AUF DB [#DB_Quelle]
L DBB [AR1,P#0.0]
AUF DB [#DB_Ziel]
T DBB [AR2,P#0.0]

L #Zaehler
LOOP SP1 // SPrung 1
 
OK habe es gelöst :) !

FUNCTION_BLOCK FB101

TITLE = 'FB_Parameterverwaltung'

VAR_INPUT
Programm_Index :INT;
Quell_DB :BLOCK_DB;
Quell_DB_Anfang :INT;
Ziel_DB :BLOCK_DB;
Ziel_DB_Anfang :INT;
Anzahl_Parameter :INT;
Abstand_Datensatz :INT;
Start :BOOL;
END_VAR

VAR
Programm_Buffer :INT;
Anfang_Quell_DB :INT;
Anfang_Ziel_DB :INT;
i :INT;
END_VAR

BEGIN

IF ( Programm_Index <> Programm_Buffer ) OR
( Start = TRUE )
THEN
Programm_Buffer := Programm_Index;
Anfang_Quell_DB:= (Programm_Index * Abstand_Datensatz) + Quell_DB_Anfang;
Anfang_Ziel_DB:= Ziel_DB_Anfang;

i:=0;
FOR i:=1 TO Anzahl_Parameter BY 1 DO
Ziel_DB.DB[Anfang_Ziel_DB]:=Quell_DB.DB[Anfang_Quell_DB];
Anfang_Ziel_DB:=Anfang_Ziel_DB + 1;
Anfang_Quell_DB:= Anfang_Quell_DB + 1;
END_FOR;
END_IF;

END_FUNCTION_BLOCK

 
Zuletzt bearbeitet:
Zurück
Oben