F151_WRT

高機能ユニットへのデータの書き込み

高機能ユニットの共有メモリへデータを書き込みます。

パラメータ

入力

s1_BankSlot (WORD, INT, UINT)

高機能ユニットのスロットNo.とバンクNo.の指定

s2_Start (WORD, INT, UINT)

CPUの共有メモリにあるデータの先頭アドレス

n_Number (INT)

共有メモリに書き込むワード数の指定

d_Start (WORD, INT, UINT)

書き込みデータを格納する高機能ユニットの共有メモリの先頭アドレス

解説

CPUユニットのs2_Startで指定したエリアからn_Numberワード分のデータを、s1_BankSlotで指定したスロットに装着されている高機能ユニットの共有メモリのd_Startで指定したアドレスから書き込みます。

FP3の場合、入力変数の数は、使用できるPLCのインデックスレジスタの数により制限されます。(スロットNo.、ワード数などを定数に置き換えてください。)

s1_BankSlotの指定方法

  • バンクのない高機能ユニット

    高機能ユニットを装着しているスロットNo.を指定してください。

  • バンクのある高機能ユニット

    高機能ユニットを装着しているスロットNo. (16進定数)とバンクNo. (16進定数)を指定してください。

   
 

品名

ご注文品番

 

FP3拡張データメモリユニット

AFP32091

AFP32092

 

FPS拡張データメモリユニット

AFPG201

エラーフラグ

sys_bIsOperationErrorHold (TRUEになり、TRUEを保持)
  • s1_BankSlotの値が指定範囲外のときON

  • 書き込むデータがdの領域を超えるとき

sys_bIsOperationErrorNonHold (1回のスキャンに対してTRUE)
  • s1_BankSlotの値が指定範囲外のときON

  • 書き込むデータがdの領域を超えるとき

POUヘッダ

POUヘッダには、このプログラムで使用するすべての入力変数と出力変数を宣言します。 POUヘッダは全プログラム言語で使用できます。

	VAR
		Start: BOOL:=FALSE;
			(*activates the function*)
		SlotNo: WORD:=16#0D;
			(*if start is TRUE, this value
will be written to the address
1 from the unit-slot 0*)
		CPUDataToWrt: ARRAY [0..4] OF INT:=[5,10,15,20,25];
		NoWordsToWrite: INT:=5;
		DestinationAddr: INT:=0;
	END_VAR

POUボディ

StartがONのとき、CPUDataToWrtで指定されたアドレスから5ワード分データを、(スロット0に装着されている)高機能ユニットの共有メモリのアドレス0~4に書き込みます。

  1. スロットNo.
  2. CPUユニット
  3. 高機能ユニット
  4. 5ワード

LDボディ

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 8 ;
        NETWORK_BODY
B(B_VARIN,,SlotNo,11,3,13,5,);
B(B_VARIN,,CPUDataToWrt[0],11,4,13,6,);
B(B_VARIN,,NoWordsToWrite,11,5,13,7,);
B(B_VARIN,,DestinationAddr,11,6,13,8,);
B(B_CONTACT,,Start,7,2,9,4,);
B(B_F,F151_WRT!,Instance,13,1,21,8,,?DEN?Ds1_BankSlot?Ds2_Start?Dn_Number?Dd_Start?AENO);
L(9,3,13,3);
L(1,3,7,3);
L(1,0,1,8);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

STボディ

IF start then
    F151_WRT( s1_BankSlot:= SlotNo,
         s2_Start:= CPUDataToWrt[0],
         n_Number:= NoWordsToWrite,
         d_Start:= DestinationAddr);
END_IF;

最終修正日: 2019-06-03このページに関するフィードバックお問い合わせ窓口