WriteDataToFileRegisterBank

将输入写入文件寄存器库1或2

此指令从DataStartAddress读取DataNumberOfWords指定的字数,并将其写入以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;

最后更新日期: 此页面上的反馈松下热线