「受信完了」フラグの確認
このファンクションは、「受信完了」フラグの値を返します。TRUEに割り付けられた通信ポートで終端コードを受信した場合にPortになります。
入力
通信ポートの指定(PLC機種による):
COMポート、例:SYS_COM0_PORT
Ethernetポート 例: SYS_ETHERNET_USER_CONNECTION_1
MCU/SCU、例:16#xx01 (xx =スロット番号) COM01
出力
終端コードを受信した場合にTRUEに設定されます。終端コードは、対応するシステムレジスタのCOMポート設定の項目で指定します。
"受信完了"フラグの確認
指定した時間内に追加の受信バイトがなかった場合、または命令ClearReceiveBufferを実行した場合、出力IsDoneはTRUEになります。次のデータの受信が禁止されます。F159_MTRNまたはClearReceiveBufferによって"IsDone"フラグがFALSEになります。このファンクションはFP7またはMCU、さらにタイムアウトモードで使用できます。"受信完了"フラグは、以下の命令またはシステム変数のいずれかを使って確認することができます。
IsReceptionDone
IsReceptionDoneByTimeOut
sys_bIsComPort1ReceptionDone、sys_bIsComPort2ReceptionDone、sys_bIsToolPortReceptionDone (通信ポートによる)
受信データの終端は、受信バッファの内容を確認することによって、判断することもできます。受信バイト数は、スキャンタイム内にも変化します。例えば、受信バイト数が2回以上読み出された場合、1スキャン内で異なる状態が存在することがあります。
POUヘッダには、このプログラムで使用するすべての入力変数と出力変数を宣言します。 POUヘッダは全プログラム言語で使用できます。
VAR
iPort: INT:=0;
bIsDone: BOOL:=FALSE;
END_VAR
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
bIsDone:=IsReceptionDone(Port := iPort);