IEC61850是变电站自动化系统(SAS)中通信系统和分散能源(DER)管理的国际标准。它通过标准的实现,实现了智能变电站的工程运作标准化。使得智能变电站的工程实施变得规范、统一和透明,在电力和储能系统中应用非常广泛。
本文基于米尔MYD-YF13X开发板,在Linux系统上移植和使用开源的libIEC61850库,该库提供了用C语言编写的IEC 61850 / MMS,IEC 61850 / GOOSE和IEC 61850-9-2 /采样值通信协议的服务端和客户端库。
IEC61850开源库了解更多请访问:http://libiec61850.com/libiec61850/
本章节讲述libIEC61850库的编译环境配置过程。
IEC61850库中的ICD文件需要一个JAVA工具来进行转换,所以需要先安装JAVA运行环境。米尔提供的JDK安装包位于光盘03-Tools目录,拷贝jdk-8u191-linux-x64.tar.gz到ubuntu工作目录,并解压出来。
# cd <WORKIR>/JDK
# tar zxvf jdk-8u191-linux-x64.tar.gz
# cd jdk1.8.0_191
配置JAVA环境变量,修改/etc/profile文件,<WORKIR>为用户工作路径在里面添加如下内容:
# vi /etc/profile
export JAVA_HOME=<WORKIR>/JDK/jdk1.8.0_191
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)
这里直接使用MYIR制作的交叉编译工具链。拷贝位于光盘04-Linux_sourceToolchainarm-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:/<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_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)
本章节讲述IEC61850库的编译和MYIR IEC61850演示程序myir_iec61850_server的编译过程。
米尔提供libIEC61850源码位于光盘文件的/04-Linux_Source/IEC61850目录,将libiec61850-1.3.0.tar.gz拷贝到ubuntu目录工作目录,并解压出来,其中<WORKIR>为用户工作目录。
# cp libiec61850-1.3.0.tar.gz <WORKIR>/libiec61850
# cd <WORKIR>/libiec61850
# tar zxvf libiec61850-1.3.0.tar.gz
# cd libiec61850-1.3.0
# make TARGET=LINUX-ARM
...
...
arm-myir-linux-gnueabihf-ar: creating ./build-
arm/libiec61850.aarm-myir-linux-gnueabihf-ranlib ./build-arm/libiec61850.a
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
如果上述编译过程报错请检查交叉编译工具链设置是否有问题。
# 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
编译完成后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
安装包可以在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心跳灯就被点亮了,说明通讯成功。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。