Investigating the use of a Python IEC61850 MMS server on the Vaisala Indigo500 transmitter
Clusker, Chad (2025)
Clusker, Chad
2025
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2025053018512
https://urn.fi/URN:NBN:fi:amk-2025053018512
Tiivistelmä
This study explores the process of adding support for the IEC61850 standard for the Vaisala Indigo500 transmitter. Furthermore, it details the development of a proof-of-concept Python IEC61850 MMS server on the Indigo500 transmitter that offers the measurements from a Vaisala MHT410 transmitter to connected IEC61850 clients. Further objectives include assessment of the performance of said server, the development process, future maintainability, and determining how much work is left before the project can be put into production.
Firstly, an assessment of available IEC61850 libraries was made after which the libiec61850 library written in C was chosen. Next, a comparison between a server written in the library’s native language, C and a server written in Python using “experimental” Python bindings was carried out to determine the best language for the project. Further exploration was done after Python was chosen to determine how well the server would function on the Indigo500 transmitter.
After creating an initial server process design and developing a proof-of-concept server process based on the design, performance testing of the server was made to determine how well it performed. Furthermore, the groundwork was laid out to support future development by creating a feature branch on the Indigo500 Yocto layer consisting of required recipes for the feature as well as a new git repository for the server process source code.
Overall, the primary objectives of a proof-of-concept server functioning on the Indigo500 device was achieved. Further assessment of the work required before the new feature can be put into production was made, as well as suggestions on how to improve the performance of the IEC61850 MMS server. This study, as well as internal documentation support the future development and maintenance of this feature on the Indigo500.
Firstly, an assessment of available IEC61850 libraries was made after which the libiec61850 library written in C was chosen. Next, a comparison between a server written in the library’s native language, C and a server written in Python using “experimental” Python bindings was carried out to determine the best language for the project. Further exploration was done after Python was chosen to determine how well the server would function on the Indigo500 transmitter.
After creating an initial server process design and developing a proof-of-concept server process based on the design, performance testing of the server was made to determine how well it performed. Furthermore, the groundwork was laid out to support future development by creating a feature branch on the Indigo500 Yocto layer consisting of required recipes for the feature as well as a new git repository for the server process source code.
Overall, the primary objectives of a proof-of-concept server functioning on the Indigo500 device was achieved. Further assessment of the work required before the new feature can be put into production was made, as well as suggestions on how to improve the performance of the IEC61850 MMS server. This study, as well as internal documentation support the future development and maintenance of this feature on the Indigo500.