---
title: "Report control blocks"
---

# Report control blocks

Enable and disable report control blocks of an IED online after a confirmation, interrogate, set the integrity period, purge the buffer, read received and segmented reports, and reconnect without losing buffered reports.

**Safety:** use a test relay or a test server on a test network only, never a relay in service. Every write on this page is confirmed by you, naming the IED, the attribute and the value.

**State:** verified against libiec61850 1.6.2 example servers on Linux: a report control block enabled after confirmation with its reports matching the CID's RptID, confRev and data set; a buffered block resynchronised after its connection was cut (4 reports made while down received, none lost or twice); a general interrogation of 1,000 members in 2 segments; a silent connection found lost in 20 s; tshark 4.4.9 dissecting every packet without error. **Not run against any relay**: whether relays need another write order, an Owner attribute, or refuse ResvTms is not known.

## The report control blocks

With an IED connected (see [Connect to an IED](https://neuralinverse.com/docs/modules/energy/connect-online/)), the **Reports** section of the IED Online tab lists its report control blocks. These are the only writes to an IED the module offers:

| Action | Writes | When |
|---|---|---|
| **Enable...** | RptEna = true; on a buffered block ResvTms = 60 first | After one confirmation naming both |
| **Disable...** | RptEna = false; on a buffered block ResvTms = 0 | After a confirmation |
| **Interrogate...** | GI | While enabled, after a confirmation |
| **Integrity Period...** | IntgPd | After a confirmation |
| **Purge Buffer...** | PurgeBuf | While disabled, after a confirmation |
| **Read Settings** | Nothing: reads every attribute of the block | |

The confirmation is a modal dialog, for example "Write RptEna = true to IED simpleIO?", naming the attribute and the address. Cancel writes nothing.

ResvTms = 60 makes the IED keep a buffered block for this computer for 60 s after the association ends, and buffer its reports meanwhile.

## Received reports

Each report shows its RptID, sequence number, data set, entry time and EntryID, and each member with its data reference, value and reason (such as `integrity` or `data-change`). The tab shows the last EntryID received. A segmented report (SubSeqNum, MoreSegmentsFollow) is shown once, whole, with its number of segments; an incomplete one says which segment is missing.

**Try it** against libiec61850's `server_example_basic_io`: enable `simpleIOGenericIO/LLN0.EventsRCB01` and confirm. The block shows "enabled by this connection", and an integrity report arrives every second with four `SPCSOn.stVal = false (integrity)` lines.

## Reconnect after a lost connection

When a connection is lost, the tab says "Connection lost: <reason>" with **Reconnect**, and **Show IED Connections** offers Reconnect too.

1. Press **Reconnect**. It uses the same address and credentials, kept in the window's memory only.
2. Confirm once: the confirmation lists the writes.
3. Every block that was enabled is enabled again. A buffered block gets ResvTms, EntryID set to the last entry received, then RptEna, so the reports buffered meanwhile arrive.

An entry received twice is not shown twice. An entry the IED no longer holds is shown as a warning that reports in between may be lost.

## New disturbance records

When a report this window enabled carries `RDRE.RcdMade` turning true, a notification names the recorder and fault number and offers **List Records**. See [Disturbance records and event logs](https://neuralinverse.com/docs/modules/energy/records-and-logs/).

## Not verified

- Any relay; reconnect and the connection check over TLS against a real server; Windows.
