F146_RECV

受信データ(MEWNETリンク)

この命令は、ネットワークのリンクユニットを介して他の局からデータを受信します。

パラメータ

入力

s1_Control (DWORD)

コントロールデータを格納する32ビットエリア

s2_AdrType (WORD, INT, UINT)

対象局にデータを格納するためのソースオペランドのタイプ。アドレス0を設定して、必ずエリアを選択してください(例:DT0WR0、...)(ソース局のデータエリア)

s2_AdrOffs (WORD, INT, UINT)

s2_AdrTypeで指定されたソースオペランドの先頭16ビットエリアのアドレス(ソース局のデータエリア)

d_Start (WORD, INT, UINT)

受信したデータを格納するための先頭16ビットエリアのアドレス(対象局のデータエリア)、 必ず定数

変数s2_AdrTypes2_AdrOffsd_Startは同じデータ型を使用してください。

解説

s1_Controlの仕様:

s1上位バイト

s1下位バイト

1. リンク番号の選択(LK:1~3、局自体)

1.ワード単位送信選択

最大3つのリンクユニットを1つのCPUに接続できます。

F = 0

ワード単位の選択

n2 = 0

ワード単位を選択する場合は「0」を設定します

この(LK)は、3つのソースリンクユニットを選択します。

n1 = 11–16

送信するワード数を指定します

2. リンク局番号の選択(UN:1~63、別の局)

2.ビット単位送信の選択

最大63の局を1つのリンクユニットに接続できます。

F = 1

ビット単位の選択

次に(UN)は、対象局番を選択します。

n2 = 0–15

格納先ビット番号

n1 = 0–15

ソースビット番号

ヒント

詳細については、高機能ユニットの該当する技術マニュアルを参照してください。

POUヘッダ

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

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,,control_value,7,3,9,5,);
B(B_VARIN,,start_address,7,4,9,6,);
B(B_VARIN,,offset,7,5,9,7,);
B(B_VARIN,,output_value,7,6,9,8,);
B(B_CONTACT,,start,3,2,5,4,);
B(B_F,F146_RECV!,Instance,9,1,17,8,,?DEN?Ds1_Control?Ds2_AdrType?Ds2_AdrOffs?Dd_Start?AENO);
L(1,3,3,3);
L(5,3,9,3);
L(1,0,1,8);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

POUボディ

変数startがON (TRUE)のとき、このファンクションが実行されます。

LDボディ

	VAR
		start: BOOL:=FALSE;
			(*activates the function*)
		control_value: DWORD:=0;
			(*32-bit area for storing
control data*)
		start_address: WORD:=0;
			(*Starting 16-bit area
address for the source
operand specified in s2*)
		output_value: WORD:=0;
			(*Starting 16-bit area
address for storing data
received*)
		offset: INT:=0;
	END_VAR

STボディ

IF start then
    F146_RECV( s1_Control:= control_value, s2_AdrType:= start_address, n_AdrOffs:= offset,
              d_Start:= output_value);
END_IF;

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