电力行业,米尔STM32MP135开发板IEC61850协议移植笔记
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
# tar zxvf jdk-8u191-linux-x64.tar.gz
# cd jdk1.8.0_191
配置JAVA环境变量,修改/etc/profile文件,
# vi /etc/profile
export JAVA_HOME=
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
修改完成保存退出,使用下面命令来验证JAVA运行环境是否安装成功:
# java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
2.2. 配置交叉编译工具链
这里直接使用MYIR制作的交叉编译工具链。拷贝位于光盘04-Linux_source\Toolchain\arm-myir-linux-gnueabihf-gcc.tar.gz到ubuntu的工作目录。通过下面操作设置交叉编译工具链环境变量。
# mkdir arm-myir-linux-gnueabihf-gcc
# tar xvf arm-myir-linux-gnueabihf-gcc.tar.gz -C arm-myir-linux-gnueabihf-gcc # export ARCH=arm
# export CROSS_COMPILE=arm-myir-linux-gnueabihf-
# export PATH=$PATH:/
设置完成后使用如下命令验证设置是否成功。
# 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_real COLLECT_LTO_WRAPPER=/home/qinlh/buildroot/buildroot-2019.02.2/output/host/libexec/gcc/arm-myir-linux-gnueabihf/7.4.0/
lto-wrapper
...
...
线程模型:posix gcc
版本 7.4.0 (Buildroot 2019.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目录工作目录,并解压出来,其中
# cp libiec61850-1.3.0.tar.gz
# cd
# tar zxvf libiec61850-1.3.0.tar.gz
# cd libiec61850-1.3.0
编译IEC61850库:
# make TARGET=LINUX-ARM
...
...
arm-myir-linux-gnueabihf-ar: creating ./build-arm/libiec61850.a
arm-myir-linux-gnueabihf-ranlib ./build-arm/libiec61850.a
MYIR_IEC61850演示程序用到了一些外部库,需要修改位于examples\myir_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文件:
# cd examples/myir_iec61850_server
# make model
java -jar ../../tools/model_generator/genmodel.jar myir_iec61850_server.icd
Select ICD File myir_iec61850_server.icd
parse data type templates ...
parse IED section ...
parse communication section ...
Found connectedAP ap1 for IED MYIR1
print report instance 01
print report instance 02
如果上述过程报错请检查JAVA运行环境是否设置成功。
编译MYIR IEC61850演示程序:
# cd examples/myir_iec61850_server
# make TARGET=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
# export DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-c0AGn2s5XN
# ./myir_iec61850_server
# Using libIEC61850 version 1.3.0
4.2. 程序验证
安装包可以在03-Tools/IEDScout.zip文件中获取。
测试验证:
进入IEC61850应用界面,打开PC端IEDScout软件。
点击IECScout主界面下面的 Discover IED 按钮,然后输入输入开发板网口的IP地址 192.168.x.xxx ,输入完成后点击 Discover 按钮。
进入 Browser 页面,可以看到以MYIR1命名的IED设备模型。
点击IED设备模型下面的Data Models->LD1->GGIO1进入通用I/O控制界面。
双击GGIO1下面的LED1数据对象,可以看到Switch这个数据属性,然后点击上方菜单栏的Write按钮即可对LED1进行控制
在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接口。开发板配套提供丰富的软件资源以及文档资料,助力开发者开发成功。
米尔STM32MP135开发板标注图
产品链接:
https://www.myir.cn/shows/110/57.html
提交
海思Hi3093工控MPU-米尔嵌入式核心板开发板
米尔RZ/G2L开发板瑞米派双核A55Remi Pi学习板兼容树莓派扩展模块
米尔电子芯驰系列-D9-pro处理器D9360商显板-国产六核CPU
米尔首发-全志T527核心板-国产开发板,8核A55赋能边缘计算
米尔电子 瑞萨系列-RZ/G2UL核心板,通用64位工业MPU