電力行業(yè),米爾STM32MP135開發(fā)板IEC61850協議移植筆記
1. 概述
IEC61850是變電站自動化系統(tǒng)(SAS)中通信系統(tǒng)和分散能源(DER)管理的國際標準。它通過標準的實現,實現了智能變電站的工程運作標準化。使得智能變電站的工程實施變得規(guī)范、統(tǒng)一和透明,在電力和儲能系統(tǒng)中應用非常廣泛。
本文基于米爾MYD-YF13X開發(fā)板,在Linux系統(tǒng)上移植和使用開源的libIEC61850庫,該庫提供了用C語言編寫的IEC 61850 / MMS,IEC 61850 / GOOSE和IEC 61850-9-2 /采樣值通信協議的服務端和客戶端庫。
IEC61850開源庫了解更多請訪問:http://libiec61850.com/libiec61850/
MYD-YF13X開發(fā)板了解更多訪問:https://www.myir.cn/shows/110/57.html
?
2. 搭建配置環(huán)境
本章節(jié)講述libIEC61850庫的編譯環(huán)境配置過程。
2.1. 安裝JAVA環(huán)境
IEC61850庫中的ICD文件需要一個JAVA工具來進行轉換,所以需要先安裝JAVA運行環(huán)境。米爾提供的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環(huán)境變量,修改/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運行環(huán)境是否安裝成功:
# 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制作的交叉編譯工具鏈??截愇挥诠獗P04-Linux_source\Toolchain\arm-myir-linux-gnueabihf-gcc.tar.gz到ubuntu的工作目錄。通過下面操作設置交叉編譯工具鏈環(huán)境變量。
# 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庫
本章節(jié)講述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運行環(huán)境是否設置成功。
?編譯MYIR IEC61850演示程序:
# cd examples/myir_iec61850_server
# make TARGET=LINUX-ARM
?
4. 運行驗證IEC61850應用
4.1. 運行應用
編譯完成后MYIR IEC61850應用位于examples/myir_iec61850_server/目錄下面,將myir_iec61850_server拷貝至開發(fā)板,運行過程如下所示。
# 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 按鈕,然后輸入輸入開發(fā)板網口的IP地址 192.168.x.xxx ,輸入完成后點擊 Discover 按鈕。
進入 Browser 頁面,可以看到以MYIR1命名的IED設備模型。
點擊IED設備模型下面的Data Models->LD1->GGIO1進入通用I/O控制界面。
雙擊GGIO1下面的LED1數據對象,可以看到Switch這個數據屬性,然后點擊上方菜單欄的Write按鈕即可對LED1進行控制
在Value欄選擇false,然后點擊Write按鍵,此時開發(fā)板上的LED心跳燈就被點亮了,說明通訊成功。
米爾基于STM32MP135開發(fā)板
米爾STM32MP135核心板開發(fā)板,基于單核 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接口。開發(fā)板配套提供豐富的軟件資源以及文檔資料,助力開發(fā)者開發(fā)成功。
米爾STM32MP135開發(fā)板標注圖
產品鏈接:
https://www.myir.cn/shows/110/57.html
提交
海思Hi3093工控MPU-米爾嵌入式核心板開發(fā)板
米爾RZ/G2L開發(fā)板瑞米派雙核A55Remi Pi學習板兼容樹莓派擴展模塊
米爾電子芯馳系列-D9-pro處理器D9360商顯板-國產六核CPU
米爾首發(fā)-全志T527核心板-國產開發(fā)板,8核A55賦能邊緣計算
米爾電子 瑞薩系列-RZ/G2UL核心板,通用64位工業(yè)MPU