首页 > 其他分享 >能源管理系统EMS与IEC61850

能源管理系统EMS与IEC61850

时间:2024-04-26 20:55:47浏览次数:15  
标签:管理系统 系统 开发板 编译 EMS 61850 IEC61850 数据

接上上文,板上运行提示缺少某些库,可能是因为交叉编译工具版本太高了。后续使用vitis自带的交叉编译工具编译,然后放入Xilinx开发板运行成功。

EMS,即能源管理系统,是储能“3s”之一。设计和制造一个储能EMS系统需要考虑包括系统架构设计、功能需求、软件开发、硬件选型等多个方面:

  1. 需求分析:确定系统的功能需求和性能指标,包括对储能系统的监测、控制、优化等方面的需求,同时考虑系统的可扩展性和适应性;
  2. 架构设计:设计系统的整体架构,包括前端数据采集、后端数据处理、控制算法、用户界面等部分的组成结构,确定系统各模块之间的交互和通信方式;
  3. 软件开发:开发系统的软件部分,包括数据采集、数据处理、控制算法、用户界面等功能模块的开发;
  4. 硬件选型:选择合适的硬件设备,包括传感器、控制器、通信设备等,确保硬件设备能够满足系统的性能和功能要求,并与软件系统相兼容。
  5. 测试部署:验证系统的功能和性能是否符合设计要求,确保各个模块之间的协调运行和数据的准确性,再部署到实际的储能系统中,进行现场调试和优化。

目前行业内做EMS开发的公司有杭州高特、杭州协能、山东德联和研华等公司。博主本人是做嵌入式开发出身,莫名其妙进入储能行业后第一个项目就是EMS。在第一步时就十分懵逼:以前都是实现某项功能、完成某个成果才算工作量,不理解为什么这类工作搜集材料整理个需求文档就算完成工作了?挣扎了大半年之后好像对这种解决方案类的工作有一些理解了,努力尝试“以系统的整体架构入手去思考问题”。

第一步需求分析,这一步要做的工作就是根据电站设计的指标和需求整理一堆excel和Visio文档,一般是要有多年经验的老员工才能干,半转行的应届生一般干不了。

第二步架构设计,以一个五层结构的EMS系统为例,从下到上可以是:硬件层(PC)、操作系统层(Linux,Windows)、支撑平台层(数据库、网络通信)、数学建模层(预测模型、系统模型等)及应用软件层(SCADA、应用软件)。需要完成全系统的功能分解及信息流规划,模块间通信协议、接口及线缆种类、规格等。
前端数据采集,包括光伏、风力、储能电芯、电网及负荷、PCS等模块的数据。采集后实时显示在用户界面,并使用这些数据进行系统状态估计、控制保护及实现所需其他功能(如自动发电控制、负荷预测、发电预测与经济调度等)。
模块内的通信方式以串行通信(IIC\SPI)和CAN通信为主,模块之间则以61850,modbus,104等协议为主。

第三步软件开发的工作量十分庞大,一般由专业的EMS完成底层代码开发,用户进行二次开发。

第四步类似一、二步,需要对整个系统以及常用的硬件设备非常熟悉才能干的了。

最后一步,整体测试验证、项目落地运行。

以上这些啰啰嗦嗦,讲了一堆宏观的内容,但是到了实际工作分配后,却不知道第一步要干什么。以前是做嵌入式的,实在不想去搞项目管理,还是想把工作内容与软件开发结合起来。考虑到现实情况能做的实在太少,上网查了几篇论文,看了几篇博客,发现有个开源的通信工程代码libiec61850,还有详细的文档介绍。于是下载了源码学习了一下,顺便移植到Xilinx开发板上运行,与上位机联调。

IEC61850

登录网站libiec61850.com,下载源码到本地。
工程可以在Windows、Linux下运行,包括x86及ARM架构,可以和IEDScout通信。网站上有介绍文档和API说明。在Linux虚拟机内编译后,选择client_example2和server_example_goose。进入.c文件后,修改网络接口名称、IP地址和mac地址,保存编译,然后以sudo运行server和client。可以看到服务端与客户端分别输出如下:

可以看到服务端和客户端正常运行。客户端展示了如何访问一个未知设备上的数据模型,这个数据模型在服务端文件夹内的cid文件中。这是61850的IED 模型配置文件,下面来仔细解读一下这个文件。

cid文件

读懂这个文件需要一定的XML语法知识,可以参考61850-6文档。打开文件,将其分为三部分解读。

1、通信配置

第5~36行communication部分是文件的通信配置部分。communication下是子网和接入点部分,其中接入点处定义了IED名称和接入点名称,在后面部分会用到。

接入点下的address设置IP地址、子网掩码和网关。
OSI-TSEL:表示 OSI 模型中的 TSEL(Transport Service Access Point Selector)为 0001,用于在传输层标识服务访问点。
OSI-PSEL:表示 OSI 模型中的 PSEL(Presentation Service Access Point Selector)为 00000001,用于在表示层标识服务访问点。
OSI-SSEL:表示 OSI 模型中的 SSEL(Session Service Access Point Selector)为 0001,用于在会话层标识服务访问点。

GSE表示 GSE 实例的 ldInst 为 "GenericIO",cbName 为 "gcbEvents",分别指定了逻辑设备名称和控制块名称。Address为地址信息,MinTime和MaxTime一般为毫秒。

2、IED

Services部分描述了服务端IED实例支持的服务。
AccessPoint是通信配置部分出现过的接入点,里面包含来一个LDevice逻辑设备GenericIO,逻辑设备内部有三个逻辑节点,分别是LN0、LPHD和GGIO。

LN0内部定义了四个数据集DataSet,两个报告控制块ReportControl,两个GSEControl和一个数据对象DO。
DataSet(数据集):用于定义一组数据对象,这些数据对象通常包含监测点、测量值、状态等信息。可用于定义需要传输的数据集合,以便在电力系统中进行监测、控制和管理。
ReportControl(报告控制):用于定义报告生成和传输的控制参数,包括报告生成周期、报告传输方式、报告对象等。可以用于配置系统生成和传输报告的行为,以便及时获取系统状态和事件信息。
GSEControl(GSE控制):用于控制 GSE(Generic Substation Events)数据的生成和传输,包括 GSE 数据的采集周期、传输方式、优先级等。可以用于配置 GSE 数据的采集和传输参数,以便及时获取系统中的事件信息。

GGIO内部定义了一个Mod和四个SPCSO。SPCSO代表generic single point controllable status output是否使能,ctlModel均为direct-with-normal-security。关于这个值的具体含义可以参考61850-7-2。

3、数据类型模板

最后一部分是DataTypeTemplates,在这里定义的模板才能被第二部分使用。包括了逻辑节点、数据对象、数据属性和枚举类型。

Xilinx开发板测试

最后来在Xilinx开发板上运行代码,与电脑虚拟机之间使用61850协议互相通信。连接开发板需要用到电源线、网线和串口线(也可以用ssh协议,这样就不用串口)。

首先需要安装交叉编译环境,可参考前几节文章内容,在ARM官网下载,或者直接使用vitis自带的交叉编译工具链。如果报错command not found,运行以下命令:

apt-get install gcc-arm-linux-gnueabi
sudo apt-get install gcc-arm*

安装完成后,安装libiec61850官网说明,make时附带参数TARGET=LINUX-ARM,即可编译完成ARM格式的可执行文件。使用file命令校验:

可以看到文件无误。虚拟机运行服务端程序server_example_goose,客户端仍然选择client_example2,使用ssh命令传输到开发板上运行,输出结果如下:

看到输出结果与虚拟机内输出相同,程序运行无误。

同时也可以使用wireshark观察交互的数据包:

后续可以把Xilinx开发板换成BMS,电脑换成EMS、工控机,多尝试使用几个61850服务,感受协议在电力系统中的使用方式。

标签:管理系统,系统,开发板,编译,EMS,61850,IEC61850,数据
From: https://www.cnblogs.com/csuftnju/p/18156671

相关文章

  • Week 9 Problems
    T1用等值演算、构造指派等方式判断公式的永真性(1)\[(\forallxP(x)\rightarrow\existxQ(x))\rightarrow\existx(P(x)\rightarrowQ(x))\](2)\[(\forallxP(x)\rightarrow\forallxQ(x))\rightarrow\forallx(P(x)\rightarrowQ(x))\]T2以下哪一步出现错误?......
  • 「案例分享」DevExpress XAF (WinForms UI)赋能医疗管理系统,让操作更自动化!
    DevExpressXAF是一款强大的现代应用程序框架,它采用模块化设计,开发人员可以选择内建模块,也可以自行创建,从而以更快的速度和比开发人员当前更强有力的方式创建应用程序。获取DevExpress新版正式版下载DevExpress技术交流群10:532598169      欢迎一起进群讨论项目背景Min......
  • PlayerSettings.WebGL.emscriptenArgs设置无效的问题
    1)PlayerSettings.WebGL.emscriptenArgs设置无效的问题2)java.lang.NoSuchMethodError的不明崩溃问题3)UE电影摄像机旋转问题4)Android设备游戏切后台后唤起,有概率变卡且黑屏这是第383篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更......
  • 如何通过文件外发管理系统,保护企业机密数据不外泄?
    在互联网时代,企业与外界进行频繁的信息沟通已成为必要的一种业务模式,而在交互的过程中很可能会涉及到企业的相关敏感信息,一旦不慎流出就将会面临失控的风险。像员工在掌握了公司的关键信息后另起炉灶,设立同类型公司,成为“老东家”的竞争对手;不法企业以高薪为诱饵,招募权利人软件开......
  • HINT: It seems you set a fixed date / time / datetime value as default for this
    WARNINGS:customers.PackingHead.packing_date:(fields.W161)Fixeddefaultvalueprovided.HINT:Itseemsyousetafixeddate/time/datetimevalueasdefaultforthisfield.Thismaynotbewhatyouwant.Ifyouwanttohavethecurrentdateasdefault......
  • 水资源管理系统:守护生命之源,构建和谐水生态
    水资源是维系地球生态平衡和人类社会可持续发展的重要基础。然而,随着人口增长、工业化和城市化的加速,水资源短缺、水质污染和生态破坏等问题日益凸显。在这样的背景下,构建一个全面、高效、智能的水资源管理系统显得尤为迫切和必要。项目背景水资源的合理利用和有效保护是全球面......
  • 矿产资源管理系统:开启智慧矿业新篇章
    项目背景在全球经济发展的大背景下,矿产资源作为工业的“粮食”和“血液”,其合理开发与有效管理对于国家的经济发展、能源安全和工业稳定供应具有不可替代的作用。然而,随着资源的日益紧张和环境保护要求的提高,传统的矿产资源管理模式已难以满足现代社会的需求。因此,构建......
  • LLM开源小工具(基于代码库快速学习/纯shell调用LLM灵活管理系统)
    随着AI的各种信息的发展,LLM各种模型不断涌现,作为一名IT人员不得不向前走,不断探索学习发现新知识。随着学习,也了解到一些对于模型的调用,从而解决一些问题,或者对已有工具或应用的重写。如下是两个小工具介绍:QA-Pilot 是一个基于github开放的代码库进行对话式学习使用的工具(目前......
  • ASP.NET MVC4.0+EF+LINQ+bui+bootstrap+网站+角色权限管理系统(1)
    ASP.NETMVC4.0+EF+LINQ+bui+bootstrap+网站+角色权限管理系统(1) 本系列的的角色权限管理主要采用Dotnet MVC4工程内置的权限管理模块Simplemembership实现,主要有关文件是InitializeSimpleMembershipAttribute.cs和AccountModels.cs下面是对这两个文件的了解和改造 WebSe......
  • ASP.NET MVC4.0+EF+LINQ+bui+网站+角色权限管理系统(6)
    ASP.NETMVC4.0+EF+LINQ+bui+网站+角色权限管理系统(6) 快过年了,公司事情忙,好几天没有继续写博客,今天开始写账户模块系统登录,账户管理以及登录日志,首先新建登录日志数据表: ViewCode然后更改模型:AccountModels.cs ViewCode创建登录日志模型:M_UsersLoginLogs.cs View......