IEC61850中報(bào)告服務(wù)端開(kāi)發(fā)_第1頁(yè)
IEC61850中報(bào)告服務(wù)端開(kāi)發(fā)_第2頁(yè)
IEC61850中報(bào)告服務(wù)端開(kāi)發(fā)_第3頁(yè)
IEC61850中報(bào)告服務(wù)端開(kāi)發(fā)_第4頁(yè)
IEC61850中報(bào)告服務(wù)端開(kāi)發(fā)_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、本文講述的是IEC61850中最常用的報(bào)告功能服務(wù)端的實(shí)現(xiàn)方法, 內(nèi)容包含了 CID建模,編碼實(shí)現(xiàn),還包括后面的運(yùn)行效果、MMS報(bào) 文等。一、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這里重點(diǎn)關(guān)注 P type 為IPIP-SUBNETIP-GATEWAYMAC-Address四個(gè) 配置,分別代表了本機(jī)IP地址,子網(wǎng)掩碼、網(wǎng)關(guān)IP地址、本機(jī)MAC地址。需 要按照?qǐng)?bào)告服務(wù)端裝置的實(shí)際情況配置,多網(wǎng)卡情況需要根據(jù)實(shí)際需要選擇一個(gè) 網(wǎng)卡進(jìn)行配置。2、服務(wù)、邏輯設(shè)備、邏輯節(jié)點(diǎn)、數(shù)據(jù)、數(shù)據(jù)屬性 按照這個(gè)順序逐一添加,這里考慮讀

3、者具備基本的建模知識(shí),所以建模相關(guān)知識(shí) 就不詳細(xì)介紹了。這里截取部分 CID 信息如下:邏輯節(jié)點(diǎn) MMXU:vLN desc= inst=O lnClass=MMXU lnType=MMXU_O prefix= 數(shù)據(jù)和數(shù)據(jù)屬性:vDOI desc= name=AvSDI name=phsAvSDI name=cValvSDI name=magvDAI name=iv/DAIv/SDIv/SDIvDAI name=qv/DAIvDAI name=tv/DAIv/SDIv/DOI因?yàn)槭且_(kāi)發(fā)報(bào)告服務(wù)端,所以要配置報(bào)告控制塊,那么配置控制塊之前就需要 創(chuàng)建數(shù)據(jù)集如下:vDataSet name=”M

4、MXUDataSet”vFCDA daName=”phsA” doName=”A” fc=”MX” Idlnst=”Example” InClass=MMXU Inlnst=0 prefix=/F面就是報(bào)告控制塊的設(shè)置(非緩存報(bào)告控制塊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如果是要設(shè)置緩存報(bào)告控制塊BRCB,需要加上緩存時(shí)間和緩存標(biāo)志,例如:vReportControl bufTime=50000 buffered=true confRev觸發(fā)選項(xiàng)TrgOps部分設(shè)置了數(shù)據(jù)更新,也就是代表數(shù)據(jù)集中數(shù)據(jù)屬性的值發(fā)生 刷新就會(huì)觸發(fā)內(nèi)部事件,對(duì)于非緩存報(bào)告控制塊會(huì)立即發(fā)送報(bào)告。二、編碼如下是服務(wù)端開(kāi)發(fā)使用的PIS-10的方法(PIS-10的lib包下載鏈接: HYPERLINK http:/pan http:/pan. /s/1c06VRm4 密碼: d3aj)IEC61850_Create() 和 IEC61850

6、_Free() 用于創(chuàng)建或刪除客戶端/服務(wù)端對(duì) 象。IEC61850_LoadSCLFile() 使用 SCL 文件配置客戶端/服務(wù)器。如果想重新對(duì)客 戶端/服務(wù)器進(jìn)行配置則必須首先刪除客戶端/服務(wù)端(通過(guò)IEC61850_Free()實(shí) 現(xiàn))并將新的配置下裝到新的客戶端/服務(wù)端(由IEC61850_Create()創(chuàng)建)。IEC61850_Start()和IEC61850_Stop()用于啟動(dòng)或停止客戶端/服務(wù)端的服務(wù) (女口 GOOSE、MMS 等)。調(diào)用IEC61850_Create()函數(shù)時(shí)必須向其傳遞IEC61850_Parameters參量。該 參量包含一個(gè)用了標(biāo)識(shí)MMS行為的標(biāo)志

7、位、一個(gè)可選標(biāo)志位、命令超時(shí)結(jié)束的 時(shí)間值、支持的最大連接數(shù)以及已定義的任何回調(diào)函數(shù)的指針。 . 整個(gè)結(jié)構(gòu)在使 用之前應(yīng)該在內(nèi)存中被置為 0 以避免內(nèi)存中的隨機(jī)值影響函數(shù)的正確執(zhí)行。代碼示例如下:struct IEC61850_Parameters tServerParam = 0;memset(&tServerParam, 0, sizeof(struct IEC61850_Parameters);tServerParam.ClientServerFlag = IEC61850_SERVER; 服務(wù)端 tServerParam.Ed1_Ed2_Flag = IEC61850_Edition2

8、; 采用 2.0 tServerParam.uiOptions= 0; 可查閱 AIP 手冊(cè)了解下面是對(duì)回調(diào)函數(shù)的指定,因?yàn)檫@次不需要回調(diào)所以可以不寫(xiě)回調(diào),但是PIS- 10要求必須指定測(cè)試的回調(diào),所以請(qǐng)?zhí)砑尤缦麓a:tServerParam.ptOp rTestCallback = (IEC61850_Co ntrolOperativeTestCallba ck) OperativeTestCallbackHandler;完成這些后即可創(chuàng)建服務(wù)端對(duì)象,代碼如下:mylEC6185OObject= IEC61850_Create(&tServerParam, &eErrorCode); 創(chuàng)建成

9、功后可以加載前面創(chuàng)建的CID文件,代碼如下:retur nError = LoadSCLFile(./cidFiles/server.cid);加載CID成功后可以執(zhí)行如下代碼完成服務(wù)端的運(yùn)行:eErrorCode = IEC6185O_Start(mylEC6185OObject);報(bào)告的觸發(fā)條件,按照服務(wù)端主動(dòng)發(fā)送的有:完整性、數(shù)據(jù)變化、數(shù)據(jù)更新、質(zhì) 量變化,完整性非常簡(jiǎn)單,只需要在CID建模的時(shí)候設(shè)置一下即可,設(shè)置方法 如下:1、在vReportControl節(jié)點(diǎn)增加屬性intgPd來(lái)設(shè)置完整性發(fā)送的周期,例如int gPd=30000(代表周期為30秒);2、在vOptFields節(jié)點(diǎn)

10、中設(shè)置 period=”true”。這樣設(shè)置后就已經(jīng)可以按照周期發(fā)送報(bào)告了。如果要使用數(shù)據(jù)更新來(lái)觸發(fā)要如何 做呢? PIS-10提供了 DAID的方式,下面為您介紹:首先需要CID建模的時(shí)候?yàn)镈A設(shè)置DAIDvDOI desc= name=AvSDI name=phsAvSDI name=cValvSDI name=magvDAI name=iv/DAI這個(gè)DA設(shè)置后就應(yīng)該是: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來(lái)對(duì)應(yīng)DA name=i的這個(gè)DA,如何更新呢?請(qǐng)看 如下代碼:enum IEC61850_ErrorCodes UpdateValueByDaid()enum IEC61850_ErrorCodes eErrorCode = IEC61850

12、_ERROR_NONE;struct IEC61850_DataAttributelD_Generic updateDAID = 0 ; 定義 一個(gè)DAID的結(jié)構(gòu)體變量(PIS-10標(biāo)準(zhǔn)結(jié)構(gòu)體)struct IEC61850_DataAttributeData updateDAData = 0 ; / 定義一個(gè) 數(shù)據(jù)屬性結(jié)構(gòu)體變量(PIS-10標(biāo)準(zhǔn)結(jié)構(gòu)體)Integer32 nInputValue = 0;IEC61850 mylEC61850Object = GetMyServerClient(); 獲取 IEC61850 對(duì)象/DAID結(jié)構(gòu)體設(shè)置updateDAID.Ge neric_ty

13、pe = IEC61850_DAID_GENERIC;printf(請(qǐng)輸入 DAID 的 Field1 值:);scanf(”d”,&updateDAID.uiField1);printf(請(qǐng)輸入 DAID 的 Field2 值:”);scanf(”d”,&updateDAID.uiField2);printf(請(qǐng)輸入 DAID 的 Field3 值:”);scanf(”d”,&updateDAID.uiField3);printf(請(qǐng)輸入 DAID 的 Field4 值:”);scanf(”d”,&updateDAID.uiField4);printf(請(qǐng)輸入 DAID 的 Field5 值

14、:”);scanf(”d”,&updateDAID.uiField5);/*數(shù)據(jù)屬性結(jié)構(gòu)體設(shè)置*/updateDAData.uiBitLength = sizeof(Integer32)* 8;updateDAData.ucType = IEC61850_DATATYPE_INT32;printf(請(qǐng)輸入要更新的值:);scanf(”d”,&nlnputValue);updateDAData.pvData = &nln putValue;更新DAID對(duì)應(yīng)的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;三、運(yùn)行和抓包為了方便運(yùn)行這里寫(xiě)了一個(gè)循環(huán)菜單,運(yùn)行效果

17、如圖Q D : SysteBCorpdeBoezupleEproj ectTindoTs. . dllIEC61850_Exaaple_Serve.EC61850服務(wù)端例程由大璉云行握供采用SystemCORP公司的P1S-13實(shí)現(xiàn)卜=最近的執(zhí)行結(jié)果 F= = IEC61850 命巒菜單尸= 1程據(jù)MID更新UalueX弦-也詵一請(qǐng)請(qǐng)請(qǐng)請(qǐng)請(qǐng)請(qǐng)奚命令=1詵一請(qǐng)請(qǐng)請(qǐng)請(qǐng)請(qǐng)請(qǐng)1111竈衣 DA ID的 Fieldl 龜天即ID的Field2 氤&即ID的Field3 盧&DAI D 的 Field4 費(fèi)真MID的Fields 1111bd上面是輸入命令 1 后按照提示一點(diǎn)點(diǎn)輸入,最后回車(chē)效果如下:由于

18、我們這里運(yùn)行了客戶端程序,所以能夠抓到報(bào)告的消息包,如下圖:|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專辭綴越副丨麴總鑼象咼丨隊(duì)強(qiáng)瞬尅齊壘丨國(guó)丨Q錢(qián)門(mén)丨竦迢醐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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論