WriteDataToFileRegisterBank

Daten in File-Registerbank 1 oder 2 schreiben

Der Befehl entnimmt die Anzahl der Worte, angegeben durch DataNumberOfWords, aus DataStartAddress und schreibt sie in die File-Registerbank 1 oder 2, angegeben durch BankNumber beginnend mit BankOffset.

Parameter

Eingang

BankNumber (INT)

Gibt die Banknummer an

BankOffset (INT)

Gibt den Offset der Banknummer an

DataStartAddress (WORD, INT, UINT)

Gibt die Anfangsadresse der Daten an; diese wird in die File-Registerbank geschrieben

DataNumberOfWords (INT)

Gibt die Anzahl der Worte an, die in die File-Registerbank geschrieben werden

Anmerkungen

Mit dieser Funktion lassen sich keine Daten in den FL-Bereich (File Register Bank 0) schreiben, d.h. die Variable, die bei DataStartAddress verwendet wird, darf sich nicht im FL-Bereich befinden.

Beispiel

POE-Kopf

Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung dieser Funktion verwendet werden. Für alle Programmiersprachen wird der gleiche POE-Kopf verwendet.

	VAR
		awProcessDataToStore: ARRAY [0..10] OF INT:=[-111,111,222,333,444,555,666,777,888,999,1100];
		awProcessDataToGet: ARRAY [0..10] OF INT:=[11(0)];
		bStoreData: BOOL:=FALSE;
		bGetData: BOOL:=FALSE;
	END_VAR

POE-Rumpf

Wenn sich bStoreData von FALSE in TRUE ändert, wird die gesamte SDT-Variable awProcessDataToStore (ein SDT enthält 11 Elemente) mit den Daten aus der File-Registerbank 2 BankOffset 1000 gefüllt.

KOP-Rumpf

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 9 ;
        NETWORK_BODY
B(B_F,WriteDataToFileRegisterBank!,Instance,22,1,36,7,,?DBankNumber?DBankOffset?DDataStartAddress?DDataNumberOfWords);
B(B_VARIN,,2,20,3,22,5,);
B(B_VARIN,,1000,20,4,22,6,);
B(B_VARIN,,awProcessDataToStore[0],10,5,12,7,);
B(B_CONTACT,,bStoreData,5,2,7,4,R);
B(B_F,Adr_Of_Var_I!,Instance,12,5,19,7,,?D?C);
B(B_F,Size_Of_Var!,Instance,12,7,19,9,,?D?C);
L(1,3,5,3);
L(7,3,22,3);
L(19,6,19,8);
L(12,6,12,8);
L(1,0,1,9);
L(19,6,22,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST-Rumpf

if (DF(bStoreData)) then
    WriteDataToFileRegisterBank(BankNumber := 2, 
    BankOffset := 1000, 
    DataStartAddress := Adr_Of_Var(awProcessDataToStore), 
    DataNumberOfWords := Size_Of_Var(awProcessDataToStore));
end_if;

Letzte Änderung am: 2021-07-28Feedback zu dieser SeitePanasonic Hotline