Skip to main content

RMPSendMessage

Ce bloc fonction sert à envoyer des messages à n'importe quelle instance de module. L'adresse de l'instance doit être connue.

Le comportement des variables xExecute, xDone, xBusy, et xError est conforme aux "Directives pour la conception des bibliothèques". Ce document fait partie du CODESYS installation standard.

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

Veuillez noter que la tâche du bloc fonctionnel est terminée avec succès dès que la réception du message dans le RMPService du côté opposé est confirmée. Cela ne signifie pas nécessairement que le message a atteint l'interface réelle du module récepteur.

Dans mdData, les données à envoyer seront transférées. udiReceiverID définit l'ID du récepteur.rmp définit l'instance locale de RMPService.

. tValidity définit la période de validation du message. Les éléments suivants sont vérifiés :
  • La durée jusqu'à l'envoi du message ne doit pas dépasser tValidity (sinon un message d'erreur sera créé).

  • La durée jusqu'à ce que le message soit capté par le récepteur du côté opposé, ne doit pas dépasser tValidity (sinon le message sera supprimé).

. Les erreurs suivantes peuvent se produire et seront renvoyées dans uiErrorID:
  • Le tampon d'envoi est plein ; il est recommandé de renvoyer ultérieurement.

  • Le message ne sera pas supprimé du tampon d'envoi. Les raisons peuvent être un transfert lent, une connexion interrompue ou un tampon de réception plein du côté opposé.

  • L'application à laquelle le message est envoyé n'est pas connectée à cette application. Dans ce cas, un transfert des données n'est pas possible.