F152_RMRD

子局からのデータの読み出し

この命令は、MEWNET-F子局の指定された高機能ユニットからデータを読み出します。

パラメータ

入力

s1_Control (DWORD)

マスター/スレーブコンフィグレーションのコントロールデータを格納します

s2_Start (WORD, INT, UINT)

読み取るメモリエリアの先頭アドレス

n_Number (INT)

読み出しワード数(最大32ワード)

d_Start (WORD, INT, UINT)

読み出すワードが格納される先頭16ビットエリア、(F153を参照)。

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

解説

  • 0:実行禁止(実行中のF152_RMRD/F153_RMWT命令)

  • 1:実行有効

  • 0:正常完了

  • 1:エラーが発生して完了しました(エラーコードはsys_wMewnetFErrorCodeに格納されます)

  • エラーが発生して送信が完了した場合、(sys_bIsMewnetFError (TRUEになり、TRUEを保持)、エラーの内容(エラーコード)が格納されます。

  • s1は、ネットワークのマスターおよびスレーブユニットのコンフィグレーションのコントロールデータを格納します。nワードは、s2_Startで指定される高機能ユニットの共有メモリアドレス番号から読み取られます。結果はdに格納されます。

    s1_Controlの仕様:

    1.  (1) s1上位ワード
    2.  (2) ビット
    3.  (3) s1上位ワード
    4.  (4) バンク番号(指定するバンクがある場合は16#0016#FF、それ以外は16#00)
    5.  (5) スロット番号(16#0016#1F、FP3:16#0016#17)
    6.  (6) s1下位ワード
    7.  (7) s1下位ワード
    8.  (8) 親局番号(16#0116#04)
    9.  (9) 子局番号(16#0116#20)
ヒント

バンクのある高機能ユニット:FP3拡張データメモリユニット

ご注文品番:AFP32091 AFP32092

エラーフラグ

sys_bIsOperationErrorHold
  • コントロールデータs1_Controlが指定範囲外の場合

  • MEWNET-Fマスターユニットが見つからない場合

  • 読み出すデータがs2_Startのエリアを超える場合

sys_bIsOperationErrorNonHold (1回のスキャンに対してTRUE)
  • コントロールデータs1_Controlが指定範囲外の場合

  • MEWNET-Fマスターユニットが見つからない場合

  • 読み出すデータがs2_Startのエリアを超える場合

POUヘッダ

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

  1.  (1) 親局1
  2.  (2) コントロールデータ= 16#A0105
  3.  (3) 高機能ユニット(共有メモリ)
	VAR
		Start: BOOL:=FALSE;
		ControlData: DWORD:=16#000A0105;
			(*No bank, 
slot no. 10, 
Master station 1, 
Slave station 5*)
		StartingAddress: WORD:=0;
		NoWordsWrite: INT:=5;
		WordsWritten: ARRAY [0..4] OF WORD:=[5(0)];
	END_VAR

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,F152_RMRD,,11,1,20,8,,?DEN?D@'s1'?Ds2?Dn?Dd?AENO);
B(B_CONTACT,,Start,5,1,7,3,);
B(B_VARIN,,ControlData,9,3,11,5,);
B(B_VARIN,,StartingAddSlave,9,4,11,6,);
B(B_VARIN,,NumberWordsRead,9,5,11,7,);
B(B_VARIN,,WordsRead[0],9,6,11,8,);
L(1,0,1,8);
L(1,2,5,2);
L(7,2,11,2);
L(11,2,11,3);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

STボディ

If (Start) Then
    F152_RMRD(s1_Control := ControlData,
              s2_Start := StartingAddress,
              n_Number := NoWordsWrite,
              d_Start := WordsRead[0]);
End_if;

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