首页/新闻资讯/正文详情

零基础实现IEC61850(一)启动服务端

发布时间:2026/11/5 6:30:26 来源:云帆数科 栏目:资讯中心
零基础实现IEC61850(一)启动服务端
零基础实现IEC61850一启动服务端不要重复造轮子我们是要造一部豪车但是我们不需要造轮子开发IEC61850产品也是如此。所谓实现IEC61850并不是要开发IEC61850本身而是要开发的智能产品具备IEC61850的功能所以实现IEC61850只需要找到合适的轮子即可本文以国产的YX-PIS协议栈为轮子从零开始手把手指导如何实现IEC61850的功能。如何拿到轮子云行科技分享了一些工具在gitee上地址如下https://gitee.com/yunxingtianxia/yx-tools其中yx-pis-dll目录下分享了yx-pis产品的cms版和mms版的动态库文件目前分享了windows 64位版本在这里我们可以免费获得cms和mms版本的头文件lib文件和dll文件。开始让轮子转一转新建工程这里将采用VS2022进行讲解由于是cmake工程使用其他IDE也可以正常使用。本例采用纯c代码开发所以要做一下更名直接修改iec61850server.cpp文件名为iec61850server.cCMakeList.txt文件中应该会自动同步。删除iec61850server.c中的C代码using namespace std;coutHello CMake.endl;删除iec61850server.h中的C代码#includeiostream编译一下不报错就可以了接下来我们开始IEC61850服务端的开发首先添加头文件目录在CMakeList.txt中增加include_directories(yx-pis-dll/mms/include)如果要开发CMS版本就用下面这句include_directories(yx-pis-dll/cms/include)添加lib库目录link_directories(${CMAKE_SOURCE_DIR}/yx-pis-dll/mms)同理cms是如下link_directories(${CMAKE_SOURCE_DIR}/yx-pis-dll/cms)链接动态库target_link_libraries(iec61850server mms-ctk)同理cms是如下target_link_libraries(iec61850server cms-ctk)精简CMakeList最终效果如图开始代码添加引用添加YX-PIS提供的三个头文件#includeIEC61850Types.h#includeIEC61850API.h#includesysctype.h创建IEC61850对象定义全局变量IEC61850 g_iec61850;使用YX-PIS提供的API接口IEC61850_Create创建在IEC61850API.h中介绍了IEC61850_Create并提供了例程我们参考后在main函数中添加如下代码IEC61850_ErrorCode errorS_OK;IEC61850_Parameters param{0};// 参数结构体param.clientServerFlagIEC61850_SERVER;// 设置为服务端param.Ed1_Ed2_FlagIEC61850_Edition2;// 设置为IEC61850第二版// 创建IEC61850对象g_iec61850IEC61850_Create(param,error);if(g_iec61850){printf(Server success to create: %s (%u)\n,IEC61850_ErrorString(error),error);}我们编译运行一下如果打印了Server成功创建证明对象的创建成功。如果提示下图请将dll文件拷贝到编译的可执行文件目录加载CID准备CID如果已经有CID文件可以直接使用如果没有可以手工创建一个这里推荐使用建模工具创建建模工具直接访问云端版http://scl.yunxing.tech:8888也可在该地址下载桌面版。直接新建然后按照图片设置本机IP即可将文件保存到可执行文件所在目录加载CID//加载CID模型errorIEC61850_LoadSCLFile(g_iec61850,testIED.cid);if(errorS_OK){printf(Server success to load cid file\n);}启动服务//启动服务if(errorS_OK){errorIEC61850_Start(g_iec61850);if(error!S_OK){printf( Cant start server: %s (%i)\n,IEC61850_ErrorString(error),error);}else{printf(Server success to start\n);}}启动后要让程序停下来不然程序就会退出了简单点增加一个getchar()等待任意字符服务的停止和释放printf(Stopping IEC61850 Server \n);errorIEC61850_Stop(g_iec61850);if(error!S_OK){printf( Cant stop server: %s (%i)\n,IEC61850_ErrorString(error),error);}else{printf(Freeing IEC61850 Server \n);errorIEC61850_Free(g_iec61850);//Frees s_iec61850if(errorS_OK){g_iec61850NULL;}else{printf( Free IEC61850 Object has failed: %s (%i)\n,IEC61850_ErrorString(error),error);}}看看运行效果注意在这之前需要安装winpcap4.1.3或者安装wireshark抓包工具会提示安装npcap或者winpcap运行后如下图看到这样的效果就是启动成功了对于mms版本可以使用iedscout尝试连接看看可以正常访问并且获得模型对于CMS版本的验证可以安装yx-tools下提供的cms-test-tool为绿色软件直接运行IEC61850_GSP_Client_Test_Tool.exe即可好了今天的服务端启动工作就完成了为了简单本例子的全部代码都放在iec61850server.c中全部内容如下#includeiec61850server.h#includeIEC61850Types.h#includeIEC61850API.h#includesysctype.hIEC61850 g_iec61850;intmain(){IEC61850_ErrorCode errorS_OK;IEC61850_Parameters param{0};// 参数结构体param.clientServerFlagIEC61850_SERVER;// 设置为服务端param.Ed1_Ed2_FlagIEC61850_Edition2;// 设置为IEC61850第二版// 创建IEC61850对象g_iec61850IEC61850_Create(param,error);if(g_iec61850){printf(Server success to create: %s (%u)\n,IEC61850_ErrorString(error),error);//加载CID模型errorIEC61850_LoadSCLFile(g_iec61850,testIED.cid);if(errorS_OK){printf(Server success to load cid file\n);}}//启动服务if(errorS_OK){errorIEC61850_Start(g_iec61850);if(error!S_OK){printf( Cant start server: %s (%i)\n,IEC61850_ErrorString(error),error);}else{printf(Server success to start\n);}}// 利用获取字符暂停getchar();//停止服务printf(Stopping IEC61850 Server \n);errorIEC61850_Stop(g_iec61850);if(error!S_OK){printf( Cant stop server: %s (%i)\n,IEC61850_ErrorString(error),error);}else{// 释放内存printf(Freeing IEC61850 Server \n);errorIEC61850_Free(g_iec61850);//Frees s_iec61850if(errorS_OK){g_iec61850NULL;}else{printf( Free IEC61850 Object has failed: %s (%i)\n,IEC61850_ErrorString(error),error);}}return0;}有任何疑问欢迎访问 https://yunxing.tech/ 联系大连云行科技有限责任公司

相关推荐

RK3588-WIFI/BT调试之AP6256
RK3588-WIFI/BT调试之AP6256

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 6:29:26

libX11开发手册-第十章-窗口事件相关概念
libX11开发手册-第十章-窗口事件相关概念

本章主要讲解libX11的开发相关使用内容,主要是X11中事件响应的相关内容。用户的应用程序主要通过使用XOpenDisplay与XServerj建立的链接进行需求传递,所有许多的Xlib的函数都会导致XServer产生相对应的事件,例如鼠标和窗口的移动会产生异步事… · 2026/11/5 6:29:26

RK3588-Camera:MIPI-CSI调试之通路解析
RK3588-Camera:MIPI-CSI调试之通路解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 6:29:26

OpenClaw 2026版核心能力与京东云部署指南
OpenClaw 2026版核心能力与京东云部署指南

1. OpenClaw(Clawdbot)2026版核心能力解析OpenClaw作为新一代AI助理框架,在2026年3月发布的版本中实现了多项突破性升级。与市面上常见的聊天机器人不同,它真正实现了从"对话交互"到"任务执行"的跨越。我在实… · 2026/11/5 7:15:37

推荐系统架构设计与工程实践:从实时处理到多目标优化
推荐系统架构设计与工程实践:从实时处理到多目标优化

1. 推荐系统的演进与挑战十年前我刚入行推荐系统时,业界还在用基于物品协同过滤的静态模型。记得当时为了提升3%的准确率,团队花了两个月调整相似度计算公式。如今在电商平台工作,每天要处理20亿的用户行为事件,模型更新频率从周级… · 2026/11/5 7:15:37

基于STM32F407的嵌入式示波器设计与实现
基于STM32F407的嵌入式示波器设计与实现

简介:本资源是一套基于STM32F407微控制器实现的嵌入式数字示波器完整开发工程,面向嵌入式初学者、电子类专业学生及硬件开发者,解决低成本、可定制化信号采集与实时波形显示的学习与实践需求。项目深度整合ADC高速采样、FIFO数据缓存、Cortex… · 2026/11/5 7:15:37

二叉树硬币分配算法:后序遍历与递归解法
二叉树硬币分配算法:后序遍历与递归解法

1. 问题理解与解法思路这道题目要求我们在二叉树中重新分配硬币,使得每个节点恰好有1枚硬币。我们可以通过递归遍历二叉树来解决这个问题。关键在于理解每个节点的"过载量"(即该节点的硬币数与1的差值),以及如何将这些过… · 2026/11/5 7:15:37

网络安全运维学习路线:从零基础到专业进阶
网络安全运维学习路线:从零基础到专业进阶

1. 网络安全运维学习路线解析作为一名在网络安全行业摸爬滚打十年的老兵,我见过太多转行者因为学习顺序错误而浪费时间和精力。今天我就来分享一套经过实战验证的网络安全运维学习路线,帮助零基础的朋友少走弯路。1.1 为什么学习顺序如此重要网络安全运维… · 2026/11/5 7:15:37

商业航天与卫星通信技术解析及应用场景
商业航天与卫星通信技术解析及应用场景

1. 商业航天与卫星通信行业概述2000年初,我参与第一个卫星地面站建设项目时,商业航天还只是各国航天局的专属领域。如今SpaceX的猎鹰火箭已实现常态化回收,OneWeb和星链正在近地轨道展开激烈竞争——这个曾经由国家主导的行业,正在… · 2026/11/5 7:14:37

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

多智能体协作系统架构设计与实践优化
多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中… · 2026/11/5 0:00:39

大模型系统性入门实战指南:从原理到部署微调的全链路路线
大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#… · 2026/11/5 0:00:39

鸿蒙文件系统沙箱机制解析与开发实践
鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的… · 2026/11/5 0:00:39

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码