摘 要:本文介紹了DCS現場(chǎng)控制站的功能,探討了現場(chǎng)控制站中操作系統的選取原則,分析了實(shí)時(shí)操作系統QNX的特點(diǎn),設計了基于QNX的現場(chǎng)控制站軟件,并應用于分散控制系統魯能2000中。
關(guān)鍵詞:DCS 現場(chǎng)控制站 QNX 實(shí)時(shí)性
引言 分散控制系統(Distributed Control System,簡(jiǎn)稱(chēng)DCS)是過(guò)程控制技術(shù)發(fā)展歷史上的一個(gè)重要里程碑,是控制技術(shù)、計算機技術(shù)、網(wǎng)絡(luò )通信技術(shù)和CRT顯示技術(shù)共同發(fā)展的產(chǎn)物。今天,分散控制系統技術(shù)已經(jīng)比較成熟,并且廣泛的應用于各種生產(chǎn)過(guò)程中,同時(shí)還在不斷推陳出新,迅速發(fā)展。
現場(chǎng)控制站作為分散控制系統中的重要組成部分,其軟件的設計和開(kāi)發(fā)在整個(gè)DCS開(kāi)發(fā)中處于核心地位,它的可靠性和高效性對整個(gè)分散控制系統的可靠性和性能有著(zhù)至關(guān)重要的影響。
1 DCS現場(chǎng)控制站的作用 分散控制系統一般由工程師站、操作員站、歷史站、現場(chǎng)控制站,以及連接這些站點(diǎn)的通信網(wǎng)絡(luò )組成。工程師站主要完成對DCS進(jìn)行離線(xiàn)的配置、組態(tài)工作和在線(xiàn)的系統監督、控制以及維護的任務(wù)。操作員站是DCS中處理一切有關(guān)人機界面(HMI,Human Machine Interface)功能的網(wǎng)絡(luò )節點(diǎn),主要功能是為系統的運行操作人員提供人機界面,使操作員可以通過(guò)操作員站及時(shí)了解現場(chǎng)運行狀態(tài)、各種運行參數的當前值、是否有異常情況發(fā)生等,并可通過(guò)輸入設備對工藝過(guò)程進(jìn)行控制和調節,保證生產(chǎn)過(guò)程的安全、可靠、高效、高質(zhì)。歷史站主要負責采集和儲存生產(chǎn)過(guò)程控制的歷史數據,以供形成運行報表和歷史趨勢曲線(xiàn)。
來(lái)源:http://tede.cn 現場(chǎng)控制站是完成對現場(chǎng)I/O處理并實(shí)現直接數字控制(DDC)的網(wǎng)絡(luò )節點(diǎn),主要功能有三個(gè):
1)將各種現場(chǎng)發(fā)生的過(guò)程量(流量、壓力、液位、溫度、電流、電壓、功率以及各種狀態(tài)等)進(jìn)行數字化,并將這些數字化后的量存在存儲器中,形成一個(gè)與現場(chǎng)過(guò)程量相一致的,能一一對應的、并按實(shí)際運行情況實(shí)時(shí)地改變和更新現場(chǎng)過(guò)程量的實(shí)時(shí)映像;
2)將本站采集到的實(shí)時(shí)數據通過(guò)網(wǎng)絡(luò )發(fā)送到操作員站、工程師站以及其他現場(chǎng)I/O控制站,以便實(shí)現全系統的監督和控制,同時(shí)現場(chǎng)I/O控制站還可以接受由操作員站、工程師站下發(fā)的命令,以實(shí)現對被控對象的人工控制或對本站的參數設定;
3)在本站實(shí)現局部自動(dòng)控制、回路的計算及閉環(huán)控制、順序控制等。
2 現場(chǎng)控制站操作系統的選取原則
基于可靠性和成本的考慮,現場(chǎng)控制站一般都采用專(zhuān)用的硬件,而且系統資源有一定限制,這就要求在操作系統的選擇上需要考慮以下幾個(gè)方面的問(wèn)題:
1) 可靠性
工業(yè)控制應用中,對于可靠性的要求非常高,所以現場(chǎng)控制站的操作系統必須具有穩定的內核,而且內核的功能應該相對單一。具有復雜內核的操作系統由于集成了太多的功能,有可能造成各種問(wèn)題或影響系統的性能,應當盡量避免采用。為了保證可靠性,現場(chǎng)控制站的操作系統應采用分布式操作系統,必須對網(wǎng)絡(luò )具有良好的支持。
來(lái)源:http://tede.cn 2) 實(shí)時(shí)性
多數控制系統都對實(shí)時(shí)性有著(zhù)一定的要求,實(shí)時(shí)性的好壞,直接影響到控制品質(zhì)的優(yōu)劣,甚至關(guān)系到生產(chǎn)的安全。針對這種情況,現場(chǎng)控制站選用的操作系統必須是實(shí)時(shí)多任務(wù)操作系統。目前國外許多軟件公司開(kāi)發(fā)了商業(yè)化的實(shí)時(shí)操作系統,在工業(yè)控制、航天、電信等許多領(lǐng)域得到了廣泛的應用。這些操作系統針對實(shí)時(shí)應用做了優(yōu)化,實(shí)時(shí)性?xún)?yōu)于目前廣泛使用的多任務(wù)操作系統UNIX和LINUX,也提供了很好的技術(shù)支持,比較典型的有Wind River System的VxWorks,Integrated System的pSOSSystem,QNX SOFTWARE SYSTEMS LTD的 QNX等。
3) 對嵌入式開(kāi)發(fā)的支持
應用于工業(yè)控制的計算機,結構上通常具有專(zhuān)用性,而且受成本限制,一般都不配備大容量的內存儲器和外存儲器,系統資源有限。嵌入式系統由于具有模塊化,可根據不同需要靈活配置,占用資源少的特征,特別適合用作現場(chǎng)控制站的操作系統。通過(guò)按照自己的需要對操作系統進(jìn)行裁減,能最大限度的利用有限的硬件資源,避免由于開(kāi)啟了過(guò)多的不必要的服務(wù)而降低系統的可用資源,對系統的穩定性造成影響。
3 QNX操作系統的特點(diǎn)
根據以上原則,我們在現場(chǎng)控制站的開(kāi)發(fā)中使用了加拿大QSSL公司的分布式實(shí)時(shí)嵌入式操作系統QNX。QNX是一種運行在INTEL x86兼容處理器和一些RISC處理器(例如POWER PC ,MIPS)上的操作系統,具有內核精簡(jiǎn),分布式,提供強大的網(wǎng)絡(luò )支持,實(shí)時(shí)性好的特性,是現場(chǎng)控制站理想的軟件平臺。
來(lái)源:http://www.tede.cn 3.1 實(shí)時(shí)性:
QNX操作系統對實(shí)時(shí)應用是理想的,它提供一個(gè)實(shí)時(shí)系統所需要的一切基本要素:多任務(wù)、由優(yōu)先級驅動(dòng)的急者優(yōu)先式調度方式和快速上下文切換。
為了保證系統的實(shí)時(shí)性,QNX在任務(wù)調度上采用了優(yōu)先級搶占調度算法,而且用戶(hù)能夠設定和改變進(jìn)程的優(yōu)先級,根據實(shí)際應用的需要,選擇進(jìn)程調度算法。QNX系統中,進(jìn)程的優(yōu)先級大小為1(最低)到31(最高),調度程序在選擇下一個(gè)運行進(jìn)程時(shí),將檢查每個(gè)處于就緒狀態(tài)的進(jìn)程的優(yōu)先級,具有高優(yōu)先級的進(jìn)程將首先被執行。這種優(yōu)先級搶占的調度方法,保證在任何時(shí)刻都是優(yōu)先級最高的任務(wù)占用CPU時(shí)間。優(yōu)先級最高的任務(wù)可以中斷當前運行的任務(wù)(即使當前任務(wù)本身也是中斷任務(wù)),搶占CPU,這種方法適用于工業(yè)實(shí)時(shí)性要求高的場(chǎng)合。
在基本調度算法的基礎上,對于當兩個(gè)或更多個(gè)具有同樣優(yōu)先級的進(jìn)程同時(shí)處于就緒態(tài),并且都是當前就緒隊伍中優(yōu)先級最高的任務(wù)時(shí),QNX提供了三種調度方法來(lái)解決這個(gè)問(wèn)題:
1) 先入先出調度法:先進(jìn)入任務(wù)隊列的進(jìn)程被選擇運行,直到它自動(dòng)放棄運行或者被一個(gè)級別更高的進(jìn)程打斷運行。
2) 循環(huán)式調度法:先進(jìn)入任務(wù)隊列的進(jìn)程被選擇運行,直到它自動(dòng)放棄運行或者被一個(gè)級別更高的進(jìn)程打斷運行或者它用完了自己的時(shí)間片。一個(gè)時(shí)間片是50ms,是系統分配給每個(gè)進(jìn)程用于運行的時(shí)間單位。
來(lái)源:http://tede.cn
3) 適應式調度法:在這種調度法中,一個(gè)進(jìn)程的優(yōu)先級會(huì )在運行中發(fā)生變化:如果該進(jìn)程用完了自己的時(shí)間片仍未被阻塞,進(jìn)程的優(yōu)先級將被減1,稱(chēng)為優(yōu)先級衰退,系統中一個(gè)進(jìn)程只能降低一次優(yōu)先級。如果該進(jìn)程被阻塞,則將立即恢復為原來(lái)的優(yōu)先級。
QNX系統提供的適應式調度法為計算密集型的進(jìn)程提供對CPU更有效的利用,同時(shí)還保持了對其他進(jìn)程的快速響應能力。不過(guò)在系統設計中應注意同優(yōu)先級的任務(wù)數量不宜太多,因為這樣終歸會(huì )影響系統的實(shí)時(shí)響應時(shí)間。
3.2 分布性:
QNX是一個(gè)完全的分布式系統,可以運行在多臺計算機組成的局域網(wǎng)上。在QNX系統中,任何一臺計算機上的任何一個(gè)進(jìn)程可以與其他計算機上的任何進(jìn)程通信,像與本機進(jìn)程一樣;任何一臺計算機上的任何一個(gè)進(jìn)程可以使用在局域網(wǎng)上的其它計算機上的資源,像使用本計算機上的資源一樣。借助網(wǎng)絡(luò ),QNX可以將任務(wù)分散到網(wǎng)絡(luò )中,由多臺計算機協(xié)同完成一個(gè)任務(wù)。利用QNX分布式操作系統的特性,可以建立很高的可用機制——將同一個(gè)任務(wù)安排到兩臺不同的計算機上去執行,只要兩臺計算機不同時(shí)發(fā)生故障,任務(wù)總是可以順利完成。利用這個(gè)特性,可以建立互為熱備份的雙機冗余控制系統,在兩臺計算機上同時(shí)運行完全相同的兩套程序,并且通過(guò)QNX系統獨特的FLEET網(wǎng)進(jìn)行數據的交換,同時(shí)對控制網(wǎng)絡(luò )進(jìn)行了冗余配置,可以實(shí)現高冗余度和相對低廉的成本的控制系統。
3.3 微內核:
QNX是一個(gè)微內核實(shí)時(shí)操作系統,其核心僅提供4種服務(wù):進(jìn)程調度、進(jìn)程間通信、底層網(wǎng)絡(luò )通信和中斷處理,其進(jìn)程在獨立的地址空間運行。所有其它操作系統服務(wù),都實(shí)現為協(xié)作的用戶(hù)進(jìn)程,因此QNX核心非常小巧(QNX4.x大約為12Kb)而且運行速度極快。這一特性使QNX特別適合于嵌入式開(kāi)發(fā),通過(guò)對操作系統進(jìn)行剪裁,只在目標機上建立所需要的系統,可以大大節約系統資源,而且使系統維護起來(lái)非常容易,一旦發(fā)生故障,可以及時(shí)修復。
請登陸:輸配電設備網(wǎng) 瀏覽更多信息
4 軟件組成 在實(shí)時(shí)控制軟件的設計中,我們采用了QNX系統作為開(kāi)發(fā)平臺,使用C語(yǔ)言進(jìn)行實(shí)時(shí)控制軟件的設計。為了完成現場(chǎng)控制站的功能,采用多進(jìn)程協(xié)同進(jìn)行工作,各進(jìn)程之間通過(guò)QNX系統提供的信號燈實(shí)現同步,通過(guò)共享內存交換數據。每一個(gè)進(jìn)程都具有自己的優(yōu)先級和調度算法,以保證系統響應的實(shí)時(shí)性。軟件的主要設計思路如下:
1) 采用單獨的進(jìn)程進(jìn)行控制運算。運算進(jìn)程根據組態(tài)時(shí)生成的控制算法進(jìn)行計算,完成閉環(huán)控制,順序控制等功能。運算進(jìn)程具有比較高的優(yōu)先級,這樣就保證即使在系統負擔比較中的情況下,也能很好的完成控制運算的功能,保證控制的實(shí)時(shí)性。
2) 對I/O卡件的訪(fǎng)問(wèn),特別是數字量輸入/輸出卡件的訪(fǎng)問(wèn)需要很快的采樣周期,為了保證對卡件的訪(fǎng)問(wèn)速度,我們將讀寫(xiě)I/O卡件的進(jìn)程獨立出來(lái),這樣可以確保過(guò)程控制的數據采集的實(shí)時(shí)性,同時(shí)可以將控制運算的結果迅速的輸出到卡件。
3) 采用基于TCP/IP的socket編程,建立處理操作員、工程師命令的進(jìn)程,處理操作員和工程師下發(fā)的命令,實(shí)現人工對運行過(guò)程的干預。采用udp協(xié)議以廣播的方式進(jìn)行對實(shí)時(shí)數據的發(fā)送,同時(shí)為了減輕網(wǎng)絡(luò )負擔,使用了數據壓縮和例外報告技術(shù),以對控制網(wǎng)絡(luò )上的數據流量進(jìn)行控制,保證數據在網(wǎng)絡(luò )上的實(shí)時(shí)傳輸。
來(lái)源:http://tede.cn 4) 數據備份進(jìn)程負責監視主從站狀態(tài),在主站發(fā)生故障的時(shí)候,及時(shí)進(jìn)行主從站切換,保證系統不停機。同時(shí)此進(jìn)程還進(jìn)行主從站數據備份操作,將主站數據備份到從站上,保證切換的時(shí)候不產(chǎn)生任何擾動(dòng)。
5 結束語(yǔ)
基于QNX系統的實(shí)時(shí)控制軟件具有很高可靠性和良好的實(shí)時(shí)性,同時(shí)由于采用了C語(yǔ)言進(jìn)行開(kāi)發(fā),可移植性非常好,可以非常容易的適應不同的硬件。QNX平臺可以在相對低的硬件配置上很好的運行,可以大大降低硬件投入。目前這套實(shí)時(shí)控制軟件已經(jīng)在魯能2000分散控制系統現場(chǎng)控制站中得到應用。魯能2000分散控制系統已經(jīng)于2001年11月通過(guò)專(zhuān)家驗收,目前已經(jīng)應用于火電廠(chǎng)控制系統,取得了良好的效果。