FB_MqttClient

Présentation

Type :

Bloc fonction

Disponible à partir de :

V1.0.0.0

Description fonctionnelle

Le bloc fonction FB_MqttClient permet d’établir une connexion avec le Serveur MQTT indiqué. La connexion est initialisée sur un front montant de l’entrée i_xEnable. La sortie q_xActive indique que le bloc fonction est en cours d’exécution et doit être appelé de façon cyclique. L’état de la connexion est indiqué par la sortie q_xReady. Si cette entrée est TRUE, le client est connecté.

Si l’entrée i_xEnable est définie sur FALSE lorsque l’établissement de la connexion est en cours, le processus est annulé.

Si l’entrée i_xEnable est définie sur FALSE et que la connexion est active, celle-ci est fermée en tant que session de nettoyage. Cela signifie que les abonnements actifs appartenant à cet identifiant client sont effacés sur le Serveur MQTT.

Après l’établissement de la connexion, le bloc fonction gère les messages reçus du serveur en arrière plan. Par conséquent, le bloc fonction doit être appelé de façon cyclique après l’établissement de la connexion

Configuration de proxy

Le bloc fonction FB_MqttClient prend en charge l'établissement d'une connexion au Serveur MQTT via un serveur proxy.

Si un serveur proxy interdit une connexion directe entre votre client et le Serveur MQTT mais qu'il prend en charge l'établissement d'un tunnel vers le serveur distant, vous pouvez mettre en oeuvre la connexion au serveur distant à l'aide de l'interface IF_ProxyHandler et de l'implémentation correspondante.

Le bloc fonction FB_MqttClient fournit la propriété ProxyHandler qui vous permet d'affecter une interface de type IF_ProxyHandler. Une fois qu'une interface valide a été affectée à la propriété, les méthodes d'interface sont appelées à partir du bloc fonction lors de l'établissement d'une connexion au Serveur MQTT.

La séquence d'appel est la suivante :

  1. Lorsque le bloc fonction est activé, la méthode d'interface ConnectToProxy est appelée.

    Si le chiffrement TLS est sélectionné pour la connexion au Serveur MQTT, le type de socket StartTls est défini sur TRUE. La méthode est appelée de manière cyclique jusqu'à ce que l'une des sorties q_xDone (connexion établie) ou q_xError (échec de connexion) soit TRUE.

  2. Une fois la connexion au serveur proxy établie, la méthode d'interface ConnectToRemoteServer est appelée.

    Si le chiffrement TLS est sélectionné pour la connexion au Serveur MQTT, l'option UpgradeToTls est définie sur TRUE. La méthode est appelée de manière cyclique jusqu'à ce que l'une des sorties q_xDone (connexion établie) ou q_xError (échec de connexion) soit TRUE.

  3. Une fois la méthode ConnectToRemoteServer exécutée, l'étape suivante consiste à établir la connexion MQTT au niveau du protocole MQTT. L'interface IF_ProxyHandler n'est pas requise avant la prochaine activation du bloc fonction.

Si une erreur est détectée lors de l'établissement d'une connexion à l'aide de l'interface IF_ProxyHandler, la méthode d'interface Abort est appelée une fois.

Pour désactiver l'utilisation de l'interface IF_ProxyHandler, transmettez une interface non affectée ou un pointeur nul à la propriété ProxyHandler. Par exemple : .: fbMqttClient.ProxyHandler := 0;

Pour plus d'informations sur l'implémentation des méthodes d'interface ou sur les implémentations déjà fournies, reportez-vous au guide de la bibliothèque ProxyCommunicationSupport.

Adresse du serveur MQTT

L'adresse du Serveur MQTT est indiquée par une adresse IPv4. Si la connexion est établie via un serveur proxy (voir Configuration de proxy), il est également possible de spécifier l'adresse par le nom d'hôte du serveur. Dans ce cas, un seul paramètre peut être utilisé : soit l'adresse IP, soit le nom d'hôte.

Interface

Entrée

Type de données

Description

i_xEnable

BOOL

Le bloc fonction établit une connexion avec le Serveur MQTT sur un front montant de cette entrée.

Si l’entrée est définie sur FALSE, le bloc fonction est réinitialisé et la connexion existante est fermée ou l’établissement de la connexion est annulé.

Voir Fonctionnement des blocs fonction avec l’entrée i_xEnable.

i_stConnectionSettings

ST_ConnectionSettings

Structure pour transférer le paramètre de connexion.

i_timTimeout

TIME

Intervalle de temps durant lequel une connexion doit être établie. Si la valeur est T#0 s, la valeur par défaut T#10 s est appliquée.

Sortie

Type de données

Description

q_xActive

BOOL

Indique que l’exécution du bloc fonction est active. Tant que cette sortie est TRUE, le bloc fonction doit être exécuté de façon cyclique.

q_xReady

BOOL

Indique que la connexion est établie. Le Client MQTT est prêt pour l’échange de messages d’application avec le Serveur MQTT.

q_xError

BOOL

Si cette sortie est TRUE, une erreur a été détectée. Pour plus d'informations, reportez-vous à q_etResult et q_etResultMsg.

q_xTlsUsed

BOOL

Indique si la connexion à Serveur MQTT est sécurisée via TLS (Transport Layer Security).

q_etResult

ET_Result

Fournit des informations de diagnostic et d'état sous la forme d'une valeur numérique.

q_sResultMsg

STRING [80]

Fournit des informations de diagnostic et d'état sous la forme d'un message textuel.

Propriétés

Le tableau suivant décrit la propriété ProxyHandler fournie par le bloc fonction FB_MqttClient.

Nom

Type de données

Accès

Description

ProxyHandler

PXCS.IF_ProxyHandler

Get/Set

Bloc fonction mettant en oeuvre l'interface IF_ProxyHandler.

Si une interface valide est affectée, la connexion au Serveur MQTT est établie à l'aide des méthodes de cette interface.