WriteDataToFileRegisterBank

ファイルレジスタバンク1または2へのデータ書き込み

この命令は、DataStartAddressからDataNumberOfWordsワード分のデータを、BankNumberBankOffsetで指定されたファイルレジスタバンクへ格納します。

パラメータ

入力

BankNumber (INT)

バンクNo.の指定

BankOffset (INT)

バンクNo.オフセットの指定

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バンクオフセット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-06-03このページに関するフィードバックお問い合わせ窓口