-
Notifications
You must be signed in to change notification settings - Fork 52
Create Report Control Blocks
Create Report Control element
The publisher plugin maintained in the OpenSCD organization and part of many distributions is the best tools to do this job. In the OpenSCD distribution, you can find this editor plugin under the name Publisher.
To create a ReportControl element, navigate to the Report radio button (left upper corner) to open the report control editor. Here you can see on the left hand side all existing report control blocks in the file, sorted by the IEDs. You can filter to find the report control as well as IED or other elements that are on the path of the report.
Next to the inactive IED list item, you can see the Add Report Control button. When you click on it, a new report control is created, with a dummy name and without any
ReportControl pane
This page contains a set of settings required by the server to generate a Report:
-
name: The primary identifier for the Report within the SCL. It must be unique for allReportControlelements within the same parent element and influences the Report Control Block reference. -
desc: An optional string describing theReportControlelement. -
buffered: Indicates whether the report control is buffered or not. -
rptID: A unique identifier for the Report. If left empty, the ID will be set to the Report Control Block reference (the path to the report control block in the data model). -
indexed: Specifies whether there can be multiple instances of the Report online. Due to the TCP/IP connection type, only one client can work with the Report at a time when connected to it. Therefore, multiple instances of the same Report are needed if more than one client wants to use the same Report. -
max Clients: Reflects the maximum number of instances the IED has to instantiate at power-up. This field corresponds to themaxattribute in the child elementRptEnabled. -
bufTime: The minimum time in milliseconds [ms] between two Report messages online. -
intgPd: The time in milliseconds [ms] between two Report messages triggered periodically.
Trigger Options pane
This page allows do define how a Report is triggered once activated.
-
dchg: A report is sent if any data in the dataset changes in the data model. For example, if the trip signal of a protection function changes from false to true. -
qchg: A report is sent if the quality of any data changes. Quality is a bit string that allows specifying the current quality of information and also allows having indicators on the quality reason. The quality information must be part of the dataset; otherwise, this setting has no effect. -
dupd: Some data can be triggered on data update in addition to data change. This is often the case for measurement information. For instance, if you want to track a secondary voltage measurement that is nominally 100 V, you may not see any changes in the tracked secondary voltage, but you may still want to receive updates from time to time. This trigger is active whenever the value is updated in the data model, regardless of whether the value itself has changed. -
period: If set to true, it triggers the report periodically, depending on theintgPdattribute in the parentReportControl.NOTE: If
periodis set to true butintgPdis set to 0, the trigger condition is disabled. -
gi: Stands for general interrogation and allows actively triggering report generation only. It simulates a master-slave behavior, which the Report services try to avoid.
Optional Fields pane
This page allows you to define additional information included in the Report message, beyond the data itself:
-
seqNum: Represents the sequence number of the Report message. Each time a new Report is generated, the sequence number is incremented. -
timeStamp: Indicates the timestamp when the Report message has been generated.NOTE: This timestamp doesn't reflect the time of the data change in the Report but rather the time of Report generation. The encoding of this specific time may differ from that in the dataset of the report and may not be as precise.
-
dataSet: References theDataSetassociated with this Report. This allows double-checking if the correct data is sent with the Report. -
reasonCode: Identifies the trigger option that initiated the generation of the Report, such as data change, quality change, etc. -
dataRef: Lists references to all data in the dataset of the Report. This enables the client to decode a Report without knowing the structure of the dataset. -
entryID: Represents the ID in the buffer for the Report. It's used for buffered Reports to retrieve only Reports from the buffer that have not been sent before. -
configRev: Reflects theconfRevattribute of the Report. It allows checking if the Report has been re-configured. -
bufOvfl: Indicates whether there has been an overflow of the buffer.
Data Set pane:
Each report control block is linked to a data set - the data that is sent over the wire. You can link the report control with another data set so long it is in the same parent element. While changing the data set, background checks do manage to keep the file valid in case the data has been part of nay subscription.
When a report control block is not linked to a data set, you can also create a new data set element. This commens with unique name but empty data content (FCDA). With the buttons Add data attribute or Add data object you can add either functional contrained data attributes or functional constrained data.
Data Picker
A multi-select data picker is utilized on the final page of the creation wizard to define the dataset. This enables selecting multiple data attributes simultaneously. In the example below, the data attributes stVal, q, and t are selected from the data object Pos, the logical node DC CSWI 1, and the logical device CTRL.

NOTE: If no data is selected, the
DataSetis still created, but it will be empty. You can add data using the edit wizard at a later stage.