FB_MqttPublish

Panoramica

Tipo:

Blocco funzione

Disponibile a partire da:

V1.0.0.0

Descrizione funzionale

Il blocco funzione FB_MqttPublish consente di pubblicare un messaggio dell'applicazione su un argomento specificato sul Server MQTT. Un messaggio di pubblicazione viene inviato tramite la connessione stabilita in precedenza tra Client MQTT e Server MQTT.

Se il client non è connesso, l'esecuzione del blocco funzione viene interrotta e il messaggio non viene inviato.

Se il client è bloccato da altri processi, il blocco funzione resta in stato "occupato". I messaggi vengono inviati quando il client è di nuovo disponibile.

Quality of Service

Livello di pubblicazione

Descrizione

QoS 0

Il messaggio pubblicato viene inviato al server, che non conferma il messaggio. Il blocco funzione indica q_xDone = TRUE non appena viene inviato il messaggio.

QoS 1

Il messaggio pubblicato viene inviato al server, che deve riconoscerlo con un messaggio PUBACK. Il blocco funzione indica q_xDone = TRUE non appena viene ricevuto il messaggio PUBACK. Se non viene ricevuto alcun messaggio PUBACK, viene inviata una ritrasmissione del messaggio pubblicato. L'intervallo di tempo per la ritrasmissione può essere configurato.

Interfaccia

Ingresso

Tipo di dati

Descrizione

i_xExecute

BOOL

Il blocco funzione pubblica i messaggi di applicazione specificati tramite il Server MQTT collegato su un fronte di salita di questo ingresso.

Fare riferimento a Comportamento dei blocchi funzione con l'ingresso i_xExecute.

i_stPublishMessage

ST_PublishMessage

Struttura che specifica il messaggio dell'applicazione da pubblicare.

i_stTimeout

ST_Timeout

Struttura che specifica i timeout.

Ingresso/uscita

Tipo di dati

Descrizione

iq_fbMqttClient

FB_MqttClient

Riferimento al FB_MqttClient associato utilizzato per lo scambio dati con il Server MQTT.

Uscita

Tipo di dati

Descrizione

q_xDone

BOOL

Indica che la pubblicazione del messaggio dell'applicazione è stata completata correttamente.

q_xBusy

BOOL

Indica che la pubblicazione del messaggio dell'applicazione è in corso.

q_xError

BOOL

Indica che è stato rilevato un errore durante la pubblicazione del messaggio dell'applicazione.

q_etResult

ET_Result

Fornisce informazioni su stato e diagnostica come valore numerico.

q_sResultMsg

STRING [80]

Fornisce ulteriori informazioni su stato e diagnostica come messaggio di testo.

Uso delle variabili del tipo POINTER TO … o REFERENCE TO …

Il blocco funzione fornisce ingressi e/o ingressi/uscite di tipo POINTER TO… o REFENCE TO…. Utilizzando questo tipo di puntatore o riferimento, il blocco funzione accede all'area di memoria indirizzata. In caso di evento di modifica online, può accadere che le aree di memoria vengano spostate in nuovi indirizzi e che di conseguenza un puntatore o un riferimento non siano più validi. Per evitare errori associati a puntatori non validi, occorre aggiornare ciclicamente le variabili di tipo POINTER TO… o REFERENCE TO… , o almeno all'inizio del ciclo nel quale vengono usate.

 ATTENZIONE
PUNTATORE NON VALIDO
Verificare la validità del puntatore quando si utilizzano i puntatori sugli indirizzi e durante l'esecuzione del comando Modifica in linea.
Il mancato rispetto di queste istruzioni può provocare infortuni o danni alle apparecchiature.

Diagramma di flusso Unified Modeling Language (UML)

Il seguente diagramma di flusso UML illustra l'interazione con il blocco funzione FB_MqttClient, che deve essere richiamato ciclicamente per elaborare i messaggi ricevuti e rilevare una possibile interruzione della comunicazione con il server.

NOTA: Il diagramma mostra un processo di pubblicazione corretto e non indica un'eventuale gestione degli errori.