IEC 61850 is the communication standard of substation automation, used by protection relays, bay controllers and the plant controllers of PV parks and battery storage systems. EnvisionSCADA acts as an IEC 61850 client: it connects to the MMS server of an IED (intelligent electronic device) on TCP port 102, as defined by IEC 61850-8-1, and reads, writes and operates the data of the IED's data model.
Each IEC61850 device represents one IED and holds one MMS association to it. The variables of a device can address every logical device of that IED, so create one device per IED, not one per logical device. IEDs accept a limited number of simultaneous associations, and one device per IED keeps the number that EnvisionSCADA uses at one.
Values arrive in two ways. A variable inside the data set of an enabled report control block is updated by the reports of the IED, which send changes as they occur. Every other variable is polled at the Poll Interval of the device. Values carry the quality and the time stamp of the IED, so events are stored in the historian with the original process time. See Reports and Polling.
Variables reference the data of the IED by IEC 61850 object reference with the functional constraint in brackets, for example IED1LD0/MMXU1.TotW.mag.f[MX] for the total active power of a measurement unit. Variable names are free-form: with the {Device} replacer, {Device}.Breaker1_Position on a device named IED1 is referenced as IED1.Breaker1_Position, and a plain name such as Feeder1_TotW is referenced as it is.
The data model does not have to be typed by hand. Browse on the IEC61850 Variables page reads the data model online from the IED, and Import SCL on the IEC61850 Devices page creates a device and its variables from the ICD, IID, CID, SCD or SED file of the IED engineering.
Device Settings
Each IEC61850 device represents one IED. Configure the connection to the MMS server of the IED, the OSI addressing of the association, the report control blocks, the command settings and the diagnostics options.
Create a new device with the Add button in the toolbar, or from an SCL file with Import SCL as described under Import SCL. The Add device dialog contains the device settings organized in the sections General, Connection, OSI Addressing (advanced), Reports, Commands and Diagnostics, with default values already filled in. Enter at least the Name and IP Address and press Create.
The device row shows Enable, Name, IP Address, Port, Poll Interval (ms), Template, Description and Simulation directly and these values can be edited in place, and Status shows the Channel State of the device. All other device settings are also available as table columns, which are shown with Columns as described in the Configuration Tables article. Press the Settings icon on a device row to open the Edit device dialog, which contains the same sections and all settings of the device. Press Save to apply the changes.
The table lists the general and connection settings. For the numeric settings the Example column shows the default value.
| Setting | Description | Example | Units / Format |
|---|---|---|---|
| Enable | Enables or disables this IEC61850 device. | true | Boolean |
| Simulation | Runs the device in simulation mode. The device does not open its real connection; its variables stay available and become read and write in memory like Local variables, with a Good status and a Channel State of Simulation, so the project can be tested without hardware. Written values are held in memory only and reset when the application restarts. | false | Boolean |
| Name | Unique name for this IEC61850 device. The {Device} replacer in a variable name resolves to this name. A device created with Import SCL is named after the IED. | IED1 | Text |
| IP Address | IPv4 address of the IED access point, the MMS server of the IED on the station bus, as listed in the Communication section of the SCL file. | 10.0.0.11 | IP Address |
| Port | TCP port of the MMS server. 102 is the standard port for MMS over TCP (ISO transport, RFC 1006). | 102 | Integer (1 to 65535) |
| Timeout (ms) | Time allowed for each MMS request and for establishing the association. It applies to every request separately, not to a whole poll cycle. A request that is not answered in time sets the device Offline and starts a reconnect. | 5000 | Milliseconds (100 to 300000) |
| Reconnect Delay (s) | Delay before the first reconnect attempt after the association is lost or refused. The delay doubles after every failed attempt, up to 60 seconds or up to this value when it is larger, and returns to this value once an association has stayed up for 60 seconds. An association that the IED accepts and ends within 60 seconds counts as a failed attempt, so an IED that ends every new association during its setup is connected at the growing interval, and the System Log repeats an unchanged cause only once. | 5 | Seconds (1 to 3600) |
| Max PDU Size | Largest MMS PDU size proposed to the IED when the association is established. The IED answers with the size it accepts, and that negotiated size decides how many items one Read request carries. | 65000 | Bytes (1024 to 65000) |
| Poll Interval (ms) | Interval between two poll cycles for the variables that no enabled report covers. Each cycle reads the value, the quality and the time stamp of every polled variable in batched Read requests. | 1000 | Milliseconds (100 to 3600000) |
| Authentication Password | Password for ACSE password authentication of the association, when the IED requires it. Leave empty for an IED without authentication; an empty field sends no authentication. | Text (printable ASCII, up to 255 characters) | |
| Template | Optional device template name. When set, this device uses a shared variable list from the named template device. Set it in the Template column of the device row. | Iec61850Template | Text |
| Description | Free text description for documentation purposes. | Feeder 1 protection relay | Text |
No rows match the filter.
Device Advanced Settings
The following settings are available in the OSI Addressing (advanced), Reports, Commands and Diagnostics sections of the Add device and Edit device dialogs. The defaults of the OSI Addressing (advanced) section suit most IEDs, and Import SCL fills them from the SCL file. The sections OSI Addressing, Reports and Polling, and Writing and Controls below describe how the settings work together.
| Setting | Description | Default | Units / Format |
|---|---|---|---|
| Remote AP Title | AP title of the IED (called application process title). Empty sends neither the Remote AP Title nor the Remote AE Qualifier. | 1.1.1.999.1 | Object identifier, numbers separated by dots |
| Remote AE Qualifier | AE qualifier of the IED (called application entity qualifier). Sent only when Remote AP Title is not empty. | 12 | Integer (0 or higher) |
| Remote P Selector | Presentation selector of the IED. Empty sends no presentation selector. | 00000001 | Hexadecimal, 1 to 16 bytes |
| Remote S Selector | Session selector of the IED. Empty sends no session selector. | 0001 | Hexadecimal, 1 to 16 bytes |
| Remote T Selector | Transport selector of the IED. Empty sends no transport selector. | 0001 | Hexadecimal, 1 to 16 bytes |
| Local AP Title | AP title that EnvisionSCADA sends as calling application process title. An IED that admits clients by AP title must list this value. Empty sends neither the Local AP Title nor the Local AE Qualifier. | 1.1.1.999 | Object identifier, numbers separated by dots |
| Local AE Qualifier | AE qualifier that EnvisionSCADA sends as calling application entity qualifier. Sent only when Local AP Title is not empty. | 12 | Integer (0 or higher) |
| Report Control Blocks | Report control blocks to reserve and enable, one per line, each written as LD/LN.Name[BR] for a buffered or LD/LN.Name[RP] for an unbuffered report control block, for example IED1LD0/LLN0.brcbST01[BR]. Separate alternative instances of one report with |: the first instance that can be reserved is used. A report control block may appear only once in the field. Empty polls every variable. | Text, one report control block per line | |
| Integrity Period (ms) | Integrity period written to every enabled report control block, so the IED reports all data set members periodically. 0 keeps the integrity period configured in the IED. | 0 | Milliseconds (0 to 86400000) |
| GI Interval (s) | Interval for periodic general interrogations of the enabled report control blocks. 0 sends a general interrogation only when a report control block is enabled, which happens after every association. A report control block that could not be reserved or enabled is tried again every 60 seconds, or at this interval when it is shorter, whatever the value of GI Interval (s). | 0 | Seconds |
| Originator Category | Originator category (orCat) sent with every control. The IED checks it against its switching authority. One of Bay control, Station control, Remote control, Automatic bay, Automatic station, Automatic remote, Maintenance and Process. | Station control | Enum |
| Originator Identifier | Originator identifier (orIdent) sent with every control, so the event list of the IED shows who operated. For a control issued by a logged-in user, the user name is appended after a slash. | ENVISION | Text (printable ASCII, up to 64 characters) |
| Command Select Timeout | How long an operator selection is held before it is cancelled at the IED. Set this below the sboTimeout of the control object in the IED, so the selection is released here before the IED drops it on its own. When it is not below the sboTimeout that the IED reports, the selection is held for a shorter time that ends before the sboTimeout; see Writing and Controls. Used by control points whose Command Mode is Select before operate (operator). | 20 | Seconds (1 to 600) |
| Command Termination Timeout (s) | Time to wait for the CommandTermination of a control under enhanced security, after the IED accepted the Oper. A missing or negative CommandTermination fails the control. | 30 | Seconds (1 to 600) |
| Verbose | Logging level. 0 logs connection details and errors. 1 also logs one line per MMS request and per received report. 2 also logs every PDU in hexadecimal with a decoded summary. Findings that mean events may be missing are logged at every level; see Reports and Polling. | 0 | Integer (0 to 2) |
No rows match the filter.
OSI Addressing
An MMS association runs over the OSI upper layers, and the IED can check the OSI addressing of the client before it accepts the association. The values that address the IED belong to its access point and are listed in the Communication section of the SCL file, in the Address of the connected access point. Import SCL copies them into the device; enter them by hand only for a device created with Add. The selectors may be entered with spaces, colons or dashes between the bytes, which are removed when the device is saved.
| SCL Address parameter | Setting | Notes |
|---|---|---|
| IP | IP Address | Address of the access point on the station bus. |
| OSI-AP-Title | Remote AP Title | The SCL file writes the AP title with commas, for example 1,1,1,999,1. Commas are accepted and stored as dots, 1.1.1.999.1. |
| OSI-AE-Qualifier | Remote AE Qualifier | Integer. |
| OSI-PSEL | Remote P Selector | Hexadecimal, for example 00000001. |
| OSI-SSEL | Remote S Selector | Hexadecimal, for example 0001. |
| OSI-TSEL | Remote T Selector | Hexadecimal, for example 0001. |
No rows match the filter.
The local values identify EnvisionSCADA to the IED. Change Local AP Title and Local AE Qualifier only for an IED that admits clients by AP title, and enter the values configured for this client in the IED then. Authentication Password in the Connection section is sent with the association request when the IED requires ACSE password authentication.
When the IED refuses the association although IP Address and Port are correct, compare these settings with the Address of the access point in the SCL file first.
Reports and Polling
Report control blocks are configured in the IED and listed, one per line, in Report Control Blocks of the device. A buffered report control block ([BR]) keeps the events that occur while no client has it enabled and sends them once the client enables it again. An unbuffered report control block ([RP]) sends changes only while it is enabled.
When the association is established, EnvisionSCADA processes the lines of Report Control Blocks in order. For each line it:
- reads the attributes of the report control block and the members of its data set,
- reserves the report control block where the IED supports a reservation (Resv for an unbuffered, ResvTms for a buffered report control block),
- writes the configuration: the optional fields of the report, the trigger options of the IED extended with general interrogation and, when Integrity Period (ms) is not 0, with integrity and the integrity period. A configuration write that the IED refuses keeps the value configured in the IED and is logged,
- enables the report control block and sends a general interrogation, so the IED reports every member of the data set once.
A variable whose address lies inside a member of the data set of an enabled block, with the same functional constraint, is updated by the reports of that block. Every other variable is polled every Poll Interval (ms): the value is read together with the quality q and the time stamp t of its data object, in batched Read requests sized by the negotiated PDU size. After every association the System Log shows how the variables are served, followed by the number of controls and of variables that cannot be used, when there are any:
12 points by report (2 reports), 3 points polled, 2 controls, 1 not available (see the device log)An IED usually offers several instances of one report control block, one per client, for example urcbMX01 and urcbMX02. Separate them with | on one line, and EnvisionSCADA uses the first instance it can reserve. A report control block that another client has reserved or enabled is skipped.
IED1LD0/LLN0.brcbST01[BR]
IED1LD0/LLN0.urcbMX01[RP]|IED1LD0/LLN0.urcbMX02[RP]When no instance of a line can be reserved or enabled, the cause is logged once, the variables of its data set are polled, and the line is tried again after every new association and every 60 seconds, or at the GI Interval (s) when that is shorter. Once the line is enabled, the System Log reports that its points are updated by reports again. The System Log line after the association counts such a line as not enabled, for example 9 points by report (1 report, 1 not enabled), 6 points polled.
What a report delivers depends on how the data set is built in the IED. A data set of whole data objects, for example MMXU1.TotW with functional constraint MX, delivers the value, the quality and the time stamp of the IED together. A data set of single attributes, for example MMXU1.TotW.mag.f, delivers the value only: the variable takes the time it is received, or the TimeOfEntry of a buffered report, and the Good status, unless the q attribute is a member of the data set as well. A report contains only the members that changed, so a value change arrives without its q member; EnvisionSCADA then applies the quality that the q member reported last, and the variable keeps a status such as ConnectionLost or Warning until the IED reports a good quality. Use data sets of whole data objects for values whose events must keep the process time and quality.
After a start of EnvisionSCADA, the first enable of a buffered report control block makes the IED send the events it buffered, with their own time stamps, followed by the current state from the general interrogation. This is how events that occurred while EnvisionSCADA was stopped reach the historian. Because the first enable after a start resumes nothing, a restart can deliver buffered events a second time. A reconnect while the device keeps running resumes the buffer after the last report that EnvisionSCADA processed, so the reports that were in transit when the connection broke are sent again. Disabling and enabling the device, and saving a change to the device or to one of its variables, start the device again, which behaves like a start of EnvisionSCADA.
Integrity Period (ms) makes the IED report all members of the data set periodically, and GI Interval (s) makes EnvisionSCADA request a general interrogation periodically. Both refresh every member regardless of changes.
Findings that mean events may be missing from the historian and the event list are logged at every Verbose level, once per report and association: a gap in the sequence numbers of an unbuffered report, a buffer overflow reported by the IED (BufOvfl), and a resume point that the IED refuses, typically because the entry left the buffer of the IED during the interruption. The general interrogation that follows restores the current state. Some IEDs report a buffer overflow in the first report after every enable without a resume point, so this line can appear at a connect although no event was lost.
When a report shows that the data set definition changed in the IED, by its configuration revision, its data set name or its number of members, EnvisionSCADA logs it, reads the data set again and sends a general interrogation. Variables then move between reports and polling as the new data set requires.
When no traffic has passed for 60 seconds, EnvisionSCADA reads the first variable of the device to check the association. When that read is not answered within Timeout (ms), the device goes Offline and reconnects.
Variable Settings
Variables are added per device. Each variable maps one data attribute or one control of the IED to a named variable in the EnvisionSCADA namespace.
Create a new variable with the Add button in the toolbar, or from the data model of the IED with Browse as described under Browse. The Add variable dialog organizes all variable settings in the tabs General, Scaling, Historian, and Gateway, with default values already filled in. Enter at least the Name and Address on the General tab, select the Type and press Create. When the variable is created on a template device, it is also created on all instance devices that use the template. On a template device, start the Name with the {Device} replacer, so that each instance device gets its own variable. The Name must resolve to a different variable on each device; this is checked for every instance device before anything is saved, when a variable is created and when it is renamed.
The variable row shows Enable, Name, Asset, Address, Type, and Description directly and these values can be edited in place, and Live Value shows the current value of the variable. Press the Settings icon on a variable row to open the Edit variable dialog, which contains the same tabs and all settings of the variable. Press Save to apply the changes. Changes made on a template device are also applied to the matching variable on all instance devices, while each instance keeps its own Modbus Address value. All other variable settings, among them Command Mode and Command Checks, are also available as table columns, which are shown with Columns as described in the Configuration Tables article.
| Setting | Description | Example | Units / Format |
|---|---|---|---|
| Enable | Enables or disables this variable. | true | Boolean |
| Name | Full variable name. The {Device}. replacer prefix is optional: {Device} resolves to the device name when the device loads, so the variable follows a device rename automatically, while a literal name is used exactly as written and keeps working across device renames. The resolved name must be unique across the whole project. | {Device}.Feeder1_TotW | Text |
| Asset | Asset tag used to group and filter this variable. | Bay1 | Text |
| Address | Object reference of the data attribute or the control in the IED, with the functional constraint in brackets. See Addressing. | IED1LD0/MMXU1.TotW.mag.f[MX] | LD/LN.DO[.SDO][.DA[.BDA]][FC] |
| Type | Data type the value is stored as. The type of the attribute in the IED drives the decoding; see Data Types. For a control it is the type of the control value: BOOL for SPC and DPC, DINT for INC, REAL for APC, INT for BSC and ENC. | REAL | Enum |
| Description | Free text description for documentation purposes. | Feeder 1 total active power | Text |
| Command Mode | How a control (functional constraint CO) is issued. Automatic performs the sequence that the control model of the IED requires in one write. Select before operate (operator) splits the selection and the operate across two operator actions on a page, so the control object stays selected at the IED while the operator decides; it applies to the control models sbo-with-normal-security and sbo-with-enhanced-security. Select before operate (operator) can be selected on controls only. | Automatic | Enum |
| Command Checks | Check bits sent with a control: None, Interlock check, Synchrocheck or Interlock check and synchrocheck. None asks the IED to skip its interlocking, so keep Interlock check unless the control object has no interlocking. Ignored on variables that are not controls. | Interlock check | Enum |
| UserGroups | Comma-separated list of user groups that have access to this variable at runtime. | Operators,Supervisors | Text |
| Signature Required | Requires an electronic signature for each write to this variable from a page object, the Live Manager, the Runtime API or MCP while Part 11 compliance mode is enabled and Write variables marked Signature Required is selected under Signature Required Actions on the Parameters page. The write rights of the user and the value range are checked first, so a refused write does not open the Electronic Signature dialog. A variable created while Part 11 compliance mode is enabled starts with Signature Required selected. Writes by alarm, event and schedule actions, Python scripts and the gateways run without a signature. See the Electronic Signatures article. | true | Boolean |
| Recipe Targets | Recipe type name (target) this variable belongs to. Supports the {Device} placeholder, which resolves to the owning device name so one naming rule can spread a set of variables across several devices. | Line1 | Text |
| Recipe Parameter Name | Explicit name of the parameter this variable represents inside a recipe. Variables that fill the same role across different targets share the same Recipe Parameter Name, which is how values are matched on Apply and Snapshot. A variable takes part in recipes only when both Recipe Targets and Recipe Parameter Name are set. | Setpoint | Text |
| Trend Groups | Comma-separated list of trend group names this variable belongs to. A variable can be in several groups. The groups are the filter the Trend Analyst offers when picking variables. The names accept the {Device}, {DeviceName} and {VariableName} placeholders, so one UDT definition gives every instance its own group. | Feeders,{Device} | Text |
| Units | Engineering unit label displayed alongside the value. | W | Text |
| Format | Display format of the value on screens and in the Trend Analyst: the value of a Label or Input (unless the object uses its own Floating Point and Decimals), the value text of a Knob and a Slider, the Trend tooltip, a Data Grid Variable column, the right-click menu, Quick Trend, the current value in the Recipe Manager, variable tokens in alarm and event messages, and the Trend Analyst tooltip, summary and pen Format. An Input shows the plain value while it is being edited. 0 shows no decimals, 0.00 always shows two decimals, 0.0## shows one to three decimals and #,##0.00 adds a thousands separator, with up to 15 decimals. Values are rounded half away from zero for display only; alarms and expressions keep the full value, and so does the historian unless Round to Format is on. ReadVariable in the runtime API and MCP returns the Format beside the full value. Leave empty to show the value as received. | 0.00 | Text |
| MinRaw | Minimum raw value from the IED, used for scaling. | 0 | Number |
| MaxRaw | Maximum raw value from the IED, used for scaling. | 32767 | Number |
| Min | Minimum engineering value corresponding to MinRaw. | 0 | Number |
| Max | Maximum engineering value corresponding to MaxRaw. | 1000 | Number |
| Converter | Name of a Converter defined in the Converters configuration to apply a custom read/write expression. | RawToPressure | Text |
| Historian | Enables logging of this variable's values to the historian database. | true | Boolean |
| Round to Format | Stores the historian samples of this variable rounded to the decimals of its Format, as a plain number: with Format 0.00 the value 34.30487 is stored as 34.3. The deadband compares the rounded values, so with Deadband 0 a sample is written only when the rounded value changes. On a variable without scaling the Raw value is stored empty, since it equals the value. The live value, alarms, expressions and all interfaces keep the full value. Applies to new samples only; samples already stored keep their values. Requires a Format. | false | Boolean |
| Deadband | Minimum change in value required before a new historian record is written. | 0.5 | Number |
| MinimumTime (seconds) | Minimum time in seconds between historian records for this variable. | 0 | Seconds |
| SampleGroup | Name of the Sample Group that controls the historian sampling rate for this variable. | Text | |
| History Source | Where the trends read the history of this variable: Project default (the History Source with Project default enabled on the History Sources page, or the EnvisionSCADA Historian when no source has it), EnvisionSCADA Historian (the samples recorded while Historian is on) or a History Source of the History Sources page (a query on a Database Connection or the fetch() function of a Python Module script). In the table, an empty History Source is Project default and Historian is the EnvisionSCADA Historian. Live values always come from the variable itself. Test reads the last 24 hours with the settings in the dialog. See the History Sources article. | Project default | Enum |
| History Reference | What the History Source reads for this variable: the reference passed to fetch(), or @Variable of the History Query. When empty, the History Reference of the source is used, by default the full name of the variable; the field shows it in italics. {Name} is replaced by the full name of the variable. Browse lists the references that a Script source offers. | CDT158 | Text |
| History Parameters | Shown for a Script source: optional key=value pairs separated by ;, added to the History Parameters of the source. A key set here replaces the same key of the source. The field shows the History Parameters of the source in italics. | scale=0.1 | Text |
| Modbus Address | Optional address on the built-in Modbus TCP and Modbus RTU servers where this variable is exposed. The servers are enabled in the Gateways section of the Parameters page. Each instance device keeps its own value. | %MW0 | See Modbus TCP Addressing |
| OPC UA | Exposes this variable as an OPC UA node. When Historize is also ticked, the Historian data of the variable is readable through OPC UA Historical Access. | true | Boolean |
| Writeable | Allows external systems to write this variable through the gateways: the OPC UA Server, the Modbus TCP and Modbus RTU servers, the MQTT publisher when Subscribe is enabled on the publisher, and Kafka when Consumer is enabled on the Kafka device. Writes from pages, actions, scripts and the API are independent of this setting, so a control (functional constraint CO) is operated from pages, actions, scripts and the API with Writeable cleared. Pages, actions, scripts and the API check the user rights and the electronic signature and record the write in the Audit Trail; a gateway write is recorded as an event. Select Writeable on a control only when a gateway has to operate it. Writeable is accepted on the functional constraints CO, SP, CF, DC and SV. | false | Boolean |
| MQTT Publisher | Name of the MQTT publisher that publishes this variable, typed or chosen with the ... button. A variable is published by one publisher, and the name must match a publisher on the MQTT Publishers page. Leave empty to keep the variable unpublished. Writes from the broker need Subscribe on the publisher and Writeable on the variable. See the MQTT Publishers article. | CloudIoT | Text |
| Kafka Device | Name of the Kafka device this variable is linked to, typed or chosen with the ... button. Every value change of a linked variable is produced to the Producer Topic of the Kafka device while the device is enabled. Writes from the Consumer Topic need Consumer on the Kafka device and Writeable on the variable. Leave empty to keep the variable unlinked. See the Kafka Devices article. | KafkaBroker1 | Text |
| Kafka Remap Device | Device name used for this variable in Kafka messages instead of the name of the device that owns the variable. Inbound messages from the Consumer Topic are matched on this name as well. Leave empty to use the device name. | Substation1 | Text |
| Kafka Remap Variable | Variable name used for this variable in Kafka messages instead of its own name. Inbound messages from the Consumer Topic are matched on this name as well. Leave empty to use the variable name without the device name, for example Feeder1_TotW for IED1.Feeder1_TotW on device IED1. | Feeder1_P | Text |
No rows match the filter.
Addressing
The Address is an IEC 61850 object reference with the functional constraint in brackets at the end:
LD/LN.DO[.SDO][.DA[.BDA]][FC]LD is the logical device as the IED names its MMS domain: the IED name followed by the logical device instance, for example IED1LD0 for IED IED1 and instance LD0, unless an Edition 2 IED gives the logical device its own name (ldName). Enter it exactly as the IED shows it; Browse and Import SCL fill it in. LN is the logical node, for example MMXU1 or XCBR1. It is followed by the data object (DO) with optional sub data objects (SDO), and by the data attribute (DA) with optional sub attributes (BDA). The functional constraint (FC) is required. An address in the MMS notation with $, as an MMS browser shows it, for example IED1LD0/XCBR1$ST$Pos$stVal, is refused with a hint to the notation above.
A control is addressed at the data object with functional constraint CO, for example IED1LD0/CSWI1.Pos[CO]. EnvisionSCADA builds the control structures Oper, SBOw and Cancel itself, so the address ends at the data object.
| Functional Constraint | Meaning | Read | Write |
|---|---|---|---|
| ST | Status information | Yes | No |
| MX | Measurands (analogue values) | Yes | No |
| CO | Control | No | Yes, through the control model of the IED. See Writing and Controls. |
| SP | Set point | Yes | Yes |
| CF | Configuration | Yes | Yes |
| DC | Description | Yes | Yes |
| EX | Extended definition | Yes | No |
| SV | Substitution (subEna, subVal) | Yes | Yes |
| SG | Setting group | Yes | No |
| SE | Setting group in edit | No | No. The address is refused when the variable is saved. |
| SR, OR, BL | Service response, operate received and blocking (Edition 2) | Yes | No |
| BR, RP, LG, GO, GS, MS, US | Attributes of control blocks, for example RptEna of a report control block | Yes, for diagnostics | No |
No rows match the filter.
Writeable can be set on CO, SP, CF, DC and SV variables. A CO variable is operated from pages, actions, scripts and the API with Writeable cleared; Writeable lets the gateways operate it as well. The values of ST and MX attributes are changed in the IED through substitution (SV) or operated through a control (CO).
| Address | Type | Description |
|---|---|---|
| IED1LD0/XCBR1.Pos.stVal[ST] | INT | Breaker position (Dbpos: 0 intermediate, 1 off, 2 on, 3 bad) |
| IED1LD0/MMXU1.TotW.mag.f[MX] | REAL | Total active power |
| IED1LD0/MMXU1.PhV.phsA.cVal.mag.f[MX] | REAL | Phase A voltage |
| IED1LD0/LLN0.Mod.stVal[ST] | INT | Mode of the logical device |
| IED1LD0/CSWI1.Pos[CO] | BOOL | Breaker control |
| IED1LD0/XCBR1.Pos.q[ST] | WORD | Raw quality flags of the breaker position, for an alarm on one flag |
No rows match the filter.
Data Types
Select the Type that holds the basic type of the attribute in the IED. The table shows the Type that Browse and Import SCL propose for each IEC 61850 basic type. The type of the attribute in the IED, read when the device connects, drives the decoding, and the Type decides how EnvisionSCADA stores the value. A Type that cannot hold the value of the IED is reported when the device connects: the variable shows the FormatError status and the System Log shows one line for it. A control on an SPC or DPC, whose ctlVal is BOOLEAN, requires Type BOOL: 1 or true operates on or close, 0 or false off or open, and any other value is refused. INT on such a control, for example to match the Dbpos values of the position (1 off, 2 on), is reported as FormatError when the device connects.
| IEC 61850 Type | Type | Notes |
|---|---|---|
| BOOLEAN | BOOL | |
| INT8, INT16 | INT | |
| INT24, INT32 | DINT | |
| INT64 | LINT | |
| INT8U | BYTE | |
| INT16U | UINT | |
| INT24U, INT32U | UDINT | |
| FLOAT32 | REAL | |
| FLOAT64 | LREAL | |
| Enum | INT | The number of the enumeration value. Import SCL shows the value texts in the Enumeration Values column. |
| Dbpos | INT | 0 intermediate, 1 off, 2 on, 3 bad |
| Tcmd | INT | The number of the step command value. |
| Quality | WORD | The raw quality flags. See Quality and Time Stamps. |
| Timestamp | STRING | ISO 8601 text in UTC |
| VisString32, VisString64, VisString65, VisString129, VisString255, Unicode255, ObjRef | STRING | |
| Octet6, Octet16, Octet64 | STRING | Hexadecimal text |
No rows match the filter.
Browse and Import SCL list the attributes of the basic types in the table. Structures and the other basic types, such as INT128, Check, EntryTime, Currency, EntryID and the bit strings of control blocks (TrgOps, OptFlds), have no Type and are left out of the lists.
Quality and Time Stamps
IEC 61850 attaches a quality q and a time stamp t to the attributes of a data object. EnvisionSCADA applies the q and t of the data object that encloses the attribute of a variable to its value, for reported and for polled variables, and sets the variable status from the quality.
| IEC 61850 Quality | Variable status |
|---|---|
| Validity good, none of the flags below set | Good |
| Validity invalid | ConnectionLost |
| oldData | ConnectionLost |
| Validity questionable or reserved, or one of the detail flags overflow, outOfRange, badReference, oscillatory, failure, inconsistent, inaccurate | Warning |
| test, operatorBlocked, or source substituted | Warning |
No rows match the filter.
The value is kept in every case, so a page shows the last value together with its status. See the Variable Status article.
To work with a single quality flag, for example in an alarm, add a variable with Type WORD on the q attribute, for example IED1LD0/XCBR1.Pos.q[ST]. The WORD holds the quality bits with bit n of the IEC 61850 bit string as the value 2 to the power n. The two validity bits are bits 0 and 1 of the bit string, so validity reads 0 for good, 2 for invalid, 1 for reserved and 3 for questionable in the lowest two bits of the WORD.
| Quality flag | Value in the WORD |
|---|---|
| Validity reserved | 1 |
| Validity invalid | 2 |
| Validity questionable | 3 |
| overflow | 4 |
| outOfRange | 8 |
| badReference | 16 |
| oscillatory | 32 |
| failure | 64 |
| oldData | 128 |
| inconsistent | 256 |
| inaccurate | 512 |
| source substituted | 1024 |
| test | 2048 |
| operatorBlocked | 4096 |
No rows match the filter.
The time stamp t of the data object becomes the time stamp of the variable, for reports and for polls. The IED moves t when a value attribute such as stVal or mag, or q, changes. Attributes that change without moving t, for example instMag of a measurand or stSeld of a control, take the time a change is received, so every change reaches the historian with its own time. An attribute without a t in its data object, and a value from a data set of single attributes, takes the time it is received, or in a buffered report the TimeOfEntry of the report, so the values of a buffered replay keep the time at which the IED recorded them.
The time stamp passes a plausibility check, and the TimeOfEntry passes the same check. A time before the year 2000, or more than one minute ahead of the EnvisionSCADA server, is replaced by the receive time and reported once in the System Log. A time in the past is kept, so buffered events keep their original time. A time stamp whose time quality reports a clock failure is replaced by the receive time and logged once. A time stamp whose time quality reports that the clock is not synchronized is kept and logged once.
EnvisionSCADA rounds the time of the IED to the microsecond, which restores the time the IED encoded, for example 202 ms instead of 201.99996 ms. The text of a STRING variable on a t attribute is rounded the same way. The historian stores the time to the millisecond, as for every source. Value, quality and time stamp of one data object are applied together.
Writing and Controls
A variable is written from runtime pages, actions, scripts and the API, and by external systems through the gateways when Writeable is enabled. The Converter and the scaling are applied in reverse before the value is encoded in the type of the IED. SP, CF, DC and SV variables are written with a plain MMS write, and the variable takes the written value once the IED confirms the write. A write to a variable of any other functional constraint, for example ST, MX, EX or SG, is refused and logged, and the status of the variable stays unchanged.
The standard write actions behave as follows: Set writes 1, Reset writes 0, Toggle inverts the last value received from the IED, and Momentary On sends true to a control, with the pulse decided by the pulse configuration of the control object in the IED. Toggle requires Type BOOL, and Momentary On requires a control (CO) with Type BOOL.
A CO variable is a control and is written through the control model of the control object. EnvisionSCADA reads the control model (ctlModel) and the select timeout (sboTimeout) from the configuration attributes of the control object when the device connects, so the IED decides the sequence. When the IED does not answer ctlModel, EnvisionSCADA derives the control model from the control structure: SBOw gives 4, SBO gives 2, and Oper alone gives 3, so a command is confirmed only by a CommandTermination. The System Log reports the derived control model when the device connects. A control object with sboClass operate-many keeps its selection after the operate; EnvisionSCADA sends a Cancel after the confirmed operate, so the control object is free for other clients:
| ctlModel | What EnvisionSCADA sends | Completion |
|---|---|---|
| 0 status-only | Nothing: the object is not controllable and the write is refused. | |
| 1 direct-with-normal-security | Oper | Positive write response of the Oper |
| 2 sbo-with-normal-security | Selection by reading SBO, then Oper | Positive write response of the Oper |
| 3 direct-with-enhanced-security | Oper | Positive CommandTermination |
| 4 sbo-with-enhanced-security | Selection by writing SBOw, then Oper | Positive CommandTermination |
No rows match the filter.
The variable takes the new value only after the completion in the table, so a displayed value is always a value that the IED accepted. A refusal, a negative CommandTermination or no CommandTermination within Command Termination Timeout (s) ends the write: the variable keeps its previous value and shows the FormatError status, and the System Log names the AddCause that the IED reported, for example blocked by interlocking (AddCause 10). Without a CommandTermination the log line adds that the command may have executed, because the IED had accepted the Oper. A request that the IED does not answer within Timeout (ms) sets the device Offline, as for every request. For a write from a page, the refusal also appears in a message on the page and in the Reason column of the Write record in the Audit Trail. A write through the Runtime API (POST /API/WriteVariable) or the MCP WriteVariable tool answers with the same text instead of OK, including a command whose outcome is not known because no CommandTermination arrived. When the IED refuses the Oper after a selection, EnvisionSCADA sends a Cancel, so the control object is not left selected. See Troubleshooting for the common AddCause values.
Command Checks sets the check bits of every control. The default, Interlock check, asks the IED to apply its interlocking before it operates. None asks the IED to skip its interlocking, so select None only for a control object without interlocking. Synchrocheck asks the IED to apply its synchronism check. The Test flag of a control is always sent as false.
Every control carries the Originator Category (orCat) and the Originator Identifier (orIdent) of the device. The IED checks the Originator Category against its switching authority: the local or remote setting Loc of the bay and, from Edition 2, LocSta for the station level. A control whose category does not match the active control level is refused with AddCause blocked by switching hierarchy, for example a Remote control command while the bay is switched to station control. Station control fits EnvisionSCADA as the station SCADA; Remote control fits EnvisionSCADA in the role of a control centre.
The Originator Identifier appears in the event list of the IED. For a control issued by a logged-in user, EnvisionSCADA appends the user name after a slash, for example ENVISION/operator1, cut at 64 characters. A control without a logged-in user, for example from a schedule or an alarm action, carries the Originator Identifier alone.
Command Select Timeout limits how long an operator selection is held. The IED has its own select timeout, sboTimeout, after which it drops a selection by itself. Set Command Select Timeout below the sboTimeout of the control objects, so EnvisionSCADA cancels the selection before the IED drops it. When Command Select Timeout is not below the sboTimeout read from the IED, EnvisionSCADA holds the selection for a shorter time that ends before the sboTimeout, by a quarter of the sboTimeout and at most one second, so <Variable>.Selected and <Variable>.SelectRemaining never show a selection that the IED has dropped. The System Log names the shorter hold when the device connects and with every selection. Command Termination Timeout (s) is the wait for the CommandTermination under enhanced security, after the IED accepted the Oper; raise it for switchgear that needs longer to operate.
Operator Select Before Operate
Command Mode Select before operate (operator) splits a control into two operator actions, configured on a button or another clickable object with the Select Command and Execute Command actions. Select Command selects the control object: EnvisionSCADA sends the selection, SBO or SBOw according to the control model, and waits for the IED to confirm it. The control object is then reserved at the IED and nothing has moved in the field yet. Execute Command then sends the Oper. The variable takes the new value only after the IED confirms the operate, under enhanced security after the CommandTermination.
The mode applies to control objects with the control model sbo-with-normal-security or sbo-with-enhanced-security, and it can be selected on controls (CO) only. Select Command on a control object with a direct control model is refused; the System Log names the control model when the device connects.
The reservation is held by the IED, not by EnvisionSCADA, and it is released again when the operator executes it, when the operator cancels it, or when the hold runs out, which is Command Select Timeout or the shorter time described under Writing and Controls; in the last two cases EnvisionSCADA sends a Cancel, so the control object is not left selected in the field. When the IED refuses the Oper of Execute Command, EnvisionSCADA sends a Cancel as well. When the association to the IED is lost, the selection ends and the IED releases it on its own.
A selection belongs to the operator who made it. Another user sees that the control object is selected and by whom, and cannot execute or cancel that selection. A third action, Cancel Selection, releases the control object again without operating it.
| Variable | Description | Example | Units / Format |
|---|---|---|---|
| <Variable>.Selected | True while the control object is selected at the IED. Bind a lamp or a button state to it. | True | Boolean |
| <Variable>.SelectedBy | User name of the operator holding the selection. Empty when the control object is not selected. | Operator1 | Text |
| <Variable>.SelectRemaining | Seconds left before the selection is released. Bind a countdown to it. 0 when the control object is not selected. | 14 | Seconds |
No rows match the filter.
These three variables exist for every control configured for an operator selection, from the moment the device starts, so a faceplate resolves them before the first selection is made. They are read only.
Automated writes are unaffected. A Python script, a schedule, an alarm action or a gateway write to the same control performs the selection and the operate in one step, because there is no operator to pause for. The two-stage actions are available on pages only, for the same reason: they wait for a person. The exchange with the IED is identical; only the pause differs.
Build the controls once as a group symbol master with the control name as a replacer, then create one instance per control, rather than wiring the buttons per page. The selected state must always come from these variables. A local variable set by a button and cleared by a script only looks the same: it reports a selection that the IED never made and keeps counting down after the association is gone.
With Signature Required selected on the variable, the electronic signature is asked at Execute Command. Select Command and Cancel Selection run without a signature.
The result of each stage is recorded in the System Log and in the Audit Trail, with the reason of a refusal in the Reason column. The page shows the reason of a refusal in a message. A refusal by the IED also sets the variable to FormatError.
Browse
The Browse button on the IEC61850 Variables page opens the Browse dialog, which shows the data model of the IED as a tree of logical devices, logical nodes, functional constraints, data objects and data attributes. A logical device or a logical node is read from the IED when it is opened; the functional constraints, data objects and attributes of a logical node come with it. The tree lists the functional constraints ST, MX, CO, SP, CF, DC, EX, SV and SG.
Browse uses the running association of the device when the device is connected, so it needs no second association to the IED. When the device is not connected, for example while it is disabled or in Simulation, Browse opens a short-lived association with the settings of the device and closes it again afterwards. Browse is available on the primary server only.
Each attribute with a Type shows its Address, its IEC 61850 Type and the proposed Type next to the name, and has a checkbox. Under CO the data object itself is the entry to select, for example Pos under CSWI1, because a control is addressed at the data object. The search field lists the selectable entries whose name or Address contains the text, from the logical nodes opened so far; Expand All reads every logical node first and then changes to Collapse All. The checkbox in the header row selects or clears the entries shown, and the footer shows how many variables are selected. One level of the tree, as read from the IED, is limited to the first 5000 entries, and the dialog says so when the limit is reached.
Tick the entries to add and press Add Selected. Each selected entry is created as a variable with its Address and Type filled in, with Writeable cleared; select Writeable afterwards only on the variables that a gateway has to write. The result reports how many variables were added and how many were skipped because a variable with that name already exists, and lists the entries that could not be created with the reason.
The suggested Name follows the path of the attribute with dots, for example IED1LD0.MMXU1.TotW.mag.f for IED1LD0/MMXU1.TotW.mag.f[MX], and a control gets the suffix .Oper, for example IED1LD0.CSWI1.Pos.Oper. Characters other than letters, digits and underscores in a part of the path are written as an underscore. When two selected entries give the same name, the second one gets an underscore and its functional constraint appended.
With Start names with {Device}. selected, which is the default, each variable name starts with the {Device} replacer, so the same entry added on several devices, or on a template device and its instance devices, gives each device its own variable. Clear Start names with {Device}. to use the suggested Name as it is. A plain name must be unique across the whole project, and a template device with instance devices requires the {Device} replacer.
Import SCL
The Import SCL button on the IEC61850 Devices page creates a device and its variables from an SCL file of the IED engineering: an ICD, IID, CID, SCD or SED file exported from the IED configuration tool or the system configuration tool. Select the file in SCL File. The file is read when it is selected, and nothing is created until Create is pressed. The file can be up to 100 MB. A file that contains a document type declaration (DOCTYPE) is refused for security reasons; remove the DOCTYPE or export the file again from the configuration tool. The dialog also reports a file that contains no IED with an MMS access point.
An SCD or SED file holds several IEDs. When the file holds more than one IED or access point with an MMS server, select the IED and the Access Point in the lists that appear; with one, the preview appears at once.
An ICD file describes an IED type and carries the placeholder IED name TEMPLATE, while the IED itself uses the name it received in the system engineering. Enter that name in IED Name, so the addresses get the logical device names the IED shows, for example IED1LD0 instead of TEMPLATELD0. The field is filled with the IED name of the file when that name is not TEMPLATE. A logical device with its own ldName keeps that name.
Variables from selects which variables are offered. Data set members, the default, lists the attributes of the data sets of the IED, which are the variables that the reports update. The value attributes are selected; the q and t attributes are listed unselected, because the quality and the time stamp of the data object are applied to the value anyway. Whole data model lists every attribute of the functional constraints ST, MX, SP, CF, DC, EX, SV and SG, and every control (CO) of the IED; the value attributes of the data sets are selected and every other row is listed unselected. Start names with {Device}. works as in Browse.
The Device section of the preview shows Name, IP Address, Port, Remote AP Title, Remote AE Qualifier, Remote P Selector, Remote S Selector, Remote T Selector, Report Control Blocks and Description, and each can be changed before the device is created. The Name is the IED name, or the name entered in IED Name, with characters other than letters, digits and underscores written as an underscore. Port is 102. IP Address and the OSI addressing come from the access point in the Communication section; a value that the file does not carry keeps its default. Report Control Blocks lists every report control block of the IED, with the instances of an indexed report control block as alternatives separated by |. The Description is the description of the IED, or its manufacturer and type. All other device settings take their default values and can be changed afterwards in the Edit device dialog.
The Variables section lists the candidates with Name, Address, Type, IEC 61850 Type, Data Set, Description and Enumeration Values. The Name can be changed. The search field narrows the list, the checkbox in the header row selects or clears the rows shown, and a count shows how many variables are selected. Data Set names the data set that contains the attribute. Description is taken from the description of the attribute or the data object in the file. Enumeration Values shows the texts of an enumeration as number=text, for reference only: the variable stores the number. Variables are created with Writeable cleared, controls included. Two candidates with the same name are told apart by an underscore and the functional constraint appended to the second one. At most 20000 variables are listed. Warnings found while reading the file, such as skipped array attributes, are listed under Warning in the dialog.
Press Create to create the device and then the selected variables. The result names the device and the number of variables created, and lists the variables that could not be created with the reason; the device is kept in that case, and the remaining variables can be added with Browse or Add. When the device itself cannot be created, for example because the name is already in use, the dialog stays open with the reason. Changing IED, Access Point, IED Name or Variables from reads the file again.
Redundancy
In a redundant installation only the primary server associates with the IEDs. The standby server opens no association and does not browse. After a failover the new primary associates, reserves and enables the report control blocks and sends a general interrogation, so the current values are correct again. See the Redundancy article.
A reservation of the old primary can outlive it. Whether another client may take over a report control block while the reservation of the previous owner lasts differs per IED and is described in the PIXIT of the IED. Until a block is free, the variables of its data set are polled and the block is tried again every 60 seconds, or at the GI Interval (s) when that is shorter, and alternatives separated by | in Report Control Blocks let the new primary take another instance of the report at once. Buffered events that occur during this takeover can be missed; the general interrogation restores the current state.
Engineer both servers into the IED configuration. An IED can admit MMS clients by IP address, and an SCD can assign report control blocks to named clients, so both redundant servers must be part of that configuration. List one instance of each report for each server as alternatives on one line, for example IED1LD0/LLN0.urcbMX01[RP]|IED1LD0/LLN0.urcbMX02[RP].
Simulation
With Simulation selected the device does not open its association. Its variables stay available and are read and written in memory like Local variables, with a Good status, so pages, alarms and scripts can be tested without the IED. The Channel State variable of the device reads Simulation, while a connected device reads Connected, so a communication status indicator on a page should test the Channel State. Written values are held in memory only and reset when the application restarts.
Browse still reads the real IED with a short-lived association, so the data model can be browsed while the device is simulated.
Troubleshooting
The Channel State variable of the device, for example IED1.ChannelState, shows the state of the association. Build a communication alarm on it, for example IED1.ChannelState != "Connected". The ExecutionTime variable of the device, for example IED1.ExecutionTime, holds the duration of the last poll cycle in milliseconds, and 0 while every variable is updated by reports.
| Channel State | Meaning |
|---|---|
| Connecting | EnvisionSCADA is establishing the association. |
| Connected | The association is established. |
| Offline | The association is down, for example because the IED does not answer or refused the association. The variables of the device show ConnectionLost, and EnvisionSCADA reconnects after Reconnect Delay (s), with a doubling delay while attempts fail or associations end within 60 seconds. |
| Disabled | The device is disabled. |
| Simulation | The device runs in Simulation. |
No rows match the filter.
The following situations are the usual ones during commissioning:
| Situation | Cause and remedy |
|---|---|
| Channel State stays Offline although the IED answers on the network | The IED refuses the association. The System Log names the reason when the IED gives one, for example authentication failure for a wrong Authentication Password, or Association rejected (transient) when all its client associations are in use. When the IED closes the connection without a reason, the System Log lists the usual causes: a wrong Authentication Password, AP title or selector, or no free client connection. Compare IP Address, Port and the OSI Addressing (advanced) settings with the Address of the access point in the SCL file, and check Authentication Password. Check that the IED admits this server, by IP address or by Local AP Title, and that it has an association free. |
| A variable shows FormatError after the device connects | The address does not exist in the IED, or the Type cannot hold the type of the attribute. The System Log names the variable and the reason. An object that the IED does not describe is asked for again every 60 seconds, and the System Log reports when the variable is available. |
| Variables show FormatError on an IED with a small PDU size | The description of a data object or the member list of a data set does not fit into the PDU size that the IED negotiated. The System Log names the variable and the reason. The IED decides the PDU size; Max PDU Size only proposes it. |
| The System Log line after the association reports a report control block as not enabled | No instance of the line could be reserved or enabled, for example because another client holds it. Free an instance in the IED, or add an alternative with |. The variables of its data set are polled meanwhile, and the line is tried again every 60 seconds, or at the GI Interval (s) when that is shorter. |
| A reported value carries the receive time, or the TimeOfEntry of a buffered report, and the Good status | The data set contains the attribute but not its data object. Build the data set from whole data objects, or add the q and t attributes to it. |
| Reported values keep the value of the general interrogation after the connect | The report control block has no data change, quality change or integrity trigger in the IED, so the IED reports only on a general interrogation. The System Log reports this once. Set Integrity Period (ms) or GI Interval (s) on the device, or add data change to the trigger options of the report control block in the IED. |
| The System Log reports that events may be missing | The IED reported a buffer overflow (BufOvfl), the IED refused the resume point after an interruption, or an unbuffered report skipped sequence numbers. Events of the interruption can be missing from the historian; the general interrogation that follows restores the current state. |
| A control is refused | See the AddCause in the System Log and the table below. |
No rows match the filter.
When the IED refuses a control, the System Log names the AddCause from the LastApplError of the IED. The common values:
| AddCause in the System Log | Meaning |
|---|---|
| blocked by switching hierarchy (local/remote) (AddCause 2) | The Originator Category does not match the active control level of the IED (Loc, LocSta). Check the local or remote switching of the bay and the Originator Category of the device. |
| blocked by interlocking (AddCause 10) | The interlocking of the IED does not permit the operation in the current state of the installation. |
| blocked by synchrocheck (AddCause 11) | The synchronism check of the IED was not met. |
| blocked by mode (AddCause 8) | The logical node is in a mode that does not accept controls, for example blocked. |
| object already selected (AddCause 19), locked by other client (AddCause 27) | Another client holds a selection of the control object. |
| object not selected (AddCause 18) | The Oper arrived without a valid selection, for example after the IED dropped the selection at its sboTimeout. Set Command Select Timeout below the sboTimeout. |
| time limit over (AddCause 16) | A time limit of the IED for the control ran out. |
| command already in execution (AddCause 12) | A previous control of the control object is still being executed. |
| position reached (AddCause 5) | The control object is already in the commanded position. |
| not supported (AddCause 1) | The control object does not accept this control, for example because of its control model or the value. |
| inconsistent parameters (AddCause 26) | The Oper does not match the selection, or a parameter of the control does not fit the control object. |
No rows match the filter.
Verbose in the Diagnostics section of the device adds detail to the System Log. 0 logs connection details and errors. 1 also logs one line per MMS request and per received report, which shows the report control block sequence and every report as it arrives. 2 also logs every PDU in hexadecimal with a decoded summary. Use 1 or 2 only while commissioning or diagnosing, because they increase the log volume significantly.
Notes
EnvisionSCADA operates as an IEC 61850 client only. The communication uses MMS: reads, reports, writes and controls.
The status and the control of a switch are separate variables: for example IED1LD0/XCBR1.Pos.stVal[ST] for the breaker position and IED1LD0/CSWI1.Pos[CO] for the breaker control.
Every enabled variable of an enabled device counts as one licence point. The quality and the time stamp that arrive with a value count as part of that variable; a variable of its own on a q or t attribute counts as a point.
The IEC61850 driver is available in the Windows installation and in the Docker deployment. It needs outbound TCP connections to the IEDs only. On a test PC another tool can already hold port 102; an IED simulator then listens on another port, which is entered in Port.