The International Electrotechnical Commission standard 870 part 5 (IEC 870-5) is a set of transmission procedures intended for SCADA systems. The publication got reissued with a designation in the 60000 series as of the year 1997. Refer to IEC 60870-5-101 for serial communication, and IEC 60870-5-104 for the TCP-based evolution. The two are commonly abbreviated as IEC 101 and IEC 104 respectively.
The project consists of a Go library and a command-line tool called iecat(8).
This is free and unencumbered software released into the public domain.
📢 Call for testing! Help on issue #5 needed. 🚧
At its essence, part 5 formalizes reliable means to exchange measurements and commands. Commands are used by controlling stations to cause a change of state in operational equipment.
Controlling stations are called primary and the controlled stations are called secondary. With unbalanced transmission one station is primary and the other is secodary, a.k.a. master/slave, and with balanced transmission stations can both act as primary and as secondory, a.k.a. peer to peer.
Every information object address resides in a common address. Primaries may
acquire the information present in a common address with an
interrogation command.
For example, command iecat -host station1.example.com -inro 42
interrogates
the host address on common address 42.
The command prints inbound data units on the standard output. It should read commands from the standard input for outbound submission, once implemented.
Run go install github.com/pascaldekloe/part5/cmd/iecat@latest
to build the
command into the bin directory of go env GOPATH
.