版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、本文講述的是IEC61850中最常用的報告功能服務(wù)端的實現(xiàn)方法, 內(nèi)容包含了 CID建模,編碼實現(xiàn),還包括后面的運行效果、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這里重點關(guān)注 P type 為IPIP-SUBNETIP-GATEWAYMAC-Address四個 配置,分別代表了本機IP地址,子網(wǎng)掩碼、網(wǎng)關(guān)IP地址、本機MAC地址。需 要按照報告服務(wù)端裝置的實際情況配置,多網(wǎng)卡情況需要根據(jù)實際需要選擇一個 網(wǎng)卡進行配置。2、服務(wù)、邏輯設(shè)備、邏輯節(jié)點、數(shù)據(jù)、數(shù)據(jù)屬性 按照這個順序逐一添加,這里考慮讀
3、者具備基本的建模知識,所以建模相關(guān)知識 就不詳細介紹了。這里截取部分 CID 信息如下:邏輯節(jié)點 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因為是要開發(fā)報告服務(wù)端,所以要配置報告控制塊,那么配置控制塊之前就需要 創(chuàng)建數(shù)據(jù)集如下:vDataSet name=”M
4、MXUDataSet”vFCDA daName=”phsA” doName=”A” fc=”MX” Idlnst=”Example” InClass=MMXU Inlnst=0 prefix=/F面就是報告控制塊的設(shè)置(非緩存報告控制塊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è)置緩存報告控制塊BRCB,需要加上緩存時間和緩存標志,例如:vReportControl bufTime=50000 buffered=true confRev觸發(fā)選項TrgOps部分設(shè)置了數(shù)據(jù)更新,也就是代表數(shù)據(jù)集中數(shù)據(jù)屬性的值發(fā)生 刷新就會觸發(fā)內(nèi)部事件,對于非緩存報告控制塊會立即發(fā)送報告。二、編碼如下是服務(wù)端開發(fā)使用的PIS-10的方法(PIS-10的lib包下載鏈接: HYPERLINK http:/pan http:/pan. /s/1c06VRm4 密碼: d3aj)IEC61850_Create() 和 IEC61850
6、_Free() 用于創(chuàng)建或刪除客戶端/服務(wù)端對 象。IEC61850_LoadSCLFile() 使用 SCL 文件配置客戶端/服務(wù)器。如果想重新對客 戶端/服務(wù)器進行配置則必須首先刪除客戶端/服務(wù)端(通過IEC61850_Free()實 現(xiàn))并將新的配置下裝到新的客戶端/服務(wù)端(由IEC61850_Create()創(chuàng)建)。IEC61850_Start()和IEC61850_Stop()用于啟動或停止客戶端/服務(wù)端的服務(wù) (女口 GOOSE、MMS 等)。調(diào)用IEC61850_Create()函數(shù)時必須向其傳遞IEC61850_Parameters參量。該 參量包含一個用了標識MMS行為的標志
7、位、一個可選標志位、命令超時結(jié)束的 時間值、支持的最大連接數(shù)以及已定義的任何回調(diào)函數(shù)的指針。 . 整個結(jié)構(gòu)在使 用之前應(yīng)該在內(nèi)存中被置為 0 以避免內(nèi)存中的隨機值影響函數(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 手冊了解下面是對回調(diào)函數(shù)的指定,因為這次不需要回調(diào)所以可以不寫回調(diào),但是PIS- 10要求必須指定測試的回調(diào),所以請?zhí)砑尤缦麓a:tServerParam.ptOp rTestCallback = (IEC61850_Co ntrolOperativeTestCallba ck) OperativeTestCallbackHandler;完成這些后即可創(chuàng)建服務(wù)端對象,代碼如下:mylEC6185OObject= IEC61850_Create(&tServerParam, &eErrorCode); 創(chuàng)建成
9、功后可以加載前面創(chuàng)建的CID文件,代碼如下:retur nError = LoadSCLFile(./cidFiles/server.cid);加載CID成功后可以執(zhí)行如下代碼完成服務(wù)端的運行:eErrorCode = IEC6185O_Start(mylEC6185OObject);報告的觸發(fā)條件,按照服務(wù)端主動發(fā)送的有:完整性、數(shù)據(jù)變化、數(shù)據(jù)更新、質(zhì) 量變化,完整性非常簡單,只需要在CID建模的時候設(shè)置一下即可,設(shè)置方法 如下:1、在vReportControl節(jié)點增加屬性intgPd來設(shè)置完整性發(fā)送的周期,例如int gPd=30000(代表周期為30秒);2、在vOptFields節(jié)點
10、中設(shè)置 period=”true”。這樣設(shè)置后就已經(jīng)可以按照周期發(fā)送報告了。如果要使用數(shù)據(jù)更新來觸發(fā)要如何 做呢? PIS-10提供了 DAID的方式,下面為您介紹:首先需要CID建模的時候為DA設(shè)置DAIDvDOI desc= name=AvSDI name=phsAvSDI name=cValvSDI name=magvDAI name=iv/DAI這個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來對應(yīng)DA name=i的這個DA,如何更新呢?請看 如下代碼:enum IEC61850_ErrorCodes UpdateValueByDaid()enum IEC61850_ErrorCodes eErrorCode = IEC61850
12、_ERROR_NONE;struct IEC61850_DataAttributelD_Generic updateDAID = 0 ; 定義 一個DAID的結(jié)構(gòu)體變量(PIS-10標準結(jié)構(gòu)體)struct IEC61850_DataAttributeData updateDAData = 0 ; / 定義一個 數(shù)據(jù)屬性結(jié)構(gòu)體變量(PIS-10標準結(jié)構(gòu)體)Integer32 nInputValue = 0;IEC61850 mylEC61850Object = GetMyServerClient(); 獲取 IEC61850 對象/DAID結(jié)構(gòu)體設(shè)置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);/*數(shù)據(jù)屬性結(jié)構(gòu)體設(shè)置*/updateDAData.uiBitLength = sizeof(Integer32)* 8;updateDAData.ucType = IEC61850_DATATYPE_INT32;printf(請輸入要更新的值:);scanf(”d”,&nlnputValue);updateDAData.pvData = &nln putValue;更新DAID對應(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;三、運行和抓包為了方便運行這里寫了一個循環(huán)菜單,運行效果
17、如圖Q D : SysteBCorpdeBoezupleEproj ectTindoTs. . dllIEC61850_Exaaple_Serve.EC61850服務(wù)端例程由大璉云行握供采用SystemCORP公司的P1S-13實現(xiàn)卜=最近的執(zhí)行結(jié)果 F= = IEC61850 命巒菜單尸= 1程據(jù)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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度場營銷分公司智慧城市項目合作協(xié)議3篇
- 二零二五版商業(yè)街區(qū)場地租賃合作協(xié)議書6篇
- 2025年度高新技術(shù)產(chǎn)業(yè)常年法律顧問聘用協(xié)議3篇
- 二零二五年度企業(yè)稅收籌劃與稅收籌劃實施合同3篇
- 二零二五年度出口退稅證明開具及國際金融服務(wù)合同3篇
- 二零二五年度港口碼頭租賃及港口貨物裝卸、倉儲及配送服務(wù)協(xié)議8篇
- 二零二五年度土地承包經(jīng)營權(quán)糾紛調(diào)解合同-@-2
- 2025草原禁牧與水資源保護管理協(xié)議合同3篇
- 2025年度個人個人借款合同信用評估標準3篇
- 二零二五食用油產(chǎn)品包裝設(shè)計與印刷合同
- 中考模擬考試化學(xué)試卷與答案解析(共三套)
- 新人教版五年級小學(xué)數(shù)學(xué)全冊奧數(shù)(含答案)
- 風電場升壓站培訓(xùn)課件
- 收納盒注塑模具設(shè)計(論文-任務(wù)書-開題報告-圖紙)
- 博弈論全套課件
- CONSORT2010流程圖(FlowDiagram)【模板】文檔
- 腦電信號處理與特征提取
- 高中數(shù)學(xué)知識點全總結(jié)(電子版)
- GB/T 10322.7-2004鐵礦石粒度分布的篩分測定
- 2023新譯林版新教材高中英語必修一重點詞組歸納總結(jié)
- 蘇教版四年級數(shù)學(xué)下冊第3單元第2課時“常見的數(shù)量關(guān)系”教案
評論
0/150
提交評論