STM32MP135开发板助力电力行业,IEC61850协议移植笔记

2024-06-21  

1.概述

IEC61850是变电站自动化系统(SAS)中通信系统和分散能源(DER)管理的国际标准。它通过标准的实现,实现了智能变电站的工程运作标准化。使得智能变电站的工程实施变得规范、统一和透明,在电力和储能系统中应用非常广泛。


本文基于米尔MYD-YF13X开发板,在Linux系统上移植和使用开源的libIEC61850库,该库提供了用C语言编写的IEC 61850 / MMS,IEC 61850 / GOOSE和IEC 61850-9-2 /采样值通信协议的服务端和客户端库。

IEC61850开源库了解更多请访问:http://libiec61850.com/libiec61850/

MYD-YF13X开发板了解更多访问:https://www.myir.cn/shows/110/57.html

2.搭建配置环境

本章节讲述libIEC61850库的编译环境配置过程。

2.1.安装JAVA环境

IEC61850库中的ICD文件需要一个JAVA工具来进行转换,所以需要先安装JAVA运行环境。米尔提供的JDK安装包位于光盘03-Tools目录,拷贝jdk-8u191-linux-x64.tar.gz到ubuntu工作目录,并解压出来。


#cd< WORKIR >/JDK #tarzxvfjdk-8u191-linux-x64.tar.gz #cdjdk1.8.0_191


配置JAVA环境变量,修改/etc/profile文件,为用户工作路径在里面添加如下内容:


#vi/etc/profile exportJAVA_HOME=< WORKIR >/JDK/jdk1.8.0_191 exportJRE_HOME=${JAVA_HOME}/jre exportCLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib exportPATH=${JAVA_HOME}/bin:$PATH


修改完成保存退出,使用下面命令来验证JAVA运行环境是否安装成功:


#java-version javaversion"1.8.0_191" Java(TM)SERuntimeEnvironment(build1.8.0_191-b12) JavaHotSpot(TM)64-BitServerVM(build25.191-b12,mixedmode)


2.2.配置交叉编译工具链

这里直接使用MYIR制作的交叉编译工具链。拷贝位于光盘04-Linux_sourceToolchainarm-myir-linux-gnueabihf-gcc.tar.gz到ubuntu的工作目录。通过下面操作设置交叉编译工具链环境变量。


#mkdirarm-myir-linux-gnueabihf-gcc #tarxvfarm-myir-linux-gnueabihf-gcc.tar.gz-Carm-myir-linux-gnueabihf-gcc #exportARCH=arm#exportCROSS_COMPILE=arm-myir-linux-gnueabihf- #exportPATH=$PATH:/< WORKIR >/arm-myir-linux-gnueabihf-gcc/usr/bin


设置完成后使用如下命令验证设置是否成功。


#arm-myir-linux-gnueabihf-gcc-v 使用内建specs。 COLLECT_GCC=/home/qinlh/buildroot/buildroot-2019.02.2/output/host/bin/arm-myir-linux-gnueabihf-gcc.br_realCOLLECT_LTO_WRAPPER=/home/qinlh/buildroot/buildroot-2019.02.2/output/host/libexec/gcc/arm-myir-linux-gnueabihf/7.4.0/ lto-wrapper ... ... 线程模型:posixgcc 版本7.4.0(Buildroot2019.02.2-g04eff54)


3.编译IEC61850库

本章节讲述IEC61850库的编译和MYIR IEC61850演示程序myir_iec61850_server的编译过程。

3.1.获取IEC61850源码包

米尔提供libIEC61850源码位于光盘文件的/04-Linux_Source/IEC61850目录,将libiec61850-1.3.0.tar.gz拷贝到ubuntu目录工作目录,并解压出来,其中为用户工作目录。


#cplibiec61850-1.3.0.tar.gz< WORKIR >/libiec61850 #cd< WORKIR >/libiec61850 #tarzxvflibiec61850-1.3.0.tar.gz #cdlibiec61850-1.3.0


编译IEC61850库:


#makeTARGET=LINUX-ARM ... ... arm-myir-linux-gnueabihf-ar:creating./build- arm/libiec61850.aarm-myir-linux-gnueabihf-ranlib./build-arm/libiec61850.a


MYIR_IEC61850演示程序用到了一些外部库,需要修改位于examplesmyir_iec61850_server目录下的Makefile来指定外部库的路径,将替换为用户实际的工作路径:


CFLAGS+=-I./-I/WORKIR>/arm-myir-linux-gnueabihf-gcc/usr/arm-myir-linux-gnueabihf/sysroot/usr/include/glib-2.0/ -I/WORKIR>/arm-myir-linux-gnueabihf-gcc/usr/arm-myir-linux-gnueabihf/sysroot/usr/lib/glib-2.0/include/ -I/WORKIR>/arm-myir-linux-gnueabihf-gcc/usr/arm-myir-linux-gnueabihf/sysroot/usr/include/cjson/ -I/WORKIR>/arm-myir-linux-gnueabihf-gcc/usr/arm-myir-linux-gnueabihf/sysroot/usr/include -I/WORKIR>/arm-myir-linux-gnueabihf-gcc/usr/rm-myir-linux-gnueabihf/sysroot/usr/include/libxml2 LDFLAGS+=-lpthread-ldbus-1-lxml2-lcjson -L/WORKIR>/arm-myir-linux-gnueabihf-gcc/usr/arm-myir-linux-gnueabihf/sysroot/usr/lib


如果上述编译过程报错请检查交叉编译工具链设置是否有问题。

编译ICD文件:


#cdexamples/myir_iec61850_server #makemodel java-jar../../tools/model_generator/genmodel.jarmyir_iec61850_server.icd SelectICDFilemyir_iec61850_server.icd parsedatatypetemplates... parseIEDsection... parsecommunicationsection... FoundconnectedAPap1forIEDMYIR1 printreportinstance01 printreportinstance02


如果上述过程报错请检查JAVA运行环境是否设置成功。

编译MYIR IEC61850演示程序:


#cdexamples/myir_iec61850_server #makeTARGET=LINUX-ARM


4.运行验证IEC61850应用

4.1.运行应用

编译完成后MYIR IEC61850应用位于examples/myir_iec61850_server/目录下面,将myir_iec61850_server拷贝至开发板,运行过程如下所示。


#dbus-launch DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-c0AGn2s5XN,guid=d6544df82962d617c2dc37805c2c2d68 DBUS_SESSION_BUS_PID=5649 #exportDBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-c0AGn2s5XN #./myir_iec61850_server #UsinglibIEC61850version1.3.0


4.2.程序验证

安装包可以在03-Tools/IEDScout.zip文件中获取。

测试验证:

进入IEC61850应用界面,打开PC端IEDScout软件。

wKgaomW80BOAN7-VAAE6Dmk-9Co078.png

点击IECScout主界面下面的Discover IED按钮,然后输入输入开发板网口的IP地址192.168.x.xxx,输入完成后点击Discover按钮。

wKgaomW80BuASvENAAEkUt-4JFg638.png

进入Browser页面,可以看到以MYIR1命名的IED设备模型。

wKgZomW80CCAe2Y8AAFqBSG1sy0974.png

点击IED设备模型下面的Data Models->LD1->GGIO1进入通用I/O控制界面。

wKgaomW80CqAWfFEAAHwEEyHo_c956.png

双击GGIO1下面的LED1数据对象,可以看到Switch这个数据属性,然后点击上方菜单栏的Write按钮即可对LED1进行控制。

wKgZomW80C-APtvbAAFY9kxB8eg068.png

在Value栏选择false,然后点击Write按键,此时开发板上的LED心跳灯就被点亮了,说明通讯成功。

米尔基于STM32MP135开发板

米尔STM32MP135开发板,基于单核 Cortex-A7 设计的STM32MP13系列处理器,采用12V/2A直流供电,搭载了2路千兆以太网接口、1路USB2.0协议MINI PCIE插座的4G模块接口、1路RGB显示接口、1路音频输入输出接口、2路USB HOST Type A、1路 USB OTG Type-C接口、1路Micro SD接口。开发板配套提供丰富的软件资源以及文档资料,助力开发者开发成功。

pYYBAGQ5BQyATs3LABKcKoe4ijw656.png

米尔STM32MP135开发板标注图

pYYBAGQ5BQ2ANkiqAAv4pBfuufU444.png

米尔STM32MP135开发板标注图


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。