RMPSendMessage
Questo blocco funzione serve per inviare messaggi a qualsiasi istanza del modulo. L'indirizzo dell'istanza deve essere noto.
Il comportamento delle variabili xExecute
, xDone
, xBusy
, E xError
è conforme alle “Linee guida per la progettazione delle biblioteche”. Questo documento fa parte del CODESYS installazione 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
Tenere presente che il lavoro del blocco funzione viene concluso con successo non appena viene confermata la ricezione del messaggio nell'RMPService del lato opposto. Ciò non significa necessariamente che il messaggio abbia raggiunto l'interfaccia effettiva del modulo ricevitore.
In mdData
, i dati da inviare verranno trasferiti. udiReceiverID
definisce l'ID del destinatario.rmp
definisce l'istanza RMPService locale.
La durata fino all'invio del messaggio non deve superare
tValidity
(altrimenti verrà creato un messaggio di errore).Il tempo necessario per la ricezione del messaggio da parte del destinatario della parte opposta non deve essere superiore
tValidity
(altrimenti il messaggio verrà cancellato).
uiErrorID
:Il buffer di invio è pieno; si consiglia di inviare nuovamente in un secondo momento.
Il messaggio non verrà cancellato dal buffer di invio. I motivi possono essere un trasferimento lento, una connessione interrotta o un buffer di ricezione pieno sul lato opposto.
L'applicazione a cui viene inviato il messaggio non è connessa a questa applicazione. In questo caso la trasmissione dei dati non è possibile.