劉 兵
(華電章丘發(fā)電有限公司,山東 濟(jì)南 250216)
電力企業(yè)是一個(gè)分布式運(yùn)行的系統(tǒng),隨著各種電力自動(dòng)化系統(tǒng)和信息管理系統(tǒng)的迅速發(fā)展,如何最大限度利用各專業(yè)信息系統(tǒng)的信息孤島,形成完整統(tǒng)一、數(shù)據(jù)實(shí)時(shí)傳遞、信息充分共享的信息系統(tǒng)是電力系統(tǒng)的重要發(fā)展方向。
對于電力企業(yè)內(nèi)部EMS、SCADA、電廠DCS 等控制中心之間的實(shí)時(shí)數(shù)據(jù)交換與控制等通信行為,UCA 體系給出了相應(yīng)的模型規(guī)范ICCP。ICCP 的網(wǎng)絡(luò)適應(yīng)性很強(qiáng),既可用于專用網(wǎng)絡(luò)也可用于公共數(shù)據(jù)分組網(wǎng)絡(luò),還可用于具有冗余路由的網(wǎng)狀網(wǎng)絡(luò)。具體應(yīng)用可以有兩種方式:①使用包括MMS 映射的ICCP 的全部定義;②使用ICCP 的1個(gè)子集,即只使用ICCP 所定義的數(shù)據(jù)模型和服務(wù),在此基礎(chǔ)上建立特殊應(yīng)用。UCA2.0 網(wǎng)絡(luò)集成圖1 所示。公司網(wǎng)使用數(shù)據(jù)庫訪問集成服務(wù)(DAIS),提供跨多廠商關(guān)系數(shù)據(jù)庫的無縫鏈接。另外還使用了TASE2模型,專用于EMS 系統(tǒng)提供的計(jì)劃和計(jì)帳數(shù)據(jù)。公司局域網(wǎng)的底層協(xié)議使用TCP/IP 的類似7 層UCA 協(xié)議,可與OSI 協(xié)議共存。配電變電站和饋線網(wǎng)絡(luò)經(jīng)廣域網(wǎng)將SCADA 數(shù)據(jù)送回控制中心。

圖1 UCA 集成網(wǎng)絡(luò)
用戶接口的通信可能有多種結(jié)構(gòu)。實(shí)例應(yīng)用中包括讀表,電子計(jì)費(fèi),電能質(zhì)量監(jiān)視,故障檢測,遠(yuǎn)方連接/斷開,以及需方管理(DSM)。網(wǎng)絡(luò)的基礎(chǔ)結(jié)構(gòu)還能支持多種用戶服務(wù)。用戶接口的UCA 模型使用CASM 服務(wù),用于各種介質(zhì)的7 層或3 層子集。
KH-2000 電力配電自動(dòng)化主站系統(tǒng),是新推出的電力配電自動(dòng)化監(jiān)控系統(tǒng)(SCADA 系統(tǒng))硬件結(jié)構(gòu)如圖2 所示。

圖2 KH2000 硬件結(jié)構(gòu)
前置機(jī)收到數(shù)據(jù)通過UDPCOMM 和SOCKET 上傳過來,主控程序收到數(shù)據(jù)后刷新實(shí)時(shí)數(shù)據(jù)的內(nèi)存映射和各個(gè)數(shù)據(jù)庫。MMI 進(jìn)行實(shí)時(shí)數(shù)據(jù)曲線,歷史曲線,趨勢曲線的圖表顯示;錄波,告警,事項(xiàng)查詢等界面的顯示;以及遙控界面的顯示等。
前置機(jī)一方面是從串口中讀取RTU 上傳來的數(shù)據(jù),通過規(guī)約線程進(jìn)行數(shù)據(jù)分發(fā)到各個(gè)RTU 的內(nèi)存映射中,再由網(wǎng)絡(luò)發(fā)送線程UDPCOMM 和SOCKET 將數(shù)據(jù)發(fā)往后臺(tái)機(jī)MMI 進(jìn)行處理;另一方面規(guī)約線程通過串口進(jìn)行下發(fā)命令,包括具體規(guī)約規(guī)定的命令和由后臺(tái)機(jī)通SOCKET 下發(fā)給前置機(jī)的遙控命令。
本標(biāo)準(zhǔn)采用ISO-OSI 的增強(qiáng)性能結(jié)構(gòu)(EPA)模型,這種模型僅用三層(即物理層、鏈路層、應(yīng)用層)。
圖3 給出了遠(yuǎn)動(dòng)設(shè)備及系統(tǒng)傳輸規(guī)約參考模型的數(shù)據(jù)單元之間的關(guān)系:

圖3 通信前置系統(tǒng)的軟件數(shù)據(jù)流圖
把分層的思想通過程序模塊來實(shí)現(xiàn),通過一個(gè)線程來完成。如此各層之間保持同步。
引入命令隊(duì)列,各應(yīng)用功能的啟動(dòng)由命令隊(duì)列來整體協(xié)調(diào)。使得各應(yīng)用功能彼此是獨(dú)立的;引入答即所問的檢查機(jī)制,舍棄答非所問的命令。
在程序中仍然采用三層結(jié)構(gòu),物理層即為硬件設(shè)備(串口接收數(shù)據(jù)設(shè)備),現(xiàn)認(rèn)為已從串口接收到數(shù)據(jù),數(shù)據(jù)到達(dá)數(shù)據(jù)鏈路層解包后交給應(yīng)用層,應(yīng)用層負(fù)責(zé)各數(shù)據(jù)的分發(fā)。同時(shí)應(yīng)用層檢查命令隊(duì)列以啟動(dòng)下一個(gè)應(yīng)用功能,打包后交給數(shù)據(jù)鏈路層。數(shù)據(jù)鏈路層對數(shù)據(jù)再次封裝(把數(shù)據(jù)加上控制信息和校驗(yàn))后下發(fā)。
應(yīng)用層模塊:處理數(shù)據(jù)鏈路層解包后的數(shù)據(jù)分發(fā);檢查命令隊(duì)列(如非空,則從命令隊(duì)列中取出命令字組數(shù)據(jù)幀發(fā)給數(shù)據(jù)鏈路層,如空則添加默認(rèn)的輪詢?nèi)蝿?wù)),啟動(dòng)相應(yīng)的應(yīng)用功能;根據(jù)當(dāng)前接收到的報(bào)文幀啟動(dòng)規(guī)約規(guī)定的服務(wù)過程。
數(shù)據(jù)鏈路層:接收來至物理層的數(shù)據(jù);解規(guī)約送至應(yīng)用層;接收來至應(yīng)用層的數(shù)據(jù)幀,并對該幀進(jìn)行重新封裝后下發(fā);三次重發(fā)。
系統(tǒng)狀態(tài)轉(zhuǎn)換圖如圖4 所示。

圖4 狀態(tài)轉(zhuǎn)換圖
命令隊(duì)列:
1)FunctionQueue:應(yīng)用功能命令隊(duì)列(用于外分支)。
命令字來源:初始化,定時(shí)任務(wù),默認(rèn)輪詢(命令隊(duì)列空時(shí)),具體的實(shí)際情況(突發(fā)功能的啟動(dòng),如召喚一級數(shù)據(jù),快速校驗(yàn)過程,文件傳輸?shù)龋?/p>
2)CommandQueue:具體的應(yīng)用功能的命令隊(duì)列(用于內(nèi)分支)。
命令字來源:當(dāng)前應(yīng)用功能服務(wù)過程的添加;應(yīng)用功能啟動(dòng)時(shí)添加。
3)特殊情況:遙控操作。后臺(tái)機(jī)YK 命令字加到CommandQueue中,此時(shí)應(yīng)重新把當(dāng)前應(yīng)用功能壓回FuntionQueue,先執(zhí)行遙控操作。遙控執(zhí)行完后繼續(xù)執(zhí)行被打斷的應(yīng)用功能。
4)外分支:從應(yīng)用功能命令隊(duì)列中(FunctionQueue)讀取功能碼定出并啟動(dòng)當(dāng)前應(yīng)用功能(向應(yīng)用功能的命令隊(duì)列中添加具體的命令字)。置WorkFlag=_ AppCallData。


主要是把主站和子站的FCB 都清零準(zhǔn)備傳輸。分為主站初始化,子站初始化,子站被遠(yuǎn)方初始化。
非平衡方式:剛上電時(shí)由主站啟動(dòng)主站初始化,當(dāng)運(yùn)行期間子站掉電后啟動(dòng)子站初始化。
平衡方式下:主站被動(dòng)初始化。等待RTU 發(fā)出初始化的指令。
子站初始化的啟動(dòng):當(dāng)子站掉電時(shí)發(fā)生,在三次重發(fā)失敗后啟動(dòng)。
4.2.1 初始化后啟動(dòng)和定時(shí)任務(wù)啟動(dòng)。
4.2.2 過程描述:主站總召喚子站,子站回送確認(rèn),然后連續(xù)向主站傳輸16 組數(shù)據(jù)(RTU 端已事先準(zhǔn)備好的數(shù)據(jù)),主站接收完16 組數(shù)據(jù)后,再進(jìn)行漏幀檢查。判斷有哪一組數(shù)據(jù)沒有收到,然后去召喚這一組。召喚完畢后結(jié)束總召喚功能。
4.2.3 關(guān)鍵技術(shù)的處理:
1)啟動(dòng):直接向命令隊(duì)列中添加相應(yīng)的命令字即可。
2)總召喚延時(shí)處理:
總召喚在接收16 組數(shù)據(jù)時(shí),只是被動(dòng)的接收。
在LinkerTX 發(fā)送出總召喚請求幀后,便進(jìn)入延時(shí)階段,延時(shí)時(shí)間為估計(jì)16 組數(shù)據(jù)全部接收所需的時(shí)間,等待的條件為h_TASK_OVER事件有信號。h_TASK_OVER 是在Applayer 中收到最后一組數(shù)據(jù)時(shí)SetEvent(h_TASK_OVER)
即:WaitForSingleObject(pIEC->h_TASK_OVER,OverTime),若延時(shí)時(shí)間到或等到h_TASK_OVER,則SetEvent(pIEC->h_DELAY_OVER),說明總召喚結(jié)束了,下一步要進(jìn)行漏幀檢查。
3)對16 組數(shù)據(jù)接收到的標(biāo)志。int AllDataGroup[16]當(dāng)收到一組數(shù)據(jù)后使AllDataGroup[i]=1;漏幀檢查時(shí)若AllDataGroup[i]=0 則說明此組沒有接收到。
全部16 組數(shù)據(jù)全部收到后,結(jié)束總召喚,進(jìn)行時(shí)間同步。
系統(tǒng)設(shè)計(jì)完成后,經(jīng)過與RTUs 和主站系統(tǒng)的通信測試,實(shí)現(xiàn)了SCADA 基本數(shù)據(jù)(遙測、遙信)的采集和傳輸、網(wǎng)絡(luò)遙控操作、文件傳輸功能,特別是應(yīng)用“搜索組”概念后,能準(zhǔn)確進(jìn)行故障分段處理,取得了較好的應(yīng)用價(jià)值。
[1]吳永晨.電力系統(tǒng)自動(dòng)化技術(shù)應(yīng)用與發(fā)展[J].中國高新企業(yè),2010(6).
[2]陳中.電力系統(tǒng)緊急控制多代理信息系統(tǒng)中UCA2.0 應(yīng)用初探[J].電力系統(tǒng)保護(hù)與控制,2009(24).
[3]J carpentier·Optinal Power Flows·Electrical Power and Energy System·Vol.1 No1.Aprial,1997[Z].