# [IEC 60870-5-101 Protocol - python windows and Linux](https://www.freyrscada.com/iec-60870-5-101-python.php)

The IEC 101 Protocol Server and Client implemetation in Phyton.

[![IEC 60870-5-101 Protocol Python](https://raw.githubusercontent.com/FreyrSCADA/IEC-60870-5-101/refs/heads/master/img/iec101-python.jpg)](https://www.freyrscada.com/iec-60870-5-101-python.php)


we did a python wrapper for our IEC 101 implementation using ctypes.

and tested in Windows and linux x86_64.

in the package tests folder , you can find the server and client test programs.

using this, you can simulate complete IEC 101 Server device(iec101servertest.py) and client(iec101clienttest.py).

[IEC 101 Server test python program](https://raw.githubusercontent.com/FreyrSCADA/IEC-60870-5-101/refs/heads/master/IEC101-Python/iec101servertest.py)

[IEC 101 Client - Master test python program](https://raw.githubusercontent.com/FreyrSCADA/IEC-60870-5-101/refs/heads/master/IEC101-Python/iec101clienttest.py)



# [IEC 60870-5-101 Protocol](http://www.freyrscada.com/iec-60870-5-101.php)

Support both balanced and unbalanced mode.

IEC 60870-5 part 101 enables communication between IED, RTU control station and substation via a standard Serial network. 
IEC 60870 5 101 protocol (IEC 101) is a part of IEC Telecontrol Equipment and Systems Standard IEC 60870-5 that provides a communication profile for sending basic telecontrol messages between two systems in electrical engineering and power system automation.
IEC 60870 part 5 is one of the IEC 60870 set of standards which define systems used for telecontrol (supervisory control and data acquisition SCADA) 

[![IEC 60870-5-101 Protocol](https://raw.githubusercontent.com/FreyrSCADA/IEC-60870-5-101/refs/heads/master/img/101w320x220.jpg)](http://www.freyrscada.com/iec-60870-5-101.php)

Make your RTU, protocol converter, Gateway, HMI, Data concentrator compatible with iec 101.


## [Download Evaluation Kit - IEC 101 Development Bundle](http://www.freyrscada.com/iec-60870-5-101.php#Download-IEC60870-5-101-Development-Bundle)

In the Development Bundle, We included IEC 101 Protocol Server  Client Simulator, Windows and Linux SDK, C# projects, Doxygen documentation and Raspberry Pi, BeagleBone Demo library.


# [IEC 60870-5-101 Source Code Windows C C++ C# .net Linux Arm POSIX C C++](http://www.freyrscada.com/iec-60870-5-101-Source-Code-Library.html)


The most complete implementation of IEC 101 protocol stack including File transfer (Monitor and Control Direction), Directory Commnads, Supports all type of Monitoring, command , parameter ASDUs.

Low memory footprint, easy start on any hardware platform, can operate with or without an operating system, delivered as a source code,

high configurability allows to use required features only, royalty-free licensing.


[![IEC 60870-5-101 Code Windows C C++ C# .net Linux Arm POSIX](https://raw.githubusercontent.com/FreyrSCADA/IEC-60870-5-101/refs/heads/master/img/IEC-60870-5-101-source-code-library-stack.jpg)](http://www.freyrscada.com/iec-60870-5-101-Source-Code-Library.html)


## Salient Features


 - Written in ANSI-Standard C Source Code, under a strict corporate coding standard, and supports C++, C#

 - Transparent licensing scheme - No hidden costs, No deferred payments.

 - High performance, robust and scalable architecture

 - Provides a simple method for systems Integrators and OEMs to utilize standard tools to implement their systems

 - Our stacks are fully compliant with "POSIX" and tested in ubuntu, feroda, Debian, QNX, Linux Embedded OS and Various Cross compiler tool chains.

 - Our all protocol stack supports "POSIX compliant operating system"

 - Context-based event-driven model
 
 - Support both balanced and unbalanced mode

 - Multiple Server and Client Simulation

 - In a Single Server(link) simulate Multiple Stations (Common Address / Station Address)

 - Supports Background Scan, Cyclic Data Transmission, Double Transmission, Redundancy and File transfer.

 - Communication with redundant control systems and interruption-free switch over between redundant systems

 - Supports "Select-Before-Operate" and "Direct-Execute" command execution modes

 - Source Code Library allows a fast and cost efficient implementation

 - APIs are designed to be very easy to use and flexible



 


## Knowledge Base - Interoperability

[IEC 60870-5-101 Protocol Server Interoperability](http://www.freyrscada.com/docs/FreyrSCADA-IEC-60870-5-101-Server-Interoperability.pdf)

[IEC 60870-5-101 protocol Client Interoperability](http://www.freyrscada.com/docs/FreyrSCADA-IEC-60870-5-101-Client-Interoperability.pdf)

 


# [IEC 60870-5 part 101 Windows C C++ C# .NET Programming](http://www.freyrscada.com/iec-60870-5-101-Windows-Software-Development-Kit(SDK).php)


IEC 60870-5-101 Demo Win DLL includes simple (Server & Client C programs, c# .net )example using a Command window and command line inputs.

The source code will allow you to quickly compile your own examples with the features of your existing development environment to work with our IEC 60870-5-101 DLL..IEC 101 Windows SDK contains Win DLL (precompiled library), Static link lib, Demo IEC101 Server & Client programs, Visual Studio Demo console project files, Doxygen .

We used Visual studio compiler to create the dll, sample test projects.


[![IEC 60870-5-101 Windows C C++ C# .NET](https://raw.githubusercontent.com/FreyrSCADA/IEC-60870-5-101/refs/heads/master/img/101w320x220_win_sdk.jpg)](http://www.freyrscada.com/iec-60870-5-101-Windows-Software-Development-Kit(SDK).php)


This evaluation package allows you to:

Access product manual(API documentation)(pdf, Doxygen html)

Browse the IEC 60870-5-101 library API documentation

Study the source code of the IEC 60870-5-101 examples provided

Modify and compile the IEC 60870-5-101 examples

Create your own IEC 60870-5-101 programs and test with leading test tools

You can use the source code of the application examples and modify them according to your needs.


# [IEC 60870-5-101 Protocol Linux Development POSIX C C++ ARM](http://www.freyrscada.com/iec-60870-5-101-Linux-Software-Development-Kit(SDK).php)


IEC 101 Demo Linux Shared Library includes simple (Server & Client C programs )example using a Command window and command line inputs.

The source code will allow you to quickly compile your own examples with the features of your existing development environment to work with our IEC 60870-5-101 library.

IEC 60870-5-101 Linux SDK contains Shared Library(.a) (precompiled library), Static link lib, Demo IEC101 Server & Client programs, CodeBlock Demo console project files, Doxygen .

We used gcc compiler to create the Shared Library, sample test projects.

[![IEC 60870-5-101 Protocol Linux C C++ POSIX](https://raw.githubusercontent.com/FreyrSCADA/IEC-60870-5-101/refs/heads/master/img/101w320x220_linux_sdk.jpg)](http://www.freyrscada.com/iec-60870-5-101-Linux-Software-Development-Kit(SDK).php)


This evaluation package allows you to:

 - Access product manual(API documentation)(pdf, Doxygen html)

 - Browse the IEC 60870-5-101 library API documentation

 - Study the source code of the IEC 60870-5-101 examples provided

 - Modify and compile the IEC 60870-5-101 examples

 - Create your own IEC 60870-5-101 programs and test with leading test tools

 - You can use the source code of the application examples and modify them according to your needs.


Minimum system requirements

Supports Embedded Linux (ARM, Coldfire, Power PC), Ubuntu Linux(X86, X86-64), Fedora, CentOS, Red Hat...(All Posix Compliant Operating Systems)

gcc - Any IDE supports C & C++ Programming, support all your cross tool chain


#[IEC 60870-5-101 C# .NET CORE Windows and Linux implementation also available](http://www.freyrscada.com/iec-60870-5-101-netcore-windows-linux.php)

#[IEC 60870-5-101 IED RTU Server Slave Simulator](https://www.freyrscada.com/iec-60870-5-101-Server-Simulator.php)

#[IEC 60870-5-101 Master Client Simulator](https://www.freyrscada.com/iec-60870-5-101-Client-Simulator.php)




# [IEC 60870-5 part 101 Protocol Video Tutorial](https://www.youtube.com/playlist?list=PL4tVfIsUhy1bx7TVjtZnqFB6tbZBhOlJP)

## [IEC 60870-5-101 Protocol Product Description Video](http://www.freyrscada.com/iec-60870-5-101-video.html)	
[![IEC 60870-5-101 Protocol Product Description Video](http://www.freyrscada.com/images/iec101videoicon.jpg)](http://www.freyrscada.com/iec-60870-5-101-video.html)

## [IEC 60870-5-101 Protocol Server Simulator test with third party tool](http://www.freyrscada.com/IEC101_Server_Simulator_Testing.html)	
[![IEC 60870-5-101 Protocol Server Simulator test with third party tool](http://www.freyrscada.com/images/iec101-server-simulator-testing.jpg)](http://www.freyrscada.com/IEC101_Server_Simulator_Testing.html)

## [IEC 60870-5-101 Protocol Client Master Simulator test with third party tool](http://www.freyrscada.com/IEC101_Client_Simulator_Testing.html)	
[![IEC 60870-5-101 Protocol Client Master Simulator test with third party tool](http://www.freyrscada.com/images/iec101-client-simulator-testing.jpg)](http://www.freyrscada.com/IEC101_Client_Simulator_Testing.html)

## [IEC 60870-5-101 Protocol Server and Client Simulator - File Transfer, Directory command operation](http://www.freyrscada.com/IEC-60870-5-101-Server-Client-File-Transfer-video.html)	
[![IEC 60870-5-101 Protocol Server and Client Simulator - File Transfer, Directory command operation](http://www.freyrscada.com/images/iec101-simulator-filetransfer.jpg)](http://www.freyrscada.com/IEC-60870-5-101-Server-Client-File-Transfer-video.html)

## [IEC 60870-5-101 Protocol Server Simulator with Kepware OPC](http://www.freyrscada.com/IEC101_Server_Simulator_Kepware_OPC.html)	
[![IEC 60870-5-101 Protocol Server Simulator with Kepware OPC](http://www.freyrscada.com/images/IEC101_Server_Simulator_Kepware_OPC.jpg)](http://www.freyrscada.com/IEC101_Server_Simulator_Kepware_OPC.html)

## [IEC 60870-5-101 Protocol Server in Beaglebone Arm Linux](http://www.freyrscada.com/IEC101_Server_Beaglebone_Arm_Linux.html)	
[![IEC 60870-5-101 Protocol Server in Beaglebone Arm Linux](http://www.freyrscada.com/images/IEC101_Server_Beaglebone_Arm_Linux.jpg)](http://www.freyrscada.com/IEC101_Server_Beaglebone_Arm_Linux.html)

## [IEC 101 RTU IED Server Simulator testing with Matrikon OPC](http://www.freyrscada.com/IEC101_Server_Simulator-Matrikon-OPC.html)	
[![IEC 101 RTU IED Server Simulator testing with Matrikon OPC](http://www.freyrscada.com/images/iec101-matrikon-opc-with-sub.JPG)](http://www.freyrscada.com/IEC101_Server_Simulator-Matrikon-OPC.html)



[facebook](https://www.facebook.com/IEC101/)

[linkedin](https://in.linkedin.com/showcase/iec-60870-5-101)  

[youtube](https://www.youtube.com/playlist?list=PL4tVfIsUhy1bsVPrJVW4nknHozdfcWE5u)

[twitter](https://twitter.com/FreyrScada)

[pinterest](https://in.pinterest.com/FreyrSCADA/iec-60870-5-101-protocol/)

[tumblr](https://freyrscada.tumblr.com)

[blog](https://iec60870-5-101.blogspot.in/)

[telegram](https://t.me/s/iec_60870_5_101_protocol)

[instagram](https://www.instagram.com/explore/tags/iec101_protocol/)


# [Download Evaluation Kit - IEC 101 Protocol Development Bundle](http://www.freyrscada.com/iec-60870-5-101.php#Download-IEC60870-5-101-Development-Bundle)

In the Development Bundle, We included IEC 60870-5 part 101 Protocol Server  Client Simulator, Windows and Linux SDK, C# projects, Doxygen documentation and Raspberry Pi, BeagleBone Demo library.