袁泉,劉小勇,施仁
(西安交通大學(xué)自動控制系,陜西西安710049)
。壅∫荨♂槍﹄娏ΡO(jiān)控系統(tǒng)底層通信數(shù)據(jù)量大、實時性要求高的特點,進行了兩方面的改進。在軟件結(jié)構(gòu)上,提出了將數(shù)據(jù)通信軟件與監(jiān)控軟件分離的方法;在硬件上,使用多路雙口RAM智能通信卡擴展通信端口,提高底層通信的速度。這些措施有效地減輕了監(jiān)控軟件的數(shù)據(jù)處理負擔(dān),確保了現(xiàn)場儀表與監(jiān)控計算機之間準(zhǔn)確快速的數(shù)據(jù)通信,保證了整個系統(tǒng)的安全高效運行。
。坳P(guān)鍵詞] 電力系統(tǒng);串行通信;多線程;智能通信卡
1 引 言
電力系統(tǒng)中,現(xiàn)場數(shù)據(jù)不但包括功率、電壓、電流等測量數(shù)據(jù),還包括分合閘、過流、速斷等操作及事故所產(chǎn)生的事件數(shù)據(jù)。當(dāng)發(fā)生事故而導(dǎo)致跳閘時,還要記錄現(xiàn)場的故障錄波數(shù)據(jù),可見,需要通信的數(shù)據(jù)量是一般工業(yè)控制中所無法比擬的。由于電力系統(tǒng)現(xiàn)場數(shù)據(jù)的變化非?欤淮芜^流可能只維持十幾毫秒,數(shù)據(jù)稍縱即逝,所以對數(shù)據(jù)的實時性、通信速度的要求是非常高的。
監(jiān)控系統(tǒng)底層數(shù)據(jù)可靠、高效的通信是系統(tǒng)可靠性的關(guān)鍵,是設(shè)計監(jiān)控軟件的重點。一些現(xiàn)有的軟件,將數(shù)據(jù)通信、處理和監(jiān)控都做在一個軟件中,雖然顯得直觀緊湊,但系統(tǒng)的升級改進卻十分不便,一個微小的改動都要對全部系統(tǒng)進行重新整理,因此,采取模塊化結(jié)構(gòu)是比較好的一種選擇。
筆者在一個大型電力監(jiān)控系統(tǒng)設(shè)計中,硬件上采用通信站和監(jiān)控站分開的獨立方式,軟件上將底層通信軟件從監(jiān)控軟件中分離出去,在通信站中獨立工作,通信站專門負責(zé)底層現(xiàn)場實時數(shù)據(jù)的采集,并和上層監(jiān)控站進行雙向數(shù)據(jù)通信。由于通信站的獨立,使上層監(jiān)控站的任務(wù)大大減輕,不但提高了底層的通信速率,還加快了監(jiān)控界面的數(shù)據(jù)刷新速度。如果下層儀表數(shù)量很多,可以在通信站上采用多路雙口RAM智能通信卡,并擴充為多個串口,進一步提高底層通信速度。
2 系統(tǒng)結(jié)構(gòu)
圖2-1給出了一種典型的系統(tǒng)結(jié)構(gòu),這種結(jié)構(gòu)綜合了以上討論的特點。其中,兩個通信站組成雙機冗余熱備,保證系統(tǒng)的安全運行,現(xiàn)場儀表的數(shù)據(jù)通過RS-485/422串口傳送給通信站,通信程序讀取串口的數(shù)據(jù),解析后一方面將數(shù)據(jù)存入數(shù)據(jù)庫,作為歷史數(shù)據(jù)加以保存,另一方面通過TCP/IP協(xié)議,將數(shù)據(jù)打包后傳遞給上位機,在監(jiān)控軟件中進行運接送上以太網(wǎng),也利于遠程監(jiān)測和故障診斷。
由于通信站和監(jiān)控站是分離的,只要都支持TCP/IP通信協(xié)議,編寫監(jiān)控系統(tǒng)的工具語言不需要與通信站相同,這樣就給用戶提供了靈活的平臺選擇,可以利用一些圖像功能強大而硬件功能相對弱的組態(tài)軟件編寫監(jiān)控軟件,以提供直觀漂亮的操作畫面。
對于一些特殊的下層儀表,如果通信協(xié)議不同,只需在通信軟件中改變相應(yīng)的協(xié)議即可,不需要對監(jiān)控軟件作出任何修改。用這種方法,可以非常靈活的兼容各種不同通信協(xié)議的儀表。這樣,系統(tǒng)的升級和擴展就會相當(dāng)方便。
3 提高通信速度的措施
3.1 硬件措施
通信站與上層監(jiān)控站間的通信是通過以太網(wǎng)傳輸?shù),通信速度快,實時性很好。而現(xiàn)場儀表與通信站之間是通過串口讀寫數(shù)據(jù)的,在儀表傳輸速率與傳輸數(shù)據(jù)量一定的條件下,當(dāng)現(xiàn)場儀表的數(shù)量多到一定程度,由于總數(shù)據(jù)量過大而造成通信時間過長,可能會成為限制實時性的瓶頸,為了解決這個問題,硬件上可以采取以下的改進。
3.1.1 多串口數(shù)據(jù)通信
串行通信具有連接簡單、使用靈活方便、數(shù)據(jù)傳遞可靠等優(yōu)點,在數(shù)據(jù)采集和實時控制系統(tǒng)中得到了廣泛應(yīng)用。
一般情況下,多臺下層儀表連在一條通信總線上,通信站通過其一個串口連接一條通信總線,從而實現(xiàn)通信站與儀表的串行通信。這時,通信站對全部下層儀表作一次數(shù)據(jù)通信的時間等于通信站與每個儀表的通信時間之和。
在電力系統(tǒng)中,隨著系統(tǒng)規(guī)模的增大,下層儀表數(shù)目增多,掃描周期將相應(yīng)增大,從而使操作員難以及時掌握現(xiàn)場的運行狀況,系統(tǒng)安全性得不到保證。由此可以看出,上下層通信速度極大的影響著整個系統(tǒng)的實時性,制約電力監(jiān)控系統(tǒng)的規(guī)模及發(fā)展。
為解決這個問題,可將一個串行通信過程分成多個串行通信過程,以提高工作效率。如圖3-1所示,硬件上通過使用多串口通信卡,軟件上對各個串口同時掃描,實現(xiàn)多串口通信的并行工作方式。
這時下層儀表分別連在多條通信總線上,因為Windows操作系統(tǒng)支持多任務(wù)管理,計算機可同時對多個串口進行讀寫。假定有100臺儀表,使用5個串口通信所需要的時間是用1個串口所需時間的1/5,這樣就使通信速度大大提高。
3.1.2 多串口智能通信卡
智能通信卡是一種具有微處理器和雙口RAM的高速通信接口板,可插在計算機的I/O擴展槽內(nèi)使用,其主要作用是減輕計算機CPU處理通信任務(wù)的工作量,有助于提高系統(tǒng)數(shù)據(jù)刷新速度。
在使用多串口智能通信卡后,系統(tǒng)程序下發(fā)給儀表的命令可通過寫硬件端口的方式存儲在智能通信卡的RAM中,由通信卡利用自帶的CPU,通過串行通信向儀表發(fā)送;另一方面通信卡利用自帶的CPU接收儀表返回的數(shù)據(jù),存儲在其RAM中,系統(tǒng)程序通過讀硬件端口的方式獲得通信卡中的信息。
由此原本計算機與儀表之間繁重的串行通信工作,改由智能通信卡完成。這樣計算機CPU的工作量大大減輕,與底層儀表的通信速度會大大加快。
3.2 軟件的優(yōu)化
現(xiàn)在計算機的運行速度大大超過底層數(shù)據(jù)的硬件傳輸速度,如果簡單的進行一發(fā)一收式的順序讀寫控制,計算機大部分時間都會處于等待數(shù)據(jù)的狀態(tài),浪費了大部分的計算機資源。
在Windows環(huán)境下,微軟基類庫(MFC)提供了對多線程的支持。在軟件中可以使用多線程技術(shù),每一個串口的讀寫對應(yīng)一個線程,和上層程序的通信也用一個獨立的線程,這樣,上層程序?qū)x表的操作可以快速的顯現(xiàn)出來。從宏觀的角度上看,程序同時在對多個任務(wù)進行操作,CPU的運行速度得到了最大限度的發(fā)揮,充分的利用了計算機資源。
實踐證明,采用多線程技術(shù),從軟件著手充分利用計算機CPU的速度優(yōu)勢,加快整個控制系統(tǒng)的上下層通信速度,非常有助于提高整個系統(tǒng)的實時性。
4 結(jié)束語
該文的方法在工程項目中采用后,不僅有效的提高了數(shù)據(jù)的通信速度,而且由于軟件的模塊化結(jié)構(gòu),下層通信程序的獨立性,可以自由適應(yīng)于不同的系統(tǒng)規(guī)模和各種類型的儀表,面對不同的需求,上層的監(jiān)控程序不需要改動,只要將下層通信程序的通信協(xié)議改為對應(yīng)儀表的即可。此方法不僅適用于電力系統(tǒng)監(jiān)控,而且對其它大型工業(yè)測控系統(tǒng)具有廣泛的應(yīng)用價值。
[參考文獻]
[1] C.D.Maciel,C.M.Ritter.TCP-IP Networking in ProcessControl Plants[J].Computers and Industrial Engineering.1998,35(3-4):611-614.
[2] 賈宏宇,施仁.大型通用工控軟件設(shè)計研究[J].信息與控制.2001,30(1):30-35