FP_ETHERNETIP_DATA_EXCHANGE_FB

EtherNet/IPユニットとのメッセージの交換

このファンクションブロックは、指定した宛先のEtherNet/IPユニットと明示メッセージを交換します。

パラメータ

入力

bSend (BOOL)

立ち上がりエッジでデータ交換を開始します。

dutDestination (FP_ETHERNETIP_DATA_DESTINATION_DUT)

宛先EtherNet/IPユニットの情報を含む構造体(DUT)

dutSendData (FP_ETHERNETIP_DATA_SEND_DUT)

送信データバッファの構造体(DUT)。

データは、FP_ETHERNETIP_DATA_SET命令を使用して送信データバッファに書き込むことができます。

出力

bInProgress (BOOL)

宛先EtherNet/IPユニットとデータ交換中であることを示すフラグ。

dutResult (FP_ETHERNETIP_DATA_EXCHANGE_RESULT_DUT)

命令実行結果の構造体(DUT)。

dutReceiveData (FP_ETHERNETIP_DATA_RECEIVE_DUT)

受信データバッファの構造体(DUT)。

データは、FP_ETHERNETIP_DATA_GETおよびFP_ETHERNETIP_DATA_GET_BYTES命令を使用して受信データバッファから読み出すことができます。

エラーフラグ

sys_bIsOperationErrorHold (TRUEになり、TRUEを保持)
  • インデックス修飾時にエリアを超えたとき

  • Ethernetのユニットコンフィグレーションで、EtherNet/IP機能を使用しないとき

  • 命令が割り込みプログラム内で実行された場合。

  • dutReceiveDataの受信データバッファのサイズが許容範囲(3~253ワード)外の場合。

  • dutResultの受信データバッファのサイズが3ワード未満の場合。

sys_bIsOperationErrorNonHold (1回のスキャンに対してTRUE)
  • インデックス修飾時にエリアを超えたとき

  • Ethernetのユニットコンフィグレーションで、EtherNet/IP機能を使用しないとき

  • 命令が割り込みプログラム内で実行された場合。

  • dutReceiveDataの受信データバッファのサイズが許容範囲(3~253ワード)外の場合。

  • dutResultの受信データバッファのサイズが3ワード未満の場合。

POUヘッダ

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

	VAR
		dutSend: FP_ETHERNETIP_DATA_SEND_DUT;
		FP_ETHERNETIP_DATA_EXCHANGE_FB1: FP_ETHERNETIP_DATA_EXCHANGE_FB;
		bSend: BOOL:=FALSE;
		dutDestination: FP_ETHERNETIP_DATA_DESTINATION_DUT;
		dutReceive: FP_ETHERNETIP_DATA_RECEIVE_DUT;
		dutResult: FP_ETHERNETIP_DATA_EXCHANGE_RESULT_DUT;
	END_VAR

LDボディ

変数 sys_bIsEtherNetIPReadybSendTRUEにセットされたとき、ファンクションが実行されます。

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 6 ;
        NETWORK_BODY
B(B_CONTACT,,sys_bIsEtherNetIPReady,5,2,7,4,);
B(B_CONTACT,,bSend,13,2,15,4,);
B(B_FB,FP_ETHERNETIP_DATA_EXCHANGE_FB!,FP_ETHERNETIP_DATA_EXCHANGE_FB1,21,1,39,6,,?BbSend?BdutDestination?BdutSendData?AbInProgress?AdutReceiveData?AdutResult);
B(B_VARIN,,dutDestination,19,3,21,5,);
B(B_VAROUT,,dutResult,39,3,41,5,);
B(B_VARIN,,dutSend,19,4,21,6,);
B(B_VAROUT,,dutReceive,39,4,41,6,);
L(1,0,1,6);
L(1,3,5,3);
L(7,3,13,3);
L(15,3,21,3);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

STボディ

If (sys_bIsEtherNetIPReady) and (bSend) Then
    FP_ETHERNETIP_DATA_EXCHANGE_FB1(bSend := bSend,
                                    dutDestination := dutDestination,
                                    dutSendData := dutSend,
                                    dutResult => dutResult,
                                    dutReceiveData => dutReceive);
End_if;

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