The protection relay’s native fault record application can be configured to make captures at an operate situation only, or during start situations (not leading into operate). The latter alternative most often causes more captures. The DNP3 protocol has no part in the setup of the fault record application. The chosen fault record setup is reflected to all readers of the fault record data, including HMI. If the values are intended to be available for several readers, a fault record clear operation from any reading source is not recommended. There are several alternatives for any remote client, including DNP3, to access the captured fault record data.
Alternative 1, buffering on the DNP3 client side
The easiest alternative is that the client receives the time tagged fault record values as events at the moment when they are captured in the protection relay. The client system must then observe that all fault record values with identical event time tag belong to the same capture. A new fault record capture can take place in the protection relay right after the previous one. The new fault record values are again sent as events to the client. The client system is responsible for buffering up these values, in case it is necessary to later look at older captures.
Alternative 2, buffering on the DNP3 outstation side
If fault records' values not are sent as events to the client, the latest record capture values can be read directly from the outstation DNP3 AI-area. In this case, also the older captures are to be read out from the outstation than the latest one, the client must perform a control action towards the server.
There are up to 128 fault records stored inside the protection relay. The records are located chronologically in a circular buffer indexed from 1...128. If the client makes a DNP3 AO-write with an index value (1...128) to the object FLTRFRC1.SelRow.ctlVal, the values from that particular record are internally copied into the FLTRFRC1 fault record values. Thereafter the DNP3 client can read them using regular DNP3 AI reading.
The latest record is stored at index (row) 1, and the oldest record at index 128. Records are stored in a FIFO buffer, that is, the oldest record is dropped out from index 128, and latest record always stored to index 1.
The fault record also has an increasing counter for record number which can be used to track different fault records. This value is derived from data FLTRFRC1.OpCnt.stVal and it counts 1...999999, and rolls over after maximum. If OpCnt = 0, there is no fault record data available.
If the FLTRFRC1.OpCnt.stVal object is added as an “Ev-Upd” object to the DNP3 AI-data, and then enabled for Class events, it serves as an indication on the client side that a new fault record has been captured.
It is also possible that the client had stored the latest fault record index value it used in the previous reading. While starting to read out new records, it could simply continue from the memorized index + 1 onwards.