RMPSendメッセージ
このブロックは、任意のモジュール インスタンス (ただしその ID によって知られる) にメッセージを送信するために使用されます。
変数の動作 xExecute
、 xDone
、 xBusy
そして 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
戻ってきた:送信バッファがいっぱいです。後でもう一度送信してみることをお勧めします。
メッセージは送信バッファから削除されません。この原因としては、送信が遅すぎる、接続が乱れている、または相手側の受信バッファがいっぱいであることが考えられます。
メッセージの宛先となっているアプリケーションは、このアプリケーションに接続されていません。つまり譲渡は基本的に不可能ということになります。