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

news2024/11/17 3:24:16

1.概述

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

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

IEC61850开源库了解更多请访问:libIEC61850 now on github | libIEC61850 / lib60870

MYD-YF13X开发板了解更多访问:STM32MP135核心板 开发板 - 高性价比入门级MPU设计平台 -深圳市米尔电子有限公司

2.搭建配置环境

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

2.1. 安装JAVA环境

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)

2.2. 配置交叉编译工具链

这里直接使用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)

3.编译IEC61850库

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

3.1. 获取IEC61850源码包

米尔提供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

  • 编译IEC61850库:

# make TARGET=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来指定外部库的路径,将<WORKIR>替换为用户实际的工作路径:

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开发板标注图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1429118.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于STM32的照相机

基于STM32的照相机 准备工作最终效果一、下位机1、主函数2、OV7670初始化 二、上位机1、控制拍照2、接收图片数据 三、资源获取 准备工作 一、硬件及片上资源: 1,串口1(波特率:921600,PA9/PA10通过usb转ttl连接电脑&#xff0c;或者其他方法)上传图片数据至上位机 2,串口2(波特…

JAVA后端上传图片至企微临时素材

1.使用场景 在使用企业微信API接口中&#xff0c;往往开发者需要使用自定义的资源&#xff0c;比如发送本地图片消息&#xff0c;设置通讯录自定义头像等。 为了实现同一资源文件&#xff0c;一次上传可以多次使用&#xff0c;这里提供了素材管理接口&#xff1a;以media_id来…

jupyter notebook找不到自己创建的环境 无法识别 解决方法

问题描述&#xff1a; 这是最近遇到的一个关于Anaconda的小问题。 用conda创建一个名为 pytorch 的环境想学习pytorch&#xff0c;安装完一切之后在 jupyter 中找不到 pytorch 这个虚拟环境&#xff0c;与之相关的库也都无法调用 解决方法&#xff1a; 实际上是由于在虚拟环境…

docker踩坑记录

踩坑记录 1.1 后台启动容器&#xff0c;实际没有启动 现象&#xff1a; 后台启动centos&#xff0c;结果执行docker ps命令&#xff0c;容器没启动。 原因&#xff1a; docker是以容器启动的&#xff0c;必须要有个前台进程&#xff0c;若是全部都是后台deamon守护进程&…

实体对齐与知识融合工具综述

目录 前言1 实体对齐概述1.1 实体对齐的核心1.2 实体对齐的目标 2 传统实体对齐方法2.1 等价关系推理2.2 相似度计算2.3 特征计算 3 基于表示学习的实体对齐方法3.1 嵌入式方法3.2 语义关系的捕捉3.3 低维向量空间的优势 4 知识融合工具4.1 Silk4.2 openEA4.3 EAKit 结语 前言 …

docker安装定制gocd-agent

一、定制gocd-agent FROM gocd/gocd-agent-alpine-3.12:v21.1.0 MAINTAINER xxx "xxx163.com" # 切换到 root 用户 USER root # 安装 expect、jdk、docker RUN apk update && apk add expect && apk add openjdk8 && apk add docker &&…

XML传参方式

export function groupLoginAPI(xmlData) {return http.post(/tis/group/1.0/login, xmlData, {headers: {Content-Type: application/xml,X-Requested-With: AAServer/4.0,}}) }import {groupLoginAPI} from "../api/user"; function (e) { //xml格式传参let groupX…

anaconda离线安装包的方法

当设备没有网络时&#xff0c;可以使用有网络的设备先下载所需安装包&#xff0c;然后离线拷贝到需要安装的设备&#xff0c;最后安装。 一. 下载所需安装包 下载命令&#xff1a;使用pip download。详细描述参见pip download -h 以"blind-watermark"为例。 pip …

【Linux】理解系统中一个被打开的文件

文件系统 前言一、C语言文件接口二、系统文件接口三、文件描述符四、struct file 对象五、stdin、stdout、stderr六、文件描述符的分配规则七、重定向1. 重定向的原理2. dup23. 重谈 stderr 八、缓冲区1. 缓冲区基础2. 深入理解缓冲区3. 用户缓冲区和内核缓冲区4. FILE 前言 首…

查看域控组策略是否在客户端生效

要查看域控制器上的组策略是否已在客户端生效&#xff0c;可以按照以下步骤操作&#xff1a; 使用 RSOP (Resultant Set of Policy): 在客户端计算机上&#xff0c;以管理员身份打开命令提示符或者 PowerShell&#xff0c;并运行 gpresult /h GPReport.html 或 gpresult /v 命令…

10MHz 到 80MHz、10:1 LVDS 并串转换器(串化器)/串并转换器(解串器)MS1023/MS1224

产品简述 MS1023 串化器和 MS1224 解串器是一对 10bit 并串 / 串并转 换芯片&#xff0c;用于在 LVDS 差分底板上传输和接收 10MHz 至 80MHz 的并行字速率的串行数据。起始 / 停止位加载后&#xff0c;转换为负载编 码输出&#xff0c;串行数据速率介于 120Mbps…

Python实现利用仅有像素级标注的json文件生成框标注的json文件,并存放到新文件夹

import json import os # create rectangle labels based on polygon labels, and store in a new folder def create_rectangle_shapes(polygon_shapes):rectangle_shapes []for polygon_shape in polygon_shapes:# 获取多边形的坐标点points polygon_shape[points]# 找到最…

监测Tomcat项目宕机重启脚本(Linux)

1.准备好写好的脚本 #!/bin/sh # 获取tomcat的PID TOMCAT_PID$(ps -ef | grep tomcat | grep -v tomcatMonitor |grep -v grep | awk {print $2}) # tomcat的启动文件位置 START_TOMCAT/mnt/tomcat/bin/startup.sh # 需要监测的一个GET请求地址 MONITOR_URLhttp://localhost:…

消息总线在微服务中的应用

直连式配置中心 上一篇文章介绍了 Spring Cloud 中的分布式配置组件 Config&#xff0c;每个服务节点可以从Config Server 拉取外部配置信息。但是似乎还有一个悬而未决的问题&#xff0c;那就是当服务节点数量非常庞大的时候&#xff0c;我们不可能一台一台服务器挨个去手工触…

django+flask警务案件信息管理系统python-5dg53-vue

1&#xff09;用户在后台页面各种操作可及时得到反馈。 &#xff08;2&#xff09;该平台是提供给多个用户使用的平台&#xff0c;警员使用之前需要注册登录。登录验证后&#xff0c;警员才可进行各种操作[10]。 &#xff08;3&#xff09;管理员用户拥有信息新增&#xff0c;修…

计算机二级C语言的注意事项及相应真题-2-程序修改

目录 11.找出n的所有因子&#xff0c;统计因子的个数&#xff0c;并判断n 是否是”完数”12.计算s所指字符串中含有t所指字符串的数目13.将一个由八进制数字组成的字符串转换为与其面值相等的十进制整数14.根据整型形参m的值&#xff0c;计算如下公式的值15.从低位开始依次取长…

Springboot多种方法处理静态资源:设置并访问静态资源目录

&#xff5e;目录嗷&#xff5e; 静态文件application设置方法 配置详解编写配置优缺点 设置配置类方法 配置详解编写配置优缺点 总结 作者&#xff1a;Mintimate 博客&#xff1a;https://www.mintimate.cn Mintimate’s Blog&#xff0c;只为与你分享 静态文件 静态资源&…

Pycharm python用matplotlib 3D绘图显示空白解决办法

问题原因&#xff1a; matplotlib版本升级之后显示代码变了&#xff0c;修改为新的 # ax Axes3D(fig) # 原代码 ax fig.add_axes(Axes3D(fig)) # 新代码import numpy as np import matplotlib.pyplot as plt from matplotlib import cm from mpl_toolkits.mplot3d import Ax…

pytest的常用插件和Allure测试报告

pytest常用插件 pytest-html插件 安装&#xff1a; pip install pytest-html -U 用途&#xff1a; 生成html的测试报告 用法&#xff1a; ​在.ini配置文件里面添加 addopts --htmlreport.html --self-contained-html 效果&#xff1a; 执行结果中存在html测试报告路…

前端工程化之:webpack1-8(loader)

一、loader webpack 做的事情&#xff0c;仅仅是分析出各种模块的依赖关系&#xff0c;然后形成资源列表&#xff0c;最终打包生成到指定的文件中。 更多的功能需要借助 webpack loaders (加载器)和 webpack plugins (插件)完成。 webpack loader &#xff1a; loader 本质上是…