ReadDataFromFileRegisterBank

Daten aus File-Registerbank 1 oder 2 lesen

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

Parameter

Eingang

BankNumber (INT)

Gibt die Banknummer an

BankOffset (INT)

Gibt den Offset der Banknummer an

DataNumberOfWords (INT)

Anzahl der Worte, die aus der File-Registerbank gelesen werden

Ausgang

DataStartAddress (WORD, INT, UINT)

Gibt die Anfangsadresse der Daten an; diese wird aus der File-Registerbank gelesen

Anmerkungen

Mit dieser Funktion lassen sich keine Daten im FL-Bereich (File Register Bank 0) lesen, 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
	VAR_OUTPUT
		p32ActualPosition: POINTER32;
			(*shows the area, offset and size where the data of the IC card is stored*)
	END_VAR
	VAR
	END_VAR
	VAR_INPUT
		p32Pointer: POINTER32;
			(*area, offset and size of data values*)
		diPosition: DINT:=0;
			(*beginning position from which the data should be read from the IC card*)
	END_VAR
	VAR_OUTPUT
		p32ActualPosition: POINTER32;
			(*shows the area, offset and size where the data of the IC card is stored*)
	END_VAR
	VAR
	END_VAR

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_VARIN,,2,20,3,22,5,);
B(B_VARIN,,1000,20,4,22,6,);
B(B_VARIN,,awProcessDataToGet[0],10,5,12,7,);
B(B_CONTACT,,bGetData,5,2,7,4,R);
B(B_F,Size_Of_Var!,Instance,12,5,19,7,,?D?C);
B(B_F,E_ReadFromIcCard!,Instance,22,1,37,7,,?DEN?DBankNumber?DBankOffset?DDataNumberOfWords?AENO?CDataStartAddress);
B(B_F,Adr_Of_Var_O!,Instance,37,3,45,5,,?D?C);
B(B_VAROUT,,awProcessDataToGet,45,3,47,5,);
L(1,3,5,3);
L(19,6,22,6);
L(1,0,1,9);
L(7,3,22,3);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST-Rumpf

if (DF(bGetData)) then
    ReadDataFromFileRegisterBank(BankNumber := 2, 
    BankOffset := 1000, 
    DataNumberOfWords := Size_Of_Var(awProcessDataToGet), 
    DataStartAddress => Adr_Of_Var(awProcessDataToGet));
end_if;

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