IsReceptionDone

「受信完了」フラグの確認

このファンクションは、「受信完了」フラグの値を返します。TRUEに割り付けられた通信ポートで終端コードを受信した場合にPortになります。

パラメータ

入力

Port (WORD, INT, UINT)

通信ポートの指定(PLC機種による):

  • COMポート、例:SYS_COM0_PORT

  • Ethernetポート 例: SYS_ETHERNET_USER_CONNECTION_1

  • MCU/SCU、例:16#xx01 (xx =スロット番号) COM01

出力

IsDone (BOOL)

終端コードを受信した場合にTRUEに設定されます。終端コードは、対応するシステムレジスタのCOMポート設定の項目で指定します。

解説

"受信完了"フラグの確認

指定した時間内に追加の受信バイトがなかった場合、または命令ClearReceiveBufferを実行した場合、出力IsDoneTRUEになります。次のデータの受信が禁止されます。F159_MTRNまたはClearReceiveBufferによって"IsDone"フラグがFALSEになります。このファンクションはFP7またはMCU、さらにタイムアウトモードで使用できます。"受信完了"フラグは、以下の命令またはシステム変数のいずれかを使って確認することができます。

  • IsReceptionDone

  • IsReceptionDoneByTimeOut

  • sys_bIsComPort1ReceptionDonesys_bIsComPort2ReceptionDonesys_bIsToolPortReceptionDone (通信ポートによる)

受信データの終端は、受信バッファの内容を確認することによって、判断することもできます。受信バイト数は、スキャンタイム内にも変化します。例えば、受信バイト数が2回以上読み出された場合、1スキャン内で異なる状態が存在することがあります。

POUヘッダ

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

	VAR
		iPort: INT:=0;
		bIsDone: BOOL:=FALSE;
	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 := 5 ;
        NETWORK_BODY
B(B_F,IsReceptionDone!,,5,0,14,3,,?DPort?CIsDone);
B(B_VARIN,,iPort,3,1,5,3,);
B(B_VAROUT,,bIsDone,14,1,16,3,);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

STボディ

bIsDone:=IsReceptionDone(Port := iPort);

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