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