Documentation
¶
Overview ¶
Package iec61850 provides a pure-Go implementation of the IEC 61850 protocol family: MMS client/server (IEC 61850-8-1), GOOSE and Sampled Values publish/subscribe, and SCL configuration handling.
Most applications use the high-level subpackages:
- client: ACSI client for talking to IEDs (browse, read, write, datasets, reporting, controls, file transfer)
- server: ACSI server for building IEDs, simulators and gateways
- goose, sv: layer-2 publish/subscribe
- scl: SCL (ICD/CID/SCD) parsing and model instantiation
- model: the IEC 61850 object model and common data types
The lower layers (mms, asn1, internal/osi) are exported where useful for tooling but are not needed for typical use.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package asn1 implements the minimal BER (ISO 8825-1) runtime used by the MMS, ACSE, presentation, GOOSE and SV codecs in this module.
|
Package asn1 implements the minimal BER (ISO 8825-1) runtime used by the MMS, ACSE, presentation, GOOSE and SV codecs in this module. |
|
Package client is the high-level IEC 61850 ACSI client.
|
Package client is the high-level IEC 61850 ACSI client. |
|
cmd
|
|
|
goose-sniff
command
Command goose-sniff is a passive GOOSE and Sampled Values monitor.
|
Command goose-sniff is a passive GOOSE and Sampled Values monitor. |
|
ied-client
command
Command ied-client is a small command-line IEC 61850 MMS client demonstrating the client package: browse, read, write and dataset access against a live IED.
|
Command ied-client is a small command-line IEC 61850 MMS client demonstrating the client package: browse, read, write and dataset access against a live IED. |
|
ied-server
command
Command ied-server is an example IEC 61850 server.
|
Command ied-server is an example IEC 61850 server. |
|
iedx
command
Command iedx is a full-featured terminal IEC 61850 client: browse the model, read and write data, monitor reports, operate controls, manage setting groups, transfer files and query logs — with mouse support.
|
Command iedx is a full-featured terminal IEC 61850 client: browse the model, read and write data, monitor reports, operate controls, manage setting groups, transfer files and query logs — with mouse support. |
|
Package ethernet provides the raw layer-2 access used by the GOOSE and Sampled Values transports: an Interface abstraction over a network device, plus pure frame marshalling helpers that are testable without a socket.
|
Package ethernet provides the raw layer-2 access used by the GOOSE and Sampled Values transports: an Interface abstraction over a network device, plus pure frame marshalling helpers that are testable without a socket. |
|
examples
|
|
|
control
command
Example: operate a controllable point.
|
Example: operate a controllable point. |
|
goose-subscribe
command
Example: subscribe to GOOSE on a network interface (Linux, needs CAP_NET_RAW).
|
Example: subscribe to GOOSE on a network interface (Linux, needs CAP_NET_RAW). |
|
read
command
Example: connect to an IED, browse it and read a value.
|
Example: connect to an IED, browse it and read a value. |
|
report-monitor
command
Example: enable a report control block and print incoming reports.
|
Example: enable a report control block and print incoming reports. |
|
server
command
Example: serve a model from an SCL file and push live values.
|
Example: serve a model from an SCL file and push live values. |
|
Package goose implements the IEC 61850-8-1 GOOSE mapping over raw Ethernet: the goosePdu codec, a publisher with the standard retransmission state machine, and a subscriber with anomaly detection.
|
Package goose implements the IEC 61850-8-1 GOOSE mapping over raw Ethernet: the goosePdu codec, a publisher with the standard retransmission state machine, and a subscriber with anomaly detection. |
|
internal
|
|
|
osi/acse
Package acse implements the subset of ISO 8650 / X.227 ACSE used by MMS: the AARQ/AARE association-control APDUs that carry the MMS Initiate request/response as user information, plus the RLRQ/RLRE release APDUs.
|
Package acse implements the subset of ISO 8650 / X.227 ACSE used by MMS: the AARQ/AARE association-control APDUs that carry the MMS Initiate request/response as user information, plus the RLRQ/RLRE release APDUs. |
|
osi/cotp
Package cotp implements the ISO 8073 / X.224 Connection-Oriented Transport Protocol class 0, as profiled by RFC 1006 for MMS.
|
Package cotp implements the ISO 8073 / X.224 Connection-Oriented Transport Protocol class 0, as profiled by RFC 1006 for MMS. |
|
osi/presentation
Package presentation implements the subset of the ISO 8823 / X.226 connection-oriented presentation protocol used by MMS: the CP/CPA connection PDUs that negotiate the ACSE and MMS presentation contexts, and the fully-encoded-data wrapping applied to every data-phase PDU.
|
Package presentation implements the subset of the ISO 8823 / X.226 connection-oriented presentation protocol used by MMS: the CP/CPA connection PDUs that negotiate the ACSE and MMS presentation contexts, and the fully-encoded-data wrapping applied to every data-phase PDU. |
|
osi/session
Package session implements the minimal subset of the ISO 8327-1 connection-oriented session protocol used by the MMS profile: the CONNECT/ACCEPT SPDUs for association setup and the GIVE-TOKENS + DATA-TRANSFER prefix used for every data message.
|
Package session implements the minimal subset of the ISO 8327-1 connection-oriented session protocol used by the MMS profile: the CONNECT/ACCEPT SPDUs for association setup and the GIVE-TOKENS + DATA-TRANSFER prefix used for every data message. |
|
osi/tpkt
Package tpkt implements RFC 1006 (ISO transport service on top of TCP), the framing layer beneath COTP for MMS over TCP port 102.
|
Package tpkt implements RFC 1006 (ISO transport service on top of TCP), the framing layer beneath COTP for MMS over TCP port 102. |
|
Package mms implements the subset of MMS (ISO 9506) required by IEC 61850-8-1: the Data value model, PDU codecs and a client connection with the confirmed/unconfirmed service set used by ACSI.
|
Package mms implements the subset of MMS (ISO 9506) required by IEC 61850-8-1: the Data value model, PDU codecs and a client connection with the confirmed/unconfirmed service set used by ACSI. |
|
Package model implements the IEC 61850 object model: functional constraints, object references, the LD/LN/DO/DA node tree shared by the SCL loader, the server and client-side model retrieval, and the common bit-string types from IEC 61850-7-3 (Quality, Dbpos, trigger options).
|
Package model implements the IEC 61850 object model: functional constraints, object references, the LD/LN/DO/DA node tree shared by the SCL loader, the server and client-side model retrieval, and the common bit-string types from IEC 61850-7-3 (Quality, Dbpos, trigger options). |
|
Package scl parses IEC 61850-6 SCL files (ICD, CID, SCD, IID) with the standard library XML decoder and instantiates the runtime object model of the model package.
|
Package scl parses IEC 61850-6 SCL files (ICD, CID, SCD, IID) with the standard library XML decoder and instantiates the runtime object model of the model package. |
|
Package server is the high-level IEC 61850 ACSI server.
|
Package server is the high-level IEC 61850 ACSI server. |
|
Package sv implements the IEC 61850-9-2 Sampled Values mapping over raw Ethernet: the savPdu/ASDU codec, a generic and a 9-2LE typed subscriber, and a 9-2LE publisher with a sample clock.
|
Package sv implements the IEC 61850-9-2 Sampled Values mapping over raw Ethernet: the savPdu/ASDU codec, a generic and a 9-2LE typed subscriber, and a 9-2LE publisher with a sample clock. |
Click to show internal directories.
Click to hide internal directories.