By design, the use of MQTT removes the requirement for periodic publishing of infrequently changing data whilst maintaining data integrity.

Each time an MQTT Client connects, a BIRTH message is published which contains all metrics with a current time stamp. After that initial BIRTH message, metric changes are published using DDATA messages. If there are no metric changes for a data point, the timestamp provided in the BIRTH message is a valid timestamp for that data point.

By default the MQTT messages from Transmission are sent only upon Value or Quality changes and there is no provision to resend a tag(s) at an interval if the values have not changed. 

However, MQTT Transmission has control tags that allow you to request the Edge to perform either a Node or Full Transmission refresh. This forces the Edge Node(s) to disconnect and reconnect resulting in the sending of NDEATH, NBIRTH and DBIRTH messages for Edge Node(s). 

The timestamp for the tag each included in the BIRTH message will be the timestamp of the BIRTH message.

  • A full Transmission refresh is requested using the '[MQTT Transmission]Transmission Control/Refresh' tag.
    • This forces all Edge Nodes to disconnect and reconnect.
  • An Edge Node specific refresh is requested using the '[MQTT Transmission]Transmission Info/Transmitters/TRANSMITTER_NAME/Edge Nodes/GROUP_ID/EDGE_NODE_ID/Refresh Edge Node' tag.
    • This forces only the specific Edge Node to disconnect and reconnect.

Writes to these control tags can be scripted using any of the available Ignition scripting tools.

Please reference the Using the MQTT Transmissions 'Refresh' Mechanism tutorial and the MT: Tags document for additional information for these control tags.

Additional Resources

  • No labels