Skip to main content

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.

. tValidity definisce il periodo di convalida del messaggio. Vengono controllate le seguenti cose:
  • 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).

. Potrebbero verificarsi i seguenti errori che verranno restituiti 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.