王曉云
(安微省化工設(shè)計(jì)院,安微合肥230009)
DCS是分散控制系統(tǒng) (Distributed Control System)的簡(jiǎn)稱,國(guó)內(nèi)一般習(xí)慣稱為集散控制系統(tǒng)。它是一個(gè)由過(guò)程控制級(jí)和過(guò)程監(jiān)控級(jí)組成的以通信網(wǎng)絡(luò)為紐帶的多級(jí)計(jì)算機(jī)系統(tǒng),綜合了計(jì)算機(jī) (Computer)、通訊 (Communication)、顯示(CRT)和控制(Control)等4C技術(shù),其基本思想是分散控制、集中操作、分級(jí)管理、配置靈活、組態(tài)方便。工業(yè)爐控制系統(tǒng)涉及溫度、轉(zhuǎn)速、壓力、流量等多點(diǎn)多類型物理量控制,因此非常適合DCS的應(yīng)用。
RS485總線由于其組網(wǎng)方便、非常適用于工程集散控制系統(tǒng)的應(yīng)用。RS-485采用平衡發(fā)送和差分接收方式實(shí)現(xiàn)通信:發(fā)送端將串行口的TTL電平信號(hào)轉(zhuǎn)換成差分信號(hào) A、B兩路輸出,經(jīng)過(guò)線纜傳輸之后在接收端將差分信號(hào)還原成TTL電平信號(hào)。由于傳輸線通常使用雙絞線,又是差分傳輸,所以有極強(qiáng)的抗共模干擾的能力,總線收發(fā)器靈敏度很高,可以檢測(cè)到低至200 mV電壓。故傳輸信號(hào)在千米之外都是可以恢復(fù)。RS-485最大的通信距離約為1 219 m,最大傳輸速率為10 Mb/s,傳輸速率與傳輸距離成反比,在100 kb/s的傳輸速率下,才可以達(dá)到最大的通信距離,如果需傳輸更長(zhǎng)的距離,需加485中繼器。RS-485采用半雙工工作方式,支持多點(diǎn)數(shù)據(jù)通信。本系統(tǒng)就是基于RS485總線構(gòu)建的工業(yè)窯爐集散控制系統(tǒng)。
控制系統(tǒng)硬件部分主要由工控機(jī)、溫控儀、I/O模塊、485電纜、變頻器、電機(jī)、窯爐體等構(gòu)成。
工控機(jī)為普通工業(yè)控制計(jì)算機(jī),適用于工業(yè)現(xiàn)場(chǎng)較惡劣場(chǎng)合。主要功能采集現(xiàn)場(chǎng)數(shù)據(jù)、數(shù)據(jù)庫(kù)記錄、監(jiān)控及參數(shù)設(shè)定功能。
導(dǎo)電SR94溫度控制器,帶RS485通訊功能,與上位工控機(jī)進(jìn)行實(shí)時(shí)數(shù)據(jù)交互。
帶有RS485通訊功能I/O模塊用于采集和設(shè)定現(xiàn)場(chǎng)I/O數(shù)據(jù),包括數(shù)字量和模擬量信號(hào)。
變頻器通過(guò)RS485口發(fā)送和接受電機(jī)轉(zhuǎn)速信息。
ROSEMOUNT 3411P型溫度變送器,用于檢測(cè)爐膛實(shí)際溫度。
西門(mén)子SITRANSP系列壓力變送器,檢測(cè)爐膛壓力。
E+H TMASS 65系列熱式質(zhì)量流量計(jì),用于測(cè)量氣體流量。
RS485/RS232轉(zhuǎn)換模塊,由于采用的工控機(jī)只有RS232接口,因此系統(tǒng)必須具有此轉(zhuǎn)換裝置。
圖1為常用工業(yè)窯爐DCS控制系統(tǒng)框圖。上位工控機(jī)通過(guò)485總線與下位控制儀表或模塊連接,工控機(jī)通過(guò)485總線讀取下位儀表參數(shù)狀態(tài)并在監(jiān)控軟件中實(shí)時(shí)顯示、分析和記錄。另外,工控機(jī)還發(fā)送相應(yīng)控制信號(hào),下位機(jī)接受到指令進(jìn)行運(yùn)算處理,然后發(fā)出相應(yīng)的信號(hào)控制現(xiàn)場(chǎng)被控對(duì)象,使其處于期望的狀態(tài)。
圖1 工業(yè)爐DCS控制系統(tǒng)示意框圖
軟件是數(shù)字控制系統(tǒng)的靈魂,其設(shè)計(jì)的優(yōu)劣直接影響整個(gè)控制系統(tǒng)的性能。本系統(tǒng)采用VB.NET作為工具來(lái)開(kāi)發(fā)監(jiān)控軟件。VB.NET是微軟新推出具有完全面向?qū)ο蠊δ艿腣B最新版本,用來(lái)開(kāi)發(fā)運(yùn)行于.NET框架環(huán)境下的應(yīng)用程序,具有很好的移植性。.NET程序?qū)\(yùn)行環(huán)境是沒(méi)有特別的要求的,只要安裝了.Net framework,它就能在上面運(yùn)行(不管是Windows系統(tǒng),還是Linux系統(tǒng),甚至是Window CE嵌入式系統(tǒng))。微軟的.NET和Sun公司的JAVA基本上類似,都是需要平臺(tái)支持的,Java需要虛擬機(jī),.NET程序需要.net framework。其編程思想實(shí)現(xiàn)了從過(guò)程式到面向?qū)ο蟮目缭?,支持多線程應(yīng)用程序開(kāi)發(fā)。
面向?qū)ο蟮某绦蛟O(shè)計(jì)是軟件系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)的重要方法,可以通過(guò)增加軟件的可擴(kuò)展性和可重用性,來(lái)控制軟件開(kāi)發(fā)和維護(hù)的復(fù)雜性與開(kāi)銷。
為了體現(xiàn)面向?qū)ο笏枷耄浖垂δ芊庋b為如下幾大類和模塊,模塊功能框圖如圖2。
(1)主界面類模塊(ClassUI);
(2)溫度控制儀表類(ClassTC),其主要負(fù)責(zé)讀取下位儀表儀數(shù)據(jù)并送至UI模塊顯示;
(3)串口通訊類(ClassSerailPortComm),運(yùn)用多態(tài)性實(shí)現(xiàn)不同類型通訊儀表的統(tǒng)一接口,該類應(yīng)具有后期綁定動(dòng)態(tài)聯(lián)接特性。負(fù)責(zé)串口通訊;
(4)按鈕類(ClassButton),可以繼承標(biāo)準(zhǔn)按鈕控件或自定義控件用來(lái)響應(yīng)按鈕事件;
(5)報(bào)警燈類(ClassA larm Lamp)實(shí)時(shí)獲取和顯示報(bào)警狀態(tài);
(6)變頻器類(ClassFC),讀取和設(shè)定網(wǎng)帶速度;
(7)用戶信息類(ClassUserInfo),該類為可串行化類,用于保存用戶信息;
(8)數(shù)據(jù)記錄類模塊(ClassDataSetRecord),其主要負(fù)責(zé)記錄數(shù)據(jù)到數(shù)據(jù)庫(kù);
(9)曲線記錄類模塊(ClassTermCurve),溫度曲線的顯示保存;
(10)應(yīng)用程序配置類模塊(ClassMyAppConfigure),為可串行化類;
(11)參數(shù)設(shè)置類模塊(ClassTechnicsConfigure),負(fù)責(zé)工藝參數(shù)的設(shè)置與保存。
(12)網(wǎng)絡(luò)通訊模塊類(ClassNetComm),負(fù)責(zé)與外部網(wǎng)絡(luò)或設(shè)備進(jìn)行網(wǎng)絡(luò)通訊。
(13)配置程序,用來(lái)修改配置文件。
圖3 軟件總體功能框圖
上述各類和模塊相互之間通過(guò)子類化、類的合成以及接口調(diào)用等方法進(jìn)行通訊,將各個(gè)獨(dú)立模塊有機(jī)結(jié)合起來(lái)協(xié)調(diào)工作,實(shí)現(xiàn)系統(tǒng)所需功能。
多線程允許CPU同時(shí)獨(dú)立執(zhí)行多個(gè)任務(wù),因而提高了資源的利用率以及應(yīng)用程序的性能和靈敏度。自由線程提供非同步處理機(jī)制可以在不影響其他應(yīng)用程序部分的前提下新建一個(gè)線程來(lái)進(jìn)行一些長(zhǎng)時(shí)間的任務(wù)、復(fù)雜的查詢請(qǐng)求或者多塊同步計(jì)算。
.NET框架中包含的System.Threading命名空間專門(mén)負(fù)責(zé)實(shí)現(xiàn)多線程功能,而且操作相當(dāng)簡(jiǎn)單,只需要利用該命名空間中的Thread類,就具有了實(shí)現(xiàn)自由線程的屬性和方法。按照本系統(tǒng)軟件的功能要求,將程序劃分為如下幾個(gè)線程:
(1)主線程,為UI線程,負(fù)責(zé)處理消息響應(yīng),界面刷新。操控其他后臺(tái)自由線程;
(2)通訊線程,主要負(fù)責(zé)工控機(jī)與下位智能儀表的數(shù)據(jù)通訊;
(3)數(shù)據(jù)記錄線程,主要負(fù)責(zé)數(shù)據(jù)庫(kù)連接和數(shù)據(jù)記錄;
(4)網(wǎng)絡(luò)通訊線程,與外部設(shè)備及網(wǎng)絡(luò)進(jìn)行通訊。
由于軟件采用面向?qū)ο蠛投嗑€程思想實(shí)現(xiàn),因此程序運(yùn)行效率較高、升級(jí)維護(hù)非常方便。例如:增加或減少溫區(qū)數(shù),只需增減溫控儀類實(shí)例數(shù)即可;如更換相關(guān)器件,將相應(yīng)類模塊更改即可,由于面向?qū)ο蠓庋b的特性,不會(huì)影響到程序其他部分的正常功能;對(duì)于需要更改同類型的功能更多的儀表,只需通過(guò)繼承一個(gè)新類,加入少量針對(duì)新增功能的代碼就可以實(shí)現(xiàn),充分體現(xiàn)面向?qū)ο笏枷胫写a的重用性。
由于基于485串行總線,本系統(tǒng)硬件搭建便捷,通過(guò)很少的通訊線路即可組建DCS控制網(wǎng)絡(luò)。監(jiān)控軟件采用VB.NET實(shí)現(xiàn),運(yùn)用面向?qū)ο笏枷胍约岸嗑€程技術(shù),系統(tǒng)響應(yīng)快、效率高、后期維護(hù)升級(jí)非常方便。該系統(tǒng)已經(jīng)成功應(yīng)用于多種控制系統(tǒng)設(shè)備,實(shí)際運(yùn)行效果較好。
[1](美)Katsuhiko Ogata.現(xiàn)代控制工程[M].北京:電子工業(yè)出版社,2000.
[2]唐樹(shù)才等.VB.NET程序設(shè)計(jì)與應(yīng)用[M].北京:電子工業(yè)出版社,2002
[3]張燕紅.計(jì)算機(jī)控制技術(shù)[M].南京:東南大學(xué)出版社.2008.