Skip to main content

RMPSendメッセージ

このブロックは、任意のモジュール インスタンス (ただしその ID によって知られる) にメッセージを送信するために使用されます。

変数の動作 xExecutexDonexBusy そして xError 「ライブラリ設計ガイドライン」に準拠しています。この文書は、 CODESYS-標準インストール。

FUNCTION_BLOCK: RMPSendMessage

FUNCTION_BLOCK RMPSendMessage EXTENDS CBM.ETRIG
VAR_IN_OUT
    mdData: ARRAY[0..63] OF BYTE;
END_VAR
VAR_INPUT
    itfrmp: IRMPService;
    xExecute: BOOL;
    udiReceiverID: UDINT;
    uiSenderModuleID: UINT;
    tValidity: TIME := t#1s;
END_VAR
VAR_OUTPUT
    xDone: BOOL;
    xBusy: BOOL;
    xError: BOOL;
    uiErrorID: UINT;
END_VAR

相手側の RMP サービスでメッセージの受信が確認され次第、ブロックの機能は正常に完了しますのでご注意ください。ただし、これはメッセージが実際の受信者に届いたことを意味する必要はありません。

mdData 送信するデータが転送されます。で udiReceiverID 受信者であり、 rmp ローカルの RMPService インスタンスが含まれます。

. tValidity は、メッセージの有効期間を示します。これにより、次のことがチェックされます。
  • メッセージが送信されるまでの時間は、 tValidity を超えることはできません (超えない場合は、エラー メッセージが生成されます)。

  • 相手側の受信者がメッセージを受け取るまでの時間が許容されます tValidity 超えないでください。超えない場合、メッセージは削除されます。

. エラーが発生する原因は次のとおりです。 uiErrorID 戻ってきた:
  • 送信バッファがいっぱいです。後でもう一度送信してみることをお勧めします。

  • メッセージは送信バッファから削除されません。この原因としては、送信が遅すぎる、接続が乱れている、または相手側の受信バッファがいっぱいであることが考えられます。

  • メッセージの宛先となっているアプリケーションは、このアプリケーションに接続されていません。つまり譲渡は基本的に不可能ということになります。