RMPSendMessage
Dieser Baustein wird verwendet, um einer beliebigen (aber durch seine ID bekannten) Modulinstanz eine Nachricht zu schicken.
Das Verhalten der Variablen xExecute, xDone, xBusy and xError ist entsprechend der „Guidelines for Library Design“. Dieses Dokument ist Bestandteil der CODESYS-Standardinstallation.
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_VARMan beachte, dass die Aufgabe des Bausteins erfolgreich erledigt ist, sobald der Empfang der Nachricht im RMPService der Gegenseite bestätigt ist. Das muss jedoch nicht bedeuten, dass die Nachricht beim eigentlichen Empfänger angekommen ist.
In mdData werden die zu sendenden Daten übergeben. In udiReceiverID steht der Empfänger und rmp enthält die lokale RMPService-Instanz.
- Die Zeitdauer, bis die Nachricht verschickt worden ist, darf - tValiditynicht überschritten werden (ansonsten wird eine Fehlermeldung erzeugt).
- Die Zeitdauer, bis die Nachricht auf der Gegenseite vom Empfänger abgeholt wird, darf - tValiditynicht überschreiten, sonst wird die Nachricht gelöscht.
uiErrorID zurückgegeben:- Sende-Buffer ist voll; es empfiehlt sich ein erneuter Sendeversuch zu einem späteren Zeitpunkt. 
- Die Nachricht wird nicht aus dem Sende-Buffer gelöscht. Ursachen dafür können eine zu langsame Übertragung, eine gestörte Verbindung oder ein voller Empfangspuffer auf der Gegenseite sein. 
- Die Applikation, an die die Nachricht gerichtet ist, ist nicht mit dieser Applikation verbunden. Dadruch ist eine Übertragung prinzipiell unmöglich.