プログラム制御通信の場合、受信バッファをDTメモリエリアに指定する必要があります。最大エリアは16384ワードです。以下の項目を設定します:
先頭アドレス
受信バッファの容量(ワード数)
受信バッファの割り付け
太字は、受信順序を示しています。受信データは受信バッファに格納されます。始端コードと終端コードは、受信バッファに格納されません。受信するデータの格納エリアは、受信バッファの第2ワード(オフセット1)が先頭アドレスになります。オフセット0には、受信したバイト数が格納されます。オフセット0の初期値は0です。
「シリアルポート」をダブルクリックする。
通信ポートは同じシステムレジスタの異なるビット位置を占有するため、各通信ポートの個別の設定が可能です。ツールポートの設定を行うには、 を選択します。システムレジスタの番号は、使用するPLC機種により異なります。受信バッファのデータを使用するときには、同じ先頭アドレスと容量を持つグローバル変数を定義してください。ただし、FP7およびMCU増設ユニットには、そのような対応するDTレジスタアドレスはありません。受信バッファからPLCデータレジスタにデータを転送するには、ReceiveDataを使用します
COMポート1を介して、文字"ABCDEFGH"を含む8バイトの文字列を受信します。文字は、始端コードと終端コードなしで、ASCII HEXコードで格納されます。
受信バッファの割り付け:
受信が始まるとき、オフセット0の値は0です。受信の終端では、"offset 0"の値は、"8"です。オフセット1~オフセット4のデータが、順番に下位バイトから受信されます。
受信バッファのデータを使用するときには、同じ先頭アドレスと容量を持つグローバル変数を定義してください。この例では、先頭アドレスがDT200 (VAR_GLOBALDT200_awReceivedBuffer)で、受信バッファの容量は5 (ARRAY [0..4] OF WORD)です。
"受信完了"フラグがFALSEのとき、外部機器からデータを受信することができます。「受信完了」フラグは、システム変数sys_bIsComPort1ReceptionDoneによって確認することができます。データの受信が完了したとき(終端コードが受信されたとき)、「受信完了」フラグがTRUEになり、続くデータの受信を禁止されます。直ちに次のデータを送信することなく次のデータを受信するには、n_Number = 0でF159_MTRNを実行し、受信バッファをリセットします。