MQTTBeebotte, connettersi al servizio cloud Beebotte

Home / Knowledge Base / Manualistica / Programmazione IEC 61131-3 / Libreria gestione servizi cloud / Comunicazione con Beebotte / MQTTBeebotte, connettersi al servizio cloud Beebotte

Questo FB permette di connettersi a Beebotte una piattaforma cloud per oggetti connessi in tempo reale (Articolo), la connessione utilizza il protocollo MQTT e tramite altri due FBs di appoggio TPBeebotte e TSBeebotte è possibile pubblicare o sottoscrivere variabili (Topics) sulla piattaforma. Il FB utilizza altri FBs che devono essere istanziati ed il cui indirizzo deve essere passato come parametro.

Per utilizzare il servizio Beebotte richiede una registrazione che anche nella versione gratuita, permette di avere un numero illimitato di canali con 50000 messaggi al giorno e 3 mesi di storico. Effettuando la registrazione è possibile creare i canali con cui scambiare dati, per ogni canale viene assegnato un token che deve essere passato al FB nel campo Username, il campo Password và lasciato NULL.

In TSDefs occorre passare l'indirizzo ed in TSNumber il numero di elementi dell'array di FB TSBeebotte, ogni FB esegue la sottoscrizione ad una variabile e quando il valore su Beebotte cambia viene automaticamente aggiornata la variabile.

In TPDefs occorre passare l'indirizzo ed in TPNumber il numero di elementi dell'array di FB TPBeebotte, ogni FB esegue su comando la pubblicazione del valore di una variabile.

Function block
CODESYS: Non disponibile
LogicLab: eLLabCloudSvLib

Enable (BOOL) Abiltando il FB viene eseguita la connessione al servizio, tutti i FBs di sottoscrizione definiti in TSDefs vengono sottoscritti.

SpyOn (BOOL) Abiltandolo è possibile eseguirne lo spionaggio (Articolo).

MQTT (@MQTTClient) Occorre indicare l'indirizzo di allocazione del FB MQTTClient che sarà utilizzato dal FB per gestire il protocollo MQTT.

JEncode (@JSONEncode_v1) Occorre indicare l'indirizzo di allocazione del FB JSONEncode_v1 che sarà utilizzato dal FB per la codifica delle stringhe JSON.

JDecode (@JSONDecode_v2) Occorre indicare l'indirizzo di allocazione del FB JSONDecode_v2 che sarà utilizzato dal FB per la decodifica delle stringhe JSON.

Server (@STRING) Occorre indicare l'URL del server MQTT.

Port (UINT) Occorre indicare la porta del server MQTT.

Username (@STRING) Occorre indicare la stringa token indicata dal servizio.

Password (@STRING) Occorre indicare la password di accesso al servizio, di default Beebotte non richiede alcuna password.

ClientID (@STRING) Occorre indicare l'ID cliente, è lo username indicato in fase di registrazione al servizio.

TSDefs (@TSBeebotte) Occorre indicare l'indirizzo dell'array di FB TSBeebotte che gestiscono la sottoscrizione di variabili. NULL se non è prevista alcuna sottoscrizione.

TSNumber (UDINT) Occorre indicare il numero di elementi dell'array di FB TSBeebotte che gestiscono la sottoscrizione di variabili. 0 se non è prevista alcuna sottoscrizione.

Enabled (BOOL) Si attiva in risposta allo stato di Enable.

Fault (BOOL) Si attiva per un loop in caso di errore.

Errori

In caso di errore si attiva l'uscita Fault, eseguendo immediatamente dopo la funzione SysGetLastError è possibile rilevare il codice di errore.

Esempi

Come utilizzare gli esempi.
In questo esempio viene gestita la sottoscrizione e la pubblicazione al servizio Beebotte al canale UserTest di due variabili REALValue e STRINGValue. Pubblicando un valore sarà possibile visualizzarlo nella dashboard, e contemporaneamente il valore pubblicato andrà a valorizzare la variabile sottoscritta. Se si copia/incolla l'esempio in un progetto LogicLab importare le FB utilizzate, oppure scaricare il progetto BeebotteStartUp.

LogicLab (Ptp169)
PROGRAM FBD_MQTTBeebotte
VAR
    Enable : BOOL := TRUE; (* Management enable *)
    Publish : BOOL; (* Publish command (Automatically rest after publish) *)
    RXVALUE : REAL; (* Value received fron Beebotte *)
    TXVALUE : REAL; (* Value to be send to Beebotte *)
    MQTT : MQTTClient; (* MQTT client management *)
    JENCODE : JSONEncode_v1; (* JSON encode *)
    JDECODE : JSONDecode_v2; (* JSON decode *)
    Beebotte : MQTTBeebotte; (* Bebotte service management *)
    TPUBLISH : TPBeebotte; (* Topic publish *)
    TSUBSCRIBE : TSBeebotte; (* Topic subscribe *)
END_VAR

LogicLab (Ptp169)

Ti è stato utile questo articolo ?