Skip to content

boeboe/iec61850

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

127 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

iec61850 — IEC 61850 MMS, GOOSE and SV Go binding

Go License PkgGoDev Go Report Card

Go (cgo) bindings for libIEC61850 — MMS, GOOSE, and Sampled Values (SV) client/server.

Quick start

go get -u github.com/boeboe/iec61850

Requires: libiec61850 v1.6.1 built with R-GOOSE, R-SMV, and SNTP support. See Building libiec61850 below.

Documentation

Detailed developer documentation:

Document Description
FUNCTIONS.md API reference for all exported functions (C↔Go mapping, parameters, examples)
STRUCTS.md Struct and type reference (Client, Server, MMS, GOOSE, SV, configuration, timestamps)
ENUMS.md Enums and constants (MmsType, FC, quality flags, control models, etc.)

Features

  • MMS client/server, data access (read/write), discovery, data sets, reports, file services, setting groups
  • GOOSE (IEC 61850-8-1): publish/subscribe, control blocks (GoCB), R-GOOSE
  • Sampled Values (SV) (IEC 61850-9-2): publish/subscribe, R-SMV
  • Server: data model, attribute updates (including timestamp + time quality), write/control handlers, TLS
  • Client: connect (sync/async, with auth), read/write, timestamps with quality (UtcTimeValue), reports, TLS

Example usage

Building libiec61850 v1.6.1

Build the C library with R-GOOSE, R-SMV, and SNTP before using this package.

Prerequisites: mbedtls (e.g. brew install mbedtls on macOS, apt-get install libmbedtls-dev on Debian/Ubuntu).

./scripts/rebuild_libraries.sh
go test -v -run TestLibraryVersion   # verify build

License

This project is licensed under the GNU General Public License v3.0 (GPL-3.0).

This is required because the Go binding links against libIEC61850 (the official open-source C library for IEC 61850 protocols by MZ Automation), which is distributed under GPL-3.0. Any use or distribution of this binding is therefore subject to the same GPL-3.0 terms. See LICENSE in this repository for the full license text.

About

GoLang IEC61850 library

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • C 57.9%
  • Go 41.6%
  • Shell 0.5%