ReadDataFromFileRegisterBank파일 레지스터 뱅크 1 또는 2에서 데이터 읽기
이 명령은 BankOffset으로 시작하는 BankNumber에서 지정한 대로 파일 레지스터 뱅크 1 또는 2의 DataNumberOfWords에서 지정한 워드 수를 읽고 DataStartAddress에 씁니다.

입력
뱅크 번호 지정
뱅크 번호 오프셋 지정
파일 레지스터 뱅크에서 읽을 워드 수 단위
출력
파일 레지스터 뱅크에서 읽은 데이터의 시작 어드레스 지정
이 함수를 사용하여 FL 영역(파일 레지스터 뱅크 0)에 있는 데이터를 읽을 수 없습니다. 즉, DataStartAddress에 적용된 변수는 FL 영역에 위치해서는 안 됩니다.

이 펑션 프로그램 시 사용한 모든 입력과 출력 변수는 POU 헤더에서 선언되었습니다. 모든 프로그래밍 언어에 같은 POU 헤더를 사용합니다.

_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

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
if (DF(bGetData)) then
ReadDataFromFileRegisterBank(BankNumber := 2,
BankOffset := 1000,
DataNumberOfWords := Size_Of_Var(awProcessDataToGet),
DataStartAddress => Adr_Of_Var(awProcessDataToGet));
end_if;