![IEC61850中报告服务端开发_第1页](http://file4.renrendoc.com/view/70a323985b9eb17291f20c364afc14e6/70a323985b9eb17291f20c364afc14e61.gif)
![IEC61850中报告服务端开发_第2页](http://file4.renrendoc.com/view/70a323985b9eb17291f20c364afc14e6/70a323985b9eb17291f20c364afc14e62.gif)
![IEC61850中报告服务端开发_第3页](http://file4.renrendoc.com/view/70a323985b9eb17291f20c364afc14e6/70a323985b9eb17291f20c364afc14e63.gif)
![IEC61850中报告服务端开发_第4页](http://file4.renrendoc.com/view/70a323985b9eb17291f20c364afc14e6/70a323985b9eb17291f20c364afc14e64.gif)
![IEC61850中报告服务端开发_第5页](http://file4.renrendoc.com/view/70a323985b9eb17291f20c364afc14e6/70a323985b9eb17291f20c364afc14e65.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本文讲述的是IEC61850中最常用的报告功能服务端的实现方法, 内容包含了 CID建模,编码实现,还包括后面的运行效果、MMS报 文等。一、CID建模1、通讯部分:vCom muni cati onvSubNetwork name=SubNetworkNamevConnectedAP apName=SubstationRing1 iedName=NewIED vAddress1,1,9999,1v/P12v/PvP type=OSI-PSEL00000001v/PvP type=OSI-SSEL0001v/PvP type=OSI-TSEL0001v/PvP type=IP28v/PvP t
2、ype=IP-SUBNETv/PvP type=IP-GATEWAYv/PvP type=MAC-Address00-0C-29-D0-7D-33v/P v/Addressv/Co nn ectedAPv/SubNetworkv/Com muni cati on这里重点关注 P type 为IPIP-SUBNETIP-GATEWAYMAC-Address四个 配置,分别代表了本机IP地址,子网掩码、网关IP地址、本机MAC地址。需 要按照报告服务端装置的实际情况配置,多网卡情况需要根据实际需要选择一个 网卡进行配置。2、服务、逻辑设备、逻辑节点、数据、数据属性 按照这个顺序逐一添加,这里考虑读
3、者具备基本的建模知识,所以建模相关知识 就不详细介绍了。这里截取部分 CID 信息如下:逻辑节点 MMXU:vLN desc= inst=O lnClass=MMXU lnType=MMXU_O prefix= 数据和数据属性:vDOI desc= name=AvSDI name=phsAvSDI name=cValvSDI name=magvDAI name=iv/DAIv/SDIv/SDIvDAI name=qv/DAIvDAI name=tv/DAIv/SDIv/DOI因为是要开发报告服务端,所以要配置报告控制块,那么配置控制块之前就需要 创建数据集如下:vDataSet name=”M
4、MXUDataSet”vFCDA daName=”phsA” doName=”A” fc=”MX” Idlnst=”Example” InClass=MMXU Inlnst=0 prefix=/F面就是报告控制块的设置(非缓存报告控制块URCB):vReportControl confRev=1datSet=”MMXUDataSet” desc= name=Measurement rptlD=MMXUIDvTrgOps dupd=true/vOptFields dataSet=true reasonCode=true seqNum=”true” ti meStamp=true/vRptEnab
5、led max=3/v/ReportCo ntrol如果是要设置缓存报告控制块BRCB,需要加上缓存时间和缓存标志,例如:vReportControl bufTime=50000 buffered=true confRev触发选项TrgOps部分设置了数据更新,也就是代表数据集中数据属性的值发生 刷新就会触发内部事件,对于非缓存报告控制块会立即发送报告。二、编码如下是服务端开发使用的PIS-10的方法(PIS-10的lib包下载链接: HYPERLINK http:/pan http:/pan. /s/1c06VRm4 密码: d3aj)IEC61850_Create() 和 IEC61850
6、_Free() 用于创建或删除客户端/服务端对 象。IEC61850_LoadSCLFile() 使用 SCL 文件配置客户端/服务器。如果想重新对客 户端/服务器进行配置则必须首先删除客户端/服务端(通过IEC61850_Free()实 现)并将新的配置下装到新的客户端/服务端(由IEC61850_Create()创建)。IEC61850_Start()和IEC61850_Stop()用于启动或停止客户端/服务端的服务 (女口 GOOSE、MMS 等)。调用IEC61850_Create()函数时必须向其传递IEC61850_Parameters参量。该 参量包含一个用了标识MMS行为的标志
7、位、一个可选标志位、命令超时结束的 时间值、支持的最大连接数以及已定义的任何回调函数的指针。 . 整个结构在使 用之前应该在内存中被置为 0 以避免内存中的随机值影响函数的正确执行。代码示例如下:struct IEC61850_Parameters tServerParam = 0;memset(&tServerParam, 0, sizeof(struct IEC61850_Parameters);tServerParam.ClientServerFlag = IEC61850_SERVER; 服务端 tServerParam.Ed1_Ed2_Flag = IEC61850_Edition2
8、; 采用 2.0 tServerParam.uiOptions= 0; 可查阅 AIP 手册了解下面是对回调函数的指定,因为这次不需要回调所以可以不写回调,但是PIS- 10要求必须指定测试的回调,所以请添加如下代码:tServerParam.ptOp rTestCallback = (IEC61850_Co ntrolOperativeTestCallba ck) OperativeTestCallbackHandler;完成这些后即可创建服务端对象,代码如下:mylEC6185OObject= IEC61850_Create(&tServerParam, &eErrorCode); 创建成
9、功后可以加载前面创建的CID文件,代码如下:retur nError = LoadSCLFile(./cidFiles/server.cid);加载CID成功后可以执行如下代码完成服务端的运行:eErrorCode = IEC6185O_Start(mylEC6185OObject);报告的触发条件,按照服务端主动发送的有:完整性、数据变化、数据更新、质 量变化,完整性非常简单,只需要在CID建模的时候设置一下即可,设置方法 如下:1、在vReportControl节点增加属性intgPd来设置完整性发送的周期,例如int gPd=30000(代表周期为30秒);2、在vOptFields节点
10、中设置 period=”true”。这样设置后就已经可以按照周期发送报告了。如果要使用数据更新来触发要如何 做呢? PIS-10提供了 DAID的方式,下面为您介绍:首先需要CID建模的时候为DA设置DAIDvDOI desc= name=AvSDI name=phsAvSDI name=cValvSDI name=magvDAI name=iv/DAI这个DA设置后就应该是:vDOI desc= name=AvSDI name=phsAvSDI name=cValvSDI name=magvDAI name=ivPrivate type=”SystemCorp_Generic” vSyste
11、mCorp_Generic:GenericPrivateObject xmln s:SystemCorp_Ge neric=”h ttp:/.au/61850/SCL/Ge ne ric Field1=3 Field2=1 Field3=1 Field4=1 Field5=1/v/Privatev/DAIv/SDI v/SDI这里就是用3,1,1,1,1来对应DA name=i的这个DA,如何更新呢?请看 如下代码:enum IEC61850_ErrorCodes UpdateValueByDaid()enum IEC61850_ErrorCodes eErrorCode = IEC61850
12、_ERROR_NONE;struct IEC61850_DataAttributelD_Generic updateDAID = 0 ; 定义 一个DAID的结构体变量(PIS-10标准结构体)struct IEC61850_DataAttributeData updateDAData = 0 ; / 定义一个 数据属性结构体变量(PIS-10标准结构体)Integer32 nInputValue = 0;IEC61850 mylEC61850Object = GetMyServerClient(); 获取 IEC61850 对象/DAID结构体设置updateDAID.Ge neric_ty
13、pe = IEC61850_DAID_GENERIC;printf(请输入 DAID 的 Field1 值:);scanf(”d”,&updateDAID.uiField1);printf(请输入 DAID 的 Field2 值:”);scanf(”d”,&updateDAID.uiField2);printf(请输入 DAID 的 Field3 值:”);scanf(”d”,&updateDAID.uiField3);printf(请输入 DAID 的 Field4 值:”);scanf(”d”,&updateDAID.uiField4);printf(请输入 DAID 的 Field5 值
14、:”);scanf(”d”,&updateDAID.uiField5);/*数据属性结构体设置*/updateDAData.uiBitLength = sizeof(Integer32)* 8;updateDAData.ucType = IEC61850_DATATYPE_INT32;printf(请输入要更新的值:);scanf(”d”,&nlnputValue);updateDAData.pvData = &nln putValue;更新DAID对应的DAeErrorCode = IEC61850_Update(mylEC618500bject, (struct IEC61850 _Dat
15、aAttributeID*)&updateDAID, &updateDAData, 1);if (eErrorCode = IEC61850_ERROR_NONE)char strErrorSIZE_OF_ERROR_STRING = 0 ;snprintf(strError, SIZE_OF_ERROR_STRING,更新成功:DAID(% d,%d,%d,%d,%d)更新为%dn, updateDAID.uiField1, updateDAID.uiField2, updateDAID.uiField3, updateDAID.uiField4, updateDAID.uiField5,
16、nlnputVa lue);SetErrorString(strError, SIZE_OF_ERROR_STRING);elsechar strErrorSIZE_OF_ERROR_STRING = 0 ;snprintf(strError, SIZE_OF_ERROR_STRING, ”更新失败:(%i) %sn”, eErrorCode, IEC61850_ErrorString(eErrorCode);SetErrorString(strError, SIZE_OF_ERROR_STRING);return eErrorCode;三、运行和抓包为了方便运行这里写了一个循环菜单,运行效果
17、如图Q D : SysteBCorpdeBoezupleEproj ectTindoTs. . dllIEC61850_Exaaple_Serve.EC61850服务端例程由大琏云行握供采用SystemCORP公司的P1S-13实现卜=最近的执行结果 F= = IEC61850 命巒菜单尸= 1程据MID更新UalueX弦-也诜一请请请请请请奚命令=1诜一请请请请请请1111竈衣 DA ID的 Fieldl 龜天即ID的Field2 氤&即ID的Field3 盧&DAI D 的 Field4 费真MID的Fields 1111bd上面是输入命令 1 后按照提示一点点输入,最后回车效果如下:由于
18、我们这里运行了客户端程序,所以能够抓到报告的消息包,如下图:|h -I Capturing from VMware Virtual Ethernet Adapter Wireshark 1.6.4 (SVN Rev 39941 from /trun. XFile Edit View Go Capture Analyze Statistics Telephony Tools nte im 自 b Help專辭綴越副丨麴總鑼象咼丨队強瞬尅齐壘丨国丨Q钱門丨竦迢醐Filter: mmsv Expression., Clear ApplyNo.TimeSourceDestinationProtocol
19、 Length Info364095326.5297128MMS2161 nl ti ate-ResponsePDU5328.7117928MMS135conf 1 rmed-RequestPDU5328.7120628192.168.95. 1MMS86conf 1rmed-ResponsePDE.5328.722732BMMS138conf 1 rmed-RequestPDU3641 斗5弓23. 7229892.1.百8. 95. 28192.168.95. 1MMS83conf 1rmed-ResponsePDL364155328.7336728MMS140co
20、nf 1 rmed-RequestPDU36480 5370.46445 192.16B. 95. 12B192.166. 95. 1MMS143 unconf 1 rmed-PDUWE斗 165328.7338928MMS83conf 1rmed-ResponsePDL36480 5370.46445 192.16B. 95. 12B192.166. 95. 1MMS143 unconf 1 rmed-PDU田 Frame 36480: 143 bytes on wiE (1144 bits), 143 bytes captu电日(1144 bits):+) Etheoet II, Src: Vni?i,are_dO: 7d: 33 (00 :0c:29:d0:7cl:33) , Dst: Vnr?/ar*e_zO: 00:08 (00 : 50 : 56:c0:0:+ Inteoet Protocol Version 4, Src: 192.16895 128 (192 16895 128) , Dst: 1.92.168
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 石墨材料在汽车工业的潜在市场与推广策略
- 农机具买卖合同范本
- 电影行业中的跨平台营销策略
- 商品车运输合同范本
- 社交化电子商务平台发展与创新路径
- 电力行业安全文化的建设与实践
- 电影项目投资回报率的计算与评估
- 生产安全教育提升员工自我保护意识
- 古董字画修复装裱合同书
- 社交网络运营技巧内容为王的时代
- 2024年人工智能助力社会治理现代化
- 29.4常见肿瘤标志物讲解
- 华为企业大学培训体系
- 学生奖励兑换券模板
- 手术室医院感染控制规范
- 铸牢中华民族共同体意识主题班会教案
- 运营与管理行业培训资料
- 48贵州省贵阳市2023-2024学年五年级上学期期末数学试卷
- 骑手食品安全培训
- 第十六章二次根式单元复习题-2023-2024学年人教版八年级数学下册
- 2023-2024新版北师大七年级数学下册全册教案
评论
0/150
提交评论