Skip to main content

IEC 61850 Managed Server

Purpose

This target exposes variables in a forwarding group as IEC 61850 MMS objects. An IEC 61850 client can browse the generated logical-device model, read values, receive the default reports and Journal entries, and write values when both target and variable permissions allow it. Journal records can be kept in memory only or persisted to SQLite through the Journal storage editor.

The target uses the standard TCP service channel. Forwarding-group membership, target enablement, and common channel fields are described in Data Forwarding.

Open the plugin

Open Development Configuration -> Data Forwarding, save the forwarding-group range, add a target using IEC 61850 Managed Server, and then open the target's Target properties and Variable properties editors.

Minimal configuration

  1. Select TCP service and keep the default bind address 0.0.0.0:102, or choose another free port for commissioning.
  2. Keep the identity defaults unless the client requires a specific vendor, model, or revision.
  3. Save the target, open Variable properties, and assign a unique object reference to every variable to expose.
  4. Enable the forwarding group and target. Use the dedicated target debug page to confirm the model and values before connecting the external client.

Target properties

Channel and identity

SettingDefaultConfiguration
Channel typeTCP serviceThis plugin accepts only the TCP service channel.
Local bind address0.0.0.0:102Enter the local IP and listening port. Port 102 is the standard MMS port and may require elevated privileges; use a free high port during testing.
Vendor nameThingsGatewayValue returned by the MMS Identify service.
Model nameIEC61850_NetValue returned by the MMS Identify service.
Revision1.0Value returned by the MMS Identify service.
ACSE passwordEmptyWhen non-empty, the client must use the same ACSE password. Empty disables password authentication.

Capacity and file service

SettingDefaultRange / rule
Maximum MMS PDU65000 bytesMust be at least the protocol minimum and no greater than 65535. Lower it when a client has a smaller receive buffer.
Maximum data-set members100Maximum members in a static or dynamic data set.
Maximum dynamic data sets per association10Maximum dynamic data sets one client association may create.
Maximum open files per connection5Maximum simultaneous FRSM file sessions for one association.
File-session timeout30000 msIdle FRSM sessions are closed after this interval.
Maximum ObtainFile tasks5Maximum concurrent file retrieval tasks.

Report and Journal limits

SettingDefaultConfiguration
Maximum buffered reports per BRCB1024Number of reports retained for later replay by one buffered report control block.
Buffered-report byte budget65536 bytesByte budget for one BRCB buffer.
Allow writesEnabledTarget-level gate for MMS Write and variable RPC write-back. Disable it to make every mapped object read-only.
Journal storageSQLite enabledOpen the nested editor to choose the database type, connection string, table, retention, time zone, cache, queue, and split-table options.

Journal storage editor

The default Journal storage is SQLite:

FieldDefaultConfiguration
Journal nameLLN0$EventLogName registered under every logical device. Keep it stable so clients can keep their browse configuration.
EnableEnabledDisable to keep no Journal records.
Database typeSQLiteSelect a provider supported by the common protocol-event storage editor.
Connection stringData Source=Logs/IEC61850/iec61850_{TargetId}.db;...Keep {TargetId} when several targets share a runtime. Use a writable path and provider-specific keywords.
Table nameiec61850_journalTable used for persisted entries.
Retention days30Removes entries older than this many days; 0 disables time-based cleanup.
Time zoneUTCStored occurrence time is UTC when no time zone is selected. Choose a site time zone only when the client requires local wall-clock display.
CacheEnabledEnables the storage outbox/cache used while the database is unavailable.
Queue maximum100000Maximum queued records before new records are rejected.
Cache file maximum length262144 bytesMaximum individual cache file length.
Split size2000Number of rows per split-table segment when split tables are enabled.
Split tableNoneKeep None unless the selected provider and retention plan require physical table splitting.

Variable properties

The variable must already be inside the forwarding-group range. A variable property only maps that variable; it does not add it to the group.

SettingDefaultConfiguration
Object referenceEmptyRequired and unique within the target. Use LD/LN.DO.DA;FC=XX, for example LD1/MMXU1.TotW;FC=MX or LD1/LLN0.Mod.stVal;FC=ST.
Allow writesEnabledVariable-level gate. A write succeeds only when this and target Allow writes are enabled and the source variable accepts RPC writes.

The part before ;FC= is the MMS domain/item path. The function constraint (ST, MX, SP, CF, CO, and other values supported by the client model) is required for an unambiguous object reference. Duplicate references or invalid paths are skipped and reported in the target log.

Supported source mappings are Boolean, 8/16/32/64-bit signed or unsigned integers, 32/64-bit floating point values, and strings up to 255 characters. Complex structures, arrays, quality objects, and timestamps are not created by this dynamic variable editor.

Generated model and Journal

After the target variables are saved, the server rebuilds the model. Each distinct LD becomes a logical device, and the configured Journal name is registered under that device. Variable changes update the current MMS value and append a Journal entry with the UTC occurrence time, value, and data-change reason. The default dynamic report data set is LLN0$Events with URCB01 and BRCB01 controls for each logical device containing mapped variables.

Target debug

Open the IEC 61850 target, choose Debug, and use the protocol-specific panels:

PanelUse
Runtime overviewConfirm listener state, client count, mapped/unmapped variables, pending updates, and Journal storage status.
Model and valuesBrowse the generated LD/LN/DO/DA tree, copy an object reference, and read or write a value when permitted.
Client connectionsInspect association state, remote address, PDU size, and latest errors.
Resource catalogSearch logical devices, variables, data sets, Journal names, and files.
JournalSelect a logical device and Journal, set a time range, and page through entries.
Reports / controlsInspect the generated report controls and client reservations. Treat any control or write action as a production-impacting operation.
MessagesReview MMS requests, responses, and parser errors.

IEC 61850 server runtime overview

IEC 61850 server model and values

Verification

  1. Confirm the target is online and the TCP service port is listening.
  2. In Runtime overview, confirm that the mapped count matches the variables with valid object references.
  3. From an IEC 61850 client, run Identify, GetNameList, and Read; compare one value and its function constraint with the gateway variable.
  4. Change a source variable and confirm the MMS value and Journal entry update.
  5. Test a permitted write on a safe point, then confirm the source variable RPC result and the new MMS value. Test a read-only point and confirm that the write is rejected.
  6. If persistence is enabled, restart the target and confirm that new Journal entries continue in the same database and table.

Troubleshooting

SymptomCheck
Target cannot startChannel type, bind address, port ownership, firewall, and the Journal connection string.
Client cannot associatePort reachability, ACSE password, maximum connections, PDU size, and client MMS profile.
Client cannot see a variableForwarding-group range, object-reference syntax, duplicate references, function constraint, and the unmapped list in Runtime overview.
Read returns an unexpected valueSource variable type, current online state, object path, and the Model and values panel.
Write is rejectedTarget and variable Allow writes, source-variable RPC permission, data type conversion, and site safety interlocks.
Journal list is emptyJournal storage Enable, mapped variables, Journal name, query time range, and whether the client has generated a data change.
Journal persistence failsDatabase path permissions, provider-specific connection string, queue limit, and target log messages.
Reports are not receivedUse the generated data set and URCB/BRCB names shown in Resource catalog, then verify the client reservation and association state.
Updates are delayed or droppedCheck pending updates and target logs; reduce source change frequency or increase the configured queue/storage limits within the available memory budget.