IEC 61850 MMS
The IEC 61850 driver reads values from protection relays and other IEDs over MMS. It polls the IED for the values of the signals. For what all drivers have in common, see How drivers work.
Protocol and role
| Role | MMS client. YTCC connects to the IED and polls it. |
| Transport | MMS over TCP. Keep the IED and the YTCC server in a protected network. |
| Default port | 102 |
| Devices per driver | One IED. For several IEDs, add one driver per IED. |
| Driver type | IEC 61850 (iec61850) |
Device parameters
Set these on the device in Drivers → devices (see Add drivers and devices). The help mark next to each parameter shows a short description.

| Parameter | Default | Meaning |
|---|---|---|
| Host | — (required) | Address of the IED. |
| Port | 102 | MMS port. |
| Poll interval (ms) | 2000 | Time between two reading rounds; at least 50. |
| Timeout (ms) | 5000 | How long the driver waits for each value; at least 50. Connecting waits at least 30 seconds. |
| Set invalid on disconnect | on | When the connection is lost, mark all signals as Bad · Not connected. |
Only Host and Port reconnect the IED; the other parameters take effect at once.
Signal address
Set the address on the Value source tab of the signal, under Address — IEC 61850: the object reference of
one data attribute, in the form LD/LN$FC$DO$DA…:
- one
/between the logical device and the logical node; $between all other parts, with the functional constraint (for exampleMXorST) right after the logical node.
| Value | Example |
|---|---|
| Phase A current | RelayLD/MMXU1$MX$A$phsA$cVal$mag$f |
| Breaker position | RelayLD/XCBR1$ST$Pos$stVal |
| Protection trip | RelayLD/PTOC1$ST$Op$general |
The reference must end at a single value (…$mag$f, …$stVal, …$general), not at a whole data object. In import
files, write the same text in the address column; it is stored unchanged.
Data types
| IED data type | Value in YTCC |
|---|---|
| Boolean | On or off |
| Integer, unsigned | Int32, UInt32 |
| Floating point | Float32 |
| Visible string | Text |
| Octet string, bit string | Bytes |
Reading
When the connection opens, the driver loads the data model of the IED, which can take some time. Then it reads every signal once per Poll interval (ms), one after the other. A new or changed signal is read at once. With many signals, one round can take longer than the poll interval; rounds that cannot start in time are skipped.
Quality and time
| Situation | Quality |
|---|---|
| The value was read | Good |
| Read error, timeout | Bad for that signal |
| No signal of a round could be read, or no connection | Bad · Not connected for all signals (with Set invalid on disconnect) |
When the connection is lost, the signals keep their last value. The time of a value is the time it was read.
Reconnecting
After the connection is lost, the driver waits 5 seconds and connects again, without limit. A change of Host or Port reconnects at once.
Diagnostics
Read now on the Value source tab reads the reference once (waiting at most 2 seconds):
| Text | Meaning |
|---|---|
| Invalid IEC 61850 address: '…' is not an object reference (LD/LN$FC$DO$DA) | The address is not in the $ form |
| No connection to the device (IED … at …) | The IED is not connected |
| Timeout — no response within … ms | The IED did not answer |
| IEC 61850 read failed: … | The IED refused the reference, for example because it does not exist |
| Unsupported data type … | The reference does not point to a value of a type in Data types |
| Symptom | Likely cause |
|---|---|
| All signals Bad | References in the dotted form, or without the functional constraint |
| One signal Bad | The logical node instance (for example MMXU1 or MMXU2) or the functional constraint does not exist; the reference ends at a structure |
| Connecting takes long | The IED has a large data model; this is normal |
| Values update slowly | Many signals or a short Timeout (ms): a round takes longer than Poll interval (ms) |
Supported services
| Service | Supported |
|---|---|
| Associate | Yes |
| Data model upload when connecting | Yes |
| Read data values | Yes, one value per request |