C Source Code Library

C Source Code Library

Our library offers essential support for Companion Standard 101 (CS101) and 104
(CS104) of the IEC standard series, vital for telecontrol applications (IEC 60870-5). Widely employed for communication between central stations (controlling station) and outstations (controlled station) in electrical power systems.
The C source code library enables swift and cost-efficient implementation of IEC 60870-5-101 and IEC 60870-5-104 protocols in embedded devices and applications. Designed with intuitive APIs for ease of use and flexibility, this library is written in C (C99 compliant for maximum portability). Its hardware and platform-independent design ensures seamless deployment across various platforms, enhancing
accessibility and efficiency.

C Source Code Library

Master/Slave (CS 101 – serial communication)

Usage examples code

Support for all standard message types

Client/Server (CS 104 – TCP/IP)

Compatible with latest versions of IEC 60870-5-101 and IEC 60870-5-104

TLS support for CS 104

  • Master/Slave (CS 101) and Client/Server (CS 104) implementation
  • Implements all command, monitoring, parameter, file message types
  • Available as portable C99 compliant source code
  • object oriented design in standard C
  • Comes with a lot of examples to simplify learning
  • Drivers for Linux/ucLinux, Windows, MacOS/BSD, FreeRTOS, VxWorks, lwIP, FNET, …
  • Tested on x86/x64, Coldfire, ARM9, ARM Cortex-A, ARM Cortex-M, PowerPC, MIPS
  • Field proven
  • Easy to use API
  • Compatible with the latest version of IEC 60870-5-101 and IEC 60870-5-104
  • CS 101 master/slave (RS 232/485 serial communication)
  • CS 101 balanced and unbalanced mode
  • CS 104 client/server (TCP/IP)
  • CS 104 redundancy group supported
  • Support for all standard message types (M_XX, C_XX, P_XX, F_XX) for messages in monitoring direction, commands, parameter loading, file transmission.
  • Send and receive messages in standard and reverse direction
  • spontaneous transmission of events
  • periodic transmission of measurements
  • command and set point transmission (direct and select/execute)
  • Support for interrogation and counter interrogation support
  • Clock synchronization command supported
  • Support for CP24Time2a and CP56Time2a time tags
  • TLS support (secure communication according to IEC 62351)

Commercial License

For integration in commercial products a commercial license is required. With the commercial license you can develop and distribute your own closed source applications. For the commercial license there are also professional support and maintenance services available.

Open Source Version (Non Commercial Use)

Most parts of the library are available as open-source. You can use the open source version to get started, learn about the protocols and applications, and as a base for your own GPLv3 compliant open source applications.

Contact us

2 + 10 =

MZ Automation GmbH
Wentzingerstrasse 23
79106 Freiburg
+49 7681 – 20 91 980


About us

What we do



Privacy Policy

Legal Information



Wentzingerstrasse 23, 79106 Freiburg

+49 7681 – 20 91 980

Follow Us