State: reference resolution is verified on the 292 public SCL files (171,204 references asked for). Definition, references, hover, completion and outline in the editor are modelled (Electron tests on a real text model).
The features work in the ordinary text editor of an SCL file (.scd .ssd .icd .iid .cid .sed, any letter case, local files).
Go to definition and find references
Go to definition (Ctrl+click) and Find All References (Shift+F12) work for:
| Where you are | Where it goes |
|---|---|
An input (ExtRef) | The IED, logical device, logical node, each part of a dotted data object and attribute path, the source logical device and node, and the control block |
A data set member (FCDA) | The data it names |
datSet of a GOOSE, Sampled Values or report control block | The data set |
| The Communication section | ConnectedAP to its IED and access point; GSE and SMV to the logical device and control block |
| The Substation section | LNode to its IED, logical device, logical node and type |
| Report clients and subscribers | ClientLN and the IEDName subscribers of a control block |
| The type templates | lnType of LN and LN0, type of DO and SDO, type of DA and BDA by bType |
A data path goes to its instance (DOI, SDI, DAI) where the file has one, and to its type member otherwise. Find All References also works from a definition and from a type member: on the lnType of an LN, it lists every logical node of that type.
Hover
Hover over a reference to see what it resolves to: its path, type, common data class, FC, basic type and the value in the file; for a control block, its data set and network addresses. A reference that does not resolve says why: which IED, logical device, logical node, data part, control block or type is missing.
Completion
Press Ctrl+Space inside an attribute value such as iedName="" to get the names the file defines: IEDs, access points, logical devices, logical nodes, data objects and attributes, control blocks, the data sets of the enclosing logical node, and type ids. Completion works also while the text you are typing does not parse.
Outline
The Outline view shows the station's structure.
Try it
- Open an SCD. In the
ExtRefof a subscribing IED, Ctrl+clickiedName="P1": the cursor goes to<IED name="P1". - Hover over
datSet="Trips"of a control block: the data set and its members. - On the
lnTypeof anLN, press Shift+F12: every logical node of that type.
Size
On a generated station of 100 IEDs (3.5 million characters, 84,000 elements), measured on Linux: a definition with its hover takes about 3 ms; the first Find All References (which indexes every reference) about 0.3 s, later ones under 1 ms.
Not verified
- References between files: an input naming an IED that is only in another SCD or ICD does not resolve.
- Untitled and remote files (local files only).
- The resolution rules follow IEC 61850-6 as understood here; they are not checked against the standard's text, RiseClipse or a vendor tool.
- Files of DIGSI 5, SEL and Helinks; Windows.