MQTT Transmission History Store

Hello,

My use-case involves one IgnitionEdge PC which will collect data from one PLC and one IgnitionStandard PC which aggregates the data and makes graphs, reports etc.

IgnitionEdge has the MQTT Transmission module and IgnitionStandard has MQTT Distributor and the Engine modules.

A very simplified overview:

I have configured the MQTT Transmitter to send all the tags contained in the Manufacturing folder. The EdgeSet has the PrimaryHost configured.

History Store: StoreType - InMemory; HistoryMaxSize - 100k; HistoryMaxAge - 1440; FlushQuantity - 1000; FlushPeriod - 200. RollingBuffer Enabled: RollingHistoryPruneInterval - 60; RollingHistoryMaxAge - 5400; RollingHistoryPruneQuantity - 1000.

MQTT Transmitter uses the above HistoryStore with EnableHistoryStorageByDefault - Checked / In-OrderHistory - Checked

Every tag in BatchData / EdgeData / Results is historized inside a MS SQL Database.

The PLC is writing new data to all the tags every 10 seconds and everything works as expected when both systems are online, but I`m experiencing issues when disconnecting IgnitionStandard from the network (by disabling the network card). During this test-case I`m leaving Standard Ignition offline for 50 seconds. Out of the 5 different sets of data I`m missing most of the data (3 out of 5 sets are lost completely).

I tried different values for History Store settings, tried Disk storage and experimented with various combinations of enabling/disabling RollingBuffer and In-OrderHistory but still had missing data sets.

Could you please aid me in realizing where I`m doing it wrong? Have I reached the limit of the History Store feature?

Thank you in advance for your help!

Cata

1 Like

I would recommend starting with a review of these docs: Managing historic data with MQTT Modules - MQTT Modules for Ignition 8.1 - Confluence

Some common problems:

  • Not setting the correct history settings on Engine tags: Configuring history on MQTT Engine tags - MQTT Modules for Ignition 8.1 - Confluence
  • Using async flush (not in-order) on the Transmission side and having ‘Store Historical Events’ set to false on the Engine side.
  • Not using primary host ID on both Engine and Transmission sides
  • Incorrect simulation of a network failure event. Doing things like disabling Transmission is not a valid test as it completely shuts down Transmission