WriteDataToFileRegisterBank

파일 레지스터 뱅크 1 또는 2에 데이터 쓰기

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

파라미터

입력

BankNumber (INT)

뱅크 번호 지정

BankOffset (INT)

뱅크 번호 오프셋 지정

DataStartAddress (WORD, INT, UINT)

파일 레지스터 뱅크에 작성할 데이터의 시작 어드레스 지정

DataNumberOfWords (INT)

파일 레지스터 뱅크에 작성할 워드 수 단위 지정

주석

이 함수를 사용하여 FL 영역(파일 레지스터 뱅크 0)에 데이터를 쓸 수 없습니다. 즉, DataStartAddress에 적용된 변수는 FL 영역에 위치해서는 안 됩니다.

POU 헤더

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

	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

POU 본문

bStoreDataFALSE에서 TRUE로 변경되면 전체 데이터 유닛 변수 awProcessDataToStore(요소 11개가 포함된 DUT)는 파일 레지스터 뱅크 2 BankOffset 1000의 데이터로 채워집니다.

LD 본문

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 본문

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

최종 수정일: 2019-04-29이 페이지에 대한 피드백Panasonic 직통 전화