高機能ユニットへのデータの書き込み
高機能ユニットの共有メモリへデータを書き込みます。
入力
高機能ユニットのスロットNo.とバンクNo.の指定
CPUの共有メモリにあるデータの先頭アドレス
共有メモリに書き込むワード数の指定
書き込みデータを格納する高機能ユニットの共有メモリの先頭アドレス
CPUユニットのs2_Startで指定したエリアからn_Numberワード分のデータを、s1_BankSlotで指定したスロットに装着されている高機能ユニットの共有メモリのd_Startで指定したアドレスから書き込みます。
FP3の場合、入力変数の数は、使用できるPLCのインデックスレジスタの数により制限されます。(スロットNo.、ワード数などを定数に置き換えてください。)
s1_BankSlotの指定方法
バンクのない高機能ユニット
高機能ユニットを装着しているスロットNo.を指定してください。
バンクのある高機能ユニット
高機能ユニットを装着しているスロットNo. (16進定数)とバンクNo. (16進定数)を指定してください。
品名 |
ご注文品番 |
|
FP3拡張データメモリユニット |
AFP32091 AFP32092 |
|
FPS拡張データメモリユニット |
AFPG201 |
s1_BankSlotの値が指定範囲外のときON
書き込むデータがdの領域を超えるとき
s1_BankSlotの値が指定範囲外のときON
書き込むデータがdの領域を超えるとき
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
StartがONのとき、CPUDataToWrtで指定されたアドレスから5ワード分データを、(スロット0に装着されている)高機能ユニットの共有メモリのアドレス0~4に書き込みます。
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
IF start then
F151_WRT( s1_BankSlot:= SlotNo,
s2_Start:= CPUDataToWrt[0],
n_Number:= NoWordsToWrite,
d_Start:= DestinationAddr);
END_IF;