FB_MqttPublish

Descripción general

Tipo:

Bloque de funciones

Disponible desde:

V1.0.0.0

Descripción de funciones

El bloque de funciones FB_MqttPublish permite publicar un mensaje de aplicación sobre un tema especificado en el Servidor MQTT. Se enviará un mensaje de publicación a través de la conexión establecida anteriormente entre el Cliente MQTT y el Servidor MQTT.

Si el cliente no está conectado, se cancelará la ejecución del bloque de funciones sin que se envíe ningún mensaje.

Si el cliente se encuentra bloqueado por otros procesos, el bloque de funciones permanecerá ocupado. Los mensajes se enviarán en cuanto el cliente vuelva a estar disponible.

Calidad de servicio

Nivel de publicación

Descripción

QoS 0

El mensaje publicado se envía al servidor, el cual no envía acuse de recibo de este. El bloque de funciones indica q_xDone = TRUE en cuanto se envía el mensaje.

QoS 1

El mensaje publicado se envía al servidor, el cual deberá enviar un acuse de recibo mediante un mensaje PUBACK. El bloque de funciones indica q_xDone = TRUE en cuanto se recibe el mensaje PUBACK. Si no se recibe ningún mensaje PUBACK, se enviará una retransmisión del mensaje publicado. El período de tiempo para la retransmisión se puede configurar.

Interfaz

Entrada

Tipo de datos

Descripción

i_xExecute

BOOL

El bloque de funciones publica los mensajes de aplicación especificados a través del Servidor MQTT conectado en un flanco ascendente de esta entrada.

Consulte Comportamiento de los bloques de funciones con la entrada i_xExecute.

i_stPublishMessage

ST_PublishMessage

Estructura en la que se especifica el mensaje de aplicación que se publicará.

i_stTimeout

ST_Timeout

Estructura en la que se especifican los tiempos de espera.

Entrada/salida

Tipo de datos

Descripción

iq_fbMqttClient

FB_MqttClient

Referencia al FB_MqttClient asociado empleado para el intercambio de datos con el Servidor MQTT.

Salida

Tipo de datos

Descripción

q_xDone

BOOL

Indica que el mensaje de aplicación se ha publicado correctamente.

q_xBusy

BOOL

Indica que el mensaje de aplicación se está publicando en estos momentos.

q_xError

BOOL

Indica que se ha detectado un error durante la publicación del mensaje de aplicación.

q_etResult

ET_Result

Proporciona información de diagnóstico y estado en forma de valor numérico.

q_sResultMsg

STRING [80]

Proporciona información adicional de diagnóstico y estado en forma de mensaje de texto.

Uso de variables de tipo POINTER TO … o REFERENCE TO …

Este bloque de funciones proporciona entradas o entradas y salidas de tipo POINTER TO… o REFENCE TO…. Al utilizar un puntero o una referencia de este tipo, el bloque de funciones accede al área de memoria dirigida. En el caso de un evento de cambio online, es posible que las áreas de memoria se desplacen hacia nuevas direcciones y que, en consecuencia, un puntero o una referencia pasen a ser no válidos. Para evitar la presencia de errores relacionados con punteros no válidos, las variables de tipo POINTER TO… o REFERENCE TO… deberán actualizarse de manera cíclica o, al menos, al principio del ciclo en el que se utilicen.

 ATENCIÓN
PUNTERO NO VÁLIDO
Verifique la validez de los punteros al utilizarlos en direcciones y ejecutar el comando Cambio en línea.
Si no se siguen estas instrucciones, pueden producirse lesiones o daños en el equipo.

Diagrama de secuencia de lenguaje unificado de modelado (UML)

En el siguiente diagrama de secuencia de UML se ilustra la interacción con el bloque de funciones FB_MqttClient, el cual necesita ejecutarse de manera cíclica para procesar los mensajes recibidos y detectar una posible interrupción de la comunicación con el servidor.

NOTA: En el diagrama se ilustra un proceso de publicación correctamente realizado, por lo que no se muestra ningún tratamiento de errores.