I am trying to configure event buffer backfilling using DNP3 with a MicroLogix 1400 PLC.
When the device is disconnected for a minute and reconnected, no events are read from the event buffer of the PLC.
I have configured an SQLite database as the storage provider for the tag history. However, rows are not being added to the table regularly. The live tag values are being updated, as shown in the screenshot below:
The existing (soon to be "legacy") DNP3 driver only receives events when using unsolicited messaging.
The new beta driver can receive events using both class-based polling and unsolicited messaging. See the beta sticky thread here if you're interested in trying it instead: New DNP3 Driver Beta
Thanks for pointing this out. I have installed the new DNP3 Driver Beta, but I am now only receiving events after a class poll. In the screenshot below, the Class 1 Poll period is set to 8 seconds, and we only see new data following a poll.
The desired behaviour is that when Ignition’s driver reconnects after it is disconnected from the PLC for some time, the events from the PLC are written to the database so that the missed events can be backfilled.
Can you get a Wireshark capture? The outstation must have the points you are interested in assigned to the class and produce events for those points. The capture will see if your configuration in Ignition needs changing or if it’s something you need to change in the outstation.
This is how it is supposed to work… if you want immediate/live updates and events you need to turn on unsolicited messaging and your outstation must support it.
Just to clarify, the device produces an event every 2 seconds. The Class 1 poll is set to be done every 10 seconds, so 5 events are produced during the 10 second interval. However, only the last event value is recorded in the database. The following screenshot from Wireshark shows the events being produced by the device every 2 seconds.
I have enabled unsolicited messages in Ignition and on the device (screenshots below). However, I did not observe any unsolicited messages in the Wireshark capture.
The desired result is that all of the events being produced by the device are stored in the database. This is required so that missing data can be recovered in the event of a disconnection.
The Tag Group settings look correct. In my testing over the last couple of days, the deadband could be causing a problem with the data being stored. @Vishal_Ramjattan, can you please try setting the Deadband Mode option on the tag to Off and let me know if that changes the behavior at all.
Also, @Vishal_Ramjattan can you please check the timestamps on both the device and the Ignition Gateway to ensure they are synced to the same time source? On Interrogation, no timestamp is sent from the device and source for the timestamp is the Ignition Gateway itself. For the Class polling, if a timestamp is applied from the device then Ignition will use it. If the timestamps are out of sync we can get in a scenario where Ignition is thinking the timestamps are coming in out of order.