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.
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é).
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.