F150_READ

高機能ユニットからのデータの読み出し

高機能ユニットの共有メモリからデータを読み出します。

パラメータ

入力

s1_BankSlot (WORD, INT, UINT)

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

s2_Start (WORD, INT, UINT)

高機能ユニットの共有メモリの読み出し先頭アドレス

n_Number (INT)

読み出すワード数

d_Start (WORD, INT, UINT)

読み出しデータを格納するCPUユニットの先頭アドレス

解説

s1_BankSlotで指定した高機能ユニットの共有メモリに格納されたデータを、s2_Startで指定したアドレスからn_Numberワード分読み出し、CPUユニットのd_Startで指定したエリアに格納します。

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

s1_BankSlotの指定

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

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

    1.  (1) 上位バイト
    2.  (2) 下位バイト
  • バンクのある高機能ユニット

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

    1.  (1) 上位バイト
    2.  (2) 下位バイト
   
 

品名

ご注文品番

 

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

AFP32091

AFP32092

 

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

AFPG201

エラーフラグ

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

  • 読み出したデータがd_Startの領域を超えるときON

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

  • 読み出したデータがd_Startの領域を超えるときON

POUヘッダ

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

POUボディ

(スロット3に装着されている)高機能ユニットの共有メモリに格納されているデータを、AddrDataToReadで指定された先頭アドレス19から4ワードのデータを読み出します。命令は、StartがONになると実行され、読み出したデータを配列DestAddrCPUに格納します。

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

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_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

STボディ

IF start then
    F150_READ( s1_BankSlot:= SlotNo,
         s2_Start:= AddrDataToRead,
         n_Number:= NoWordsToRead,
         d_Start:= DestAddrCPU[0]);
END_IF;

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