Everything engineers need to know about Basic Types, Common Data Classes, and how they appear in GOOSE, Sampled Values, MMS, and SCL.
IEC 61850 is much more than a communication protocol—it is a semantic language designed to describe protection, control, measurement, and automation inside modern substations. At the core of this language lies one essential concept:
👉 Every piece of information in IEC 61850 must have a defined, standardized data type.
These data types ensure:
- consistency across vendors
- predictable communication
- correct engineering in SCL
- reliable behavior in GOOSE, SV, and MMS
- full interoperability across relays, merging units, gateways, and tools
This article explains all IEC 61850 data types—from the smallest boolean to complex phasor structures—using clear English and practical examples.
Table of Contents
1. Why IEC 61850 Has Its Own Data Types
Legacy protocols (Modbus, DNP3, IEC 60870-5-104) do not define meaning. They only send numbers.
IEC 61850 does the opposite.
It defines:
- what a breaker position is
- what its timestamps and quality bits mean
- how measurements must be structured
- how to encode analog samples
- how to group data for reporting and GOOSE
This works because IEC 61850 uses a layered data model:
- Basic Data Types (BDTs) → raw numeric/boolean/string types
- Common Data Classes (CDCs) → structured substation data types
- Data Objects (DOs) → real functional elements inside Logical Nodes
- Data Attributes (DAs) → the smallest addressable values

Understanding these layers is the key to mastering IEC 61850 engineering.
2. Basic Data Types in IEC 61850
Defined primarily in IEC 61850-7-2 and encoded per IEC 61850-8-1, these are the primitive building blocks.
2.1 Booleans and Integer Types
IEC 61850 uses a range of Boolean and integer types to represent the most common values found in protection, control, measurement, and communication services. These are the simplest data types in the standard and appear in almost every Logical Node.
Boolean and Integer Types
| Data Type | Description | Typical Uses / Examples |
|---|---|---|
| BOOLEAN | TRUE or FALSE value | Trip (Op.general), breaker open/close (Pos.stVal), alarms, enabling/disabling logic |
| INT8, INT16, INT32, INT64 | Signed integers | Operation counter, fault counters, settings requiring negative ranges |
| INT8U, INT16U, INT24U, INT32U | Unsigned integers | stNum and sqNum in GOOSE, smpCnt in SV, configuration indexes, engineering counters |
Where These Data Types Are Used
Booleans and integers are found in almost every part of IEC 61850:
GOOSE Messaging
stNum(state number) → unsigned integersqNum(sequence number) → unsigned integertestflag → BOOLEANsimulationflag → BOOLEAN
Sampled Values (SV)
smpCnt(sample counter) → unsigned integerconfRev→ unsigned integer- Synchronization indicators → BOOLEAN
Logical Node Data Objects
PTOC.Str→ BOOLEANPTOC.Trip → BOOLEANOpCntRs→ integer counter
2.2 Floating-Point Numbers
IEC 61850 uses floating-point data types to represent measurement values that require decimals and higher numerical accuracy. These values are essential for protection, metering, power quality, and monitoring applications.
Floating-Point Types
| Type | Meaning | Standard |
|---|---|---|
| FLOAT32 | IEEE 754 single-precision floating-point (32-bit) | IEC 61850-7-2 / IEC 61850-8-1 |
| FLOAT64 | IEEE 754 double-precision floating-point (64-bit) | IEC 61850-7-2 / IEC 61850-8-1 |
Both formats follow strict encoding rules so that all IEDs interpret values consistently, regardless of vendor.
Where Floating-Point Numbers Are Used
Floating-point values appear in almost every measurement Logical Node, including:
Protection Measurements (MMXU, MMTR, etc.)
- Phase currents →
MMXU.A.phsA.cVal.mag.f(FLOAT32) - Phase voltages →
MMXU.PhV.phsA.cVal.mag.f - Frequency →
MMXU.Hz.mag.f
Power and Energy Values
- Real power (P)
- Reactive power (Q)
- Apparent power (S)
- Power factor (Pf)
Symmetrical Components
- Positive-sequence current (I1)
- Negative-sequence current (I2)
- Zero-sequence current (I0)
- Same for voltages (V1, V2, V0)
Sampled Values (SV)
SV streams often carry raw instantaneous sample values (instMag.i and instMag.v) encoded as floating-point numbers or scaled integers, depending on implementation.
Why Floating-Point Data Types Matter
Floating-point numbers allow IEC 61850 systems to represent:
- Analog magnitudes with high precision
- Power system calculations
- Dynamic changes in current and voltage
- Accurate digital protection algorithms
Protection relays rely on these values to compute:
- Differential currents
- Impedance trajectories (for distance protection)
- Harmonics and power quality metrics
- Real-time phasors
Without floating-point values, digital substations could not achieve the accuracy required for advanced protection and control.
2.3 Bitstrings
EC 61850 uses structured bitstrings to represent several types of status information. These bitstrings are not arbitrary flags—they follow strict definitions in IEC 61850-7-3. The most common structured bitstrings include:
Quality (q) Bitstring
The quality attribute contains multiple sub-fields that describe the validity and condition of a value.
Quality includes flags such as:
- validity (good, invalid, questionable)
- source (process, substituted, test)
- test (indicates test mode)
- operatorBlocked (operator has blocked command)
- derived (value calculated, not measured)
- overflow
Source (src) Bitstring
Describes how data was obtained:
- process (real measurement)
- substituted (manually replaced)
- test (test device generated data)
Status and Control Bitstrings
Used by control models and logical nodes to indicate states such as:
- local/remote (ctlModel)
- interlock check active
- synchrocheck active
- command blocked
- command pending
Mode and Behavior Bitstrings
IEC 61850 also defines bitstrings for IED modes:
- on
- blocked
- test
- test-blocked
- off
Test Flag (t)
IEC 61850 defines a Test Flag, often shown as t, used inside GOOSE and Sampled Values to clearly indicate whether a message is:
- real (production)
or - simulated (test mode)
This flag ensures that protection IEDs do not accidentally react to test signals while the substation is in normal operation.
How the Test Flag Works
In GOOSE (IEC 61850-8-1)
The test flag is part of the GOOSE PDU (test field).
- test = FALSE → production message
- test = TRUE → simulated test message
Subscribers behave as follows:
- If the IED is in production mode → ignore all test messages
- If the IED is in test mode → only accept test messages
This prevents accidental trips during commissioning.
In Sampled Values (IEC 61850-9-2)
SV uses a similar mechanism, called the Simulation Indicator (S or Simulate flag) inside the ASDU.
- S = TRUE → SV frame came from a test device
- S = FALSE → SV frame is from the real merging unit
Subscribers must ignore simulated SV messages unless they are explicitly placed in test mode.
This ensures:
- No false protection operation during testing
- Tools like Omicron test sets can inject SV safely
2.4 Strings
IEC 61850 defines several string types used to store names, identifiers, descriptions, labels, and raw byte sequences. These string types appear throughout the data model, SCL configuration, GOOSE/SV PDUs, and MMS communication.
Common IEC 61850 String Types
| Type | Usage / Purpose |
|---|---|
| VisString32 / VisString64 / VisString129 / VisString255 | Human-readable names, labels, engineering descriptions (ASCII visible characters). |
| UnicodeString | International text; supports multilingual identifiers. |
| OCTET STRING | Raw byte sequences such as MAC addresses, GUIDs, object identifiers, and protocol-specific values. |
Where Strings Are Used in IEC 61850
These string types appear widely across the standard, including:
- gocbRef – Reference to a GOOSE control block (VisString64)
- datSet – Name of the DataSet linked to a GOOSE/SV control block (VisString64)
- svID – Identifier of a Sampled Value stream (VisString64)
- RptID / report descriptions – Report control block identifiers and engineering notes
- SCL file elements – IED names, Logical Device names, Logical Node names, DataSet names, communication labels, etc.
Strings allow IEC 61850 to remain self-describing because devices communicate not just values but also readable, meaningful identifiers.
2.5 Time Types
IEC 61850 defines several dedicated time formats used for events, logging, reporting, GOOSE, and Sampled Values. These formats ensure consistent, interoperable timestamping across all IEDs.
Main IEC 61850 Time Types
| Type | Meaning / Purpose |
|---|---|
| Timestamp | A 64-bit time value used for events, GOOSE, Sampled Values, and data attributes. Contains seconds since epoch + fractional nanoseconds + time quality. |
| EntryTime | A 48-bit timestamp used for logging and report entries. Less detailed than Timestamp but optimized for logs. |
| TimeOfDay | A legacy format inherited from earlier IEC standards. Still supported but rarely used in modern IEC 61850 systems. |
3. Constructed Data Types (CDTs) – The Heart of IEC 61850
Defined in IEC 61850-7-3, these provide semantic meaning to data.
Each Common Data Class (CDC) combines multiple attributes into a functional structure.
3.1 Status CDCs
| CDC | Meaning | Contains |
|---|---|---|
| SPS (Single Point Status) | 1-bit status | stVal, q, t |
| DPS (Double Point Status) | Two-bit | stVal = (On, Off, Intermediate) |
| INS (Integer Status) | Integer with status semantics | stVal, q |
| BCR (Binary Counter Reading) | Pulse counter | actVal, q, t |
Used for:
- breaker positions
- switch states
- interlocking
- digital inputs
- counters and event meters
3.2 Measurement CDCs
| CDC | Meaning |
|---|---|
| MV (Measured Value) | Float + quality + timestamp |
| CMV (Complex Measured Value) | Magnitude + angle |
| WYE | 3-phase measurements: A, B, C, N |
| SEQ | Symmetrical components |
| SAV | Raw instantaneous sample (used in SV) |
These represent nearly every analog value in a substation.
3.3 Control CDCs
| CDC | Purpose |
|---|---|
| SPC (Single Point Control) | ON/OFF breaker control |
| DPC (Double Point Control) | Tap changers, switches |
| INC (Integer Control) | Numerical settings |
| ENC (Enumerated Control) | Mode selection |
Control CDCs include:
- SBO / SBO with enhanced security
- Operate sequencing
- Check conditions
- Timeouts
- Select-before-operate logic
These are the data types behind:
- breaker control
- reclosing operations
- tap changer control
- mode switching (auto/manual)
3.4 Setting CDCs
| CDC | Use |
|---|---|
| SP (Setting Parameter) | Boolean or enumeration |
| ING (Integer Setting) | Trigger levels, counters |
| ASG (Analog Setting) | Thresholds (e.g., 0.8 pu) |
4. Data Objects (DOs) Built from CDCs
Logical Nodes (IEC 61850-7-4) contain Data Objects, which are built from Common Data Classes.
Example: XCBR (Circuit Breaker)
| DO | Type | Meaning |
|---|---|---|
| Pos | DPS | Position (open/close) |
| BlkOpn | SPS | Blocking open |
| BlkCls | SPS | Blocking close |
| OpCnt | BCR | Operation counter |
Every manufacturer must follow this structure exactly.
That’s why interoperability works.
5. Data Attributes (DAs): The Final Level
Each DO contains attributes like:
- stVal → primary value
- q → quality
- t → timestamp
- subEna → substitution enable
- ctlModel → control behavior
- Oper → control commands
Example:
XCBR1.Pos.stVal = 1 (breaker closed) XCBR1.Pos.q = good XCBR1.Pos.t = 2025-02-14T10:32:50.123Z6. How IEC 61850 Data Types Are Encoded in MMS, GOOSE, and SV
Each service uses the same types but encodes them differently.
6.1 In MMS (Reports, Controls, SCADA)
Encoded using ASN.1 BER rules:
- Boolean → 1 byte
- INT16 → 2 bytes
- FLOAT32 → 4 bytes
- String → length-prefixed
- Timestamp → 8 bytes
This ensures interoperability across networks.
6.2 In GOOSE Messages
Every member of the GOOSE allData[] list retains its IEC-61850 data type.
Example:
- stVal → ENUMERATED
- q → BITSTRING (16 bits)
- t → Timestamp
GOOSE is simply a fast multicast wrapper around IEC 61850 types.
6.3 In Sampled Values (SV)
SAV (Sampled Analog Value) is the main type.
A SAV includes:
- instMag.i → INT16 or INT32
- q → Quality flags
The ASDU uses:
- svID → VisibleString
- smpCnt → INT16U / INT32U
- confRev → INT32U
- allData → SEQUENCE OF SAV
SV is extremely strict because protection accuracy depends on correct encoding.
7. SCL and Data Types (IEC 61850-6)
SCL files define types through:
- BDA → Basic Data Attributes
- DAType → Composite types
- DOType → Data Object definitions
- LNodeType → Logical Node templates
Example DOType for a breaker position:
<DOType id="DPC_1" cdc="DPC">
<DA name="stVal" bType="Enum" />
<DA name="q" bType="Quality" />
<DA name="t" bType="Timestamp" />
</DOType>Engineering tools validate type consistency via SCL.
8. Why Understanding IEC 61850 Data Types Matters
1. Accurate GOOSE mapping
Incorrect types → subscribers reject frames.
2. Correct SV decoding
Relays must understand data ordering and size exactly.
3. Report and Dataset engineering
Only valid CDC attributes may appear in a DataSet.
4. Control model correctness
DPC vs SPC → completely different semantics.
5. Gateway mapping
Mapping IEC 61850 to Modbus/DNP3 requires knowing:
- numeric type
- status semantics
- quality mapping
6. Cybersecurity filtering
IEC 62351-6 signs data based on type encoding.
9. Practical Examples
Example 1 — Breaker Position
XCBR1.Pos.stVal → DPS (0=open, 1=closed) XCBR1.Pos.q → Quality XCBR1.Pos.t → Timestamp
Example 2 — Phase Current
MMXU1.A.phsA.mag.f → FLOAT32 value
MMXU1.A.q → Quality
MMXU1.A.t → Timestamp
Example 3 — SV Sample
SAV.instMag.i → INT16 (raw sample) SAV.q → Quality10. Summary Table — All IEC 61850 Data Type Classes
| Layer | Standard | Purpose |
|---|---|---|
| Basic Data Types (BDTs) | 7-2, 8-1 | Boolean, integers, floats, timestamps, strings |
| Common Data Classes (CDCs) | 7-3 | Structured substation data types |
| Data Objects (DOs) | 7-4 | Functional elements (breaker position, voltage, trip) |
| Data Attributes (DAs) | 7-3 | stVal, q, t, settings, control attributes |
| Encoding | 8-1, 9-2 | ASN.1 (MMS/GOOSE), raw samples (SV) |
11. Conclusion
Data types are the foundation of IEC 61850. They give meaning, structure, and semantic consistency to every measurement, status, command, and sample transmitted in a digital substation.
By standardizing:
- how values are represented
- how they are grouped
- how timestamps and quality behave
- how communication is encoded
IEC 61850 ensures:
✔ Interoperability across vendors
✔ Predictable protection behavior
✔ Reliable GOOSE and SV performance
✔ Clean SCL engineering
✔ Future-proof system design
Anyone working with protection relays, SCADA gateways, or IEC 61850 networks must understand these types to engineer safe and accurate systems.
