高機能ユニットからのデータの読み出し
高機能ユニットの共有メモリからデータを読み出します。
入力
高機能ユニットのスロットNo.とバンクNo.の指定
高機能ユニットの共有メモリの読み出し先頭アドレス
読み出すワード数
読み出しデータを格納するCPUユニットの先頭アドレス
s1_BankSlotで指定した高機能ユニットの共有メモリに格納されたデータを、s2_Startで指定したアドレスからn_Numberワード分読み出し、CPUユニットのd_Startで指定したエリアに格納します。
FP3の場合、入力変数の数は、使用できるPLCのインデックスレジスタの数により制限されます。(スロットNo.、ワード数などを定数に置き換えてください。)
s1_BankSlotの指定
バンクのない高機能ユニット
高機能ユニットを装着しているスロットNo.を指定してください。
バンクのある高機能ユニット
高機能ユニットを装着しているスロットNo. (16進定数)とバンクNo. (16進定数)を指定してください。
品名 |
ご注文品番 |
|
FP3拡張データメモリユニット |
AFP32091 AFP32092 |
|
FPS拡張データメモリユニット |
AFPG201 |
s1_BankSlotの値が指定範囲外のときON
読み出したデータがd_Startの領域を超えるときON
s1_BankSlotの値が指定範囲外のときON
読み出したデータがd_Startの領域を超えるときON
POUヘッダには、このプログラムで使用するすべての入力変数と出力変数を宣言します。 POUヘッダは全プログラム言語で使用できます。
VAR
Start: BOOL:=FALSE;
(*activates the function*)
SlotNo: WORD:=16#03;
(*if start is TRUE, this value
gets 2 words from the address
1 from the unit-slot 0*)
AddrDataToRead: INT:=19;
NoWordsToRead: INT:=4;
DestAddrCPU: ARRAY [0..3] OF INT:=[4(0)];
(*Starting address in CPU to store data read*)
END_VAR
(スロット3に装着されている)高機能ユニットの共有メモリに格納されているデータを、AddrDataToReadで指定された先頭アドレス19から4ワードのデータを読み出します。命令は、StartがONになると実行され、読み出したデータを配列DestAddrCPUに格納します。
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_F,F150_READ!,Instance,13,1,21,8,,?DEN?Ds1_BankSlot?Ds2_Start?Dn_Number?Dd_Start?AENO);
B(B_VARIN,,SlotNo,11,3,13,5,);
B(B_VARIN,,NoWordsToRead,11,4,13,6,);
B(B_VARIN,,NoWordsToRead,11,5,13,7,);
B(B_VARIN,,DestAddrCPU[0],11,6,13,8,);
B(B_CONTACT,,Start,7,2,9,4,);
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
F150_READ( s1_BankSlot:= SlotNo,
s2_Start:= AddrDataToRead,
n_Number:= NoWordsToRead,
d_Start:= DestAddrCPU[0]);
END_IF;