<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設計應用 > DCS系統控制組態(tài)仿真軟件的設計和實(shí)現

DCS系統控制組態(tài)仿真軟件的設計和實(shí)現

作者: 時(shí)間:2011-09-01 來(lái)源:網(wǎng)絡(luò ) 收藏

1 引言

  集散控制系統(dcs)是應用計算機技術(shù)對生產(chǎn)過(guò)程進(jìn)行集中監視、操作、管理而對現場(chǎng)裝置的控制分散的基本控制技術(shù)。集散控制系統的重要組成部分是軟件。傳統的工業(yè)控制軟件重復使用率低開(kāi)發(fā)周期長(cháng),很難滿(mǎn)足工業(yè)自動(dòng)化的要求。工業(yè)自動(dòng)化軟件的出現為解決實(shí)際工程中的問(wèn)題提供了一種新的方法,它能夠使用戶(hù)根據自己的控制對象和控制目的任意,使自動(dòng)化工程人員能夠面向問(wèn)題的設計。

  控制組態(tài)要比傳統作出改進(jìn),使其不僅僅可以供控制人員進(jìn)行一些控制的組態(tài)構建,還可以提供給操作人員進(jìn)行仿真培訓,以及進(jìn)行控制管理人員的培訓。只要使其控制組態(tài)的模式和現場(chǎng)模式保持一致,就可以達到仿真的目的,而不必在實(shí)際的dcs控制室進(jìn)行試驗和調試,這樣可以減少投資,并減小和避免工藝投放風(fēng)險。因此,開(kāi)發(fā)結構合理、安全可靠、簡(jiǎn)單實(shí)用的仿真組態(tài)軟件,具有很好的應用前景。

2 系統結構及其實(shí)現

  2.1 控制組態(tài)概述

  控制組態(tài)作為集成的圖形編程語(yǔ)言,是針對dcs系統所開(kāi)發(fā)的全中文界面的控制方案組態(tài)工具,它與dcs系統流程圖組態(tài)軟件聯(lián)合完成對系統的圖形組態(tài),是新型dcs系統組態(tài)軟件的重要組成部分之一,也是算法控制組態(tài)的核心部分。

  本設計參考了國際電工委員會(huì )iec61131-3提供的用于控制的4種編程語(yǔ)言標準:梯形圖,結構化高級語(yǔ)言,方框圖,指令助記符,采用了簡(jiǎn)單方便易于用戶(hù)學(xué)習和使用的方框圖形式的編程語(yǔ)言,使編程環(huán)境更加高效,更加人性化。

  本文根據面向對象的設計思想,基于目前控制領(lǐng)域通用的windows2000平臺,采用visual c++6.0語(yǔ)言實(shí)現了程序設計。這樣,不僅使人機界面更加友好,而且能夠更好地利用windows系統的資源,使組態(tài)軟件的功能更為強大。

  系統的結構如圖1所示。各部分的功能及實(shí)現方法敘述如下。

本文引用地址:http://dyxdggzs.com/article/187354.htm

圖1 系統結構圖


  2.2 算法顯示模塊和控制算法組態(tài)

  該軟件向工程人員提供了一個(gè)圖形化的控制算法組態(tài)平臺,工程人員可以根據實(shí)際工業(yè)過(guò)程,選用合適的控制算法,用圖形的方式,即選用算法顯示模塊,組成各種控制回路,然后將組態(tài)信息保存到組態(tài)文件中??刂扑惴ńM態(tài)的主界面如圖2所示。

圖2 控制組態(tài)主界面


  圖2算法顯示模塊指的是對具體算法的抽象顯示。在圖形化組態(tài)界面上,每種具體的控制算法對應一種算法顯示模塊,以方框圖的形式顯示,用戶(hù)只需用簡(jiǎn)單的鼠標操作就能將指定的算法顯示模塊添加到指定的控制回路中,或刪除和修改參數,從而完成控制算法的組態(tài)。其在控制組態(tài)界面中的顯示是帶有輸入輸出端子的矩形,圖3是一個(gè)加法顯示模塊的外觀(guān)及顯示說(shuō)明:

圖3 算法顯示模塊圖


  其中,模塊在回路中的編號只有在進(jìn)行過(guò)編譯且用戶(hù)確定后才正確顯示,編譯前不顯示。而模塊流水號只是在繪制過(guò)程中記錄的全局唯一的模塊的id號,它由系統自動(dòng)生成,用戶(hù)不能修改。

  設計控制組態(tài)仿真軟件的界面時(shí),主要是實(shí)現組態(tài)用到的算法顯示模塊、連線(xiàn)和文本注釋的繪制和顯示。從共性的角度考慮,決定將對算法模塊的實(shí)現用一個(gè)從cobject類(lèi)派生的類(lèi)cfunmod來(lái)統一實(shí)現和管理,在該類(lèi)中設定標志變量對具體的算法顯示模塊類(lèi)型進(jìn)行區分,同時(shí)標記該模塊的輸入輸出端子數目。連線(xiàn)使用從cobject類(lèi)派生的類(lèi)clinkline實(shí)現,包含對連線(xiàn)兩端所連算法顯示模塊的標記。而文本注釋則由另一個(gè)從cobject類(lèi)派生的類(lèi)ctext來(lái)實(shí)現,為普通注釋時(shí),記錄字符串類(lèi)型的注釋參數,而與數據庫中的點(diǎn)關(guān)聯(lián)時(shí),記錄點(diǎn)名。在繪制回路的過(guò)程中,它們都是由基于各類(lèi)的鏈表來(lái)操作和管理的。

  為支持對算法顯示模塊和文本注釋的參數配置,需實(shí)現屬性對話(huà)框,這是很容易實(shí)現的。這樣,通過(guò)鼠標雙擊算法模塊,彈出屬性對話(huà)框,用戶(hù)填入相應的參數,點(diǎn)擊確定保存即可。

  2.3 控制算法庫

  控制算法庫是整個(gè)系統仿真運行的基石。系統中內置了若干種控制算法。為了保證控制算法的可擴展性和統一性,所有的控制算法實(shí)現了一個(gè)統一的接口,供算法運行模塊調用。

  具體來(lái)講,是采用模塊化設計的思路,將dcs的控制算法分解成若干個(gè)功能獨立的、能分別設計、編碼和調試的算法模塊,組成控制算法庫。每個(gè)算法模塊完成的功能既明確又單純,從而使處理的問(wèn)題局部化和簡(jiǎn)單化。算法模塊作為控制組態(tài)仿真軟件結構中的最基本元素,實(shí)際上就是完成一個(gè)特定算法功能的獨立程序。算法模塊的接口簡(jiǎn)明而又統一,且能彼此隔離和獨立。從用戶(hù)角度看來(lái),控制算法庫中的各種控制算法都是完全一樣的,而且系統也是采用統一的接口對各種算法進(jìn)行調用的,用戶(hù)無(wú)需關(guān)心每個(gè)控制算法的具體實(shí)現細節。另外,用戶(hù)使用時(shí),只需對控制算法模塊的參數進(jìn)行修改,而無(wú)需修改算法模塊的代碼。

  將各算法編成獨立的可反復調用的算法模塊,對應每一個(gè)功能模塊都有一個(gè)參數列表和輸入列表,系統運行時(shí),控制調度程序依據這些信息,順序依次執行。

  設計算法庫時(shí),先設計一個(gè)算法基類(lèi)cfunction,其中實(shí)現一個(gè)虛函數fun,具體算法從該類(lèi)中派生。在程序中,采用統一調用各算法模塊的fun函數的方法實(shí)現對控制算法的調用,這樣的接口簡(jiǎn)單明了。

  2.4 虛擬信號發(fā)生器

  信號發(fā)生器是一種應用極為廣泛的儀器,它通常作為標準信號發(fā)生器,用于電子電路的性能試驗或參數測量。傳統的信號發(fā)生器價(jià)格昂貴、操作復雜、不易開(kāi)發(fā)、維護和升級,而使用基于visual

  c++編程工具,軟件開(kāi)發(fā)的虛擬信號發(fā)生器,具有簡(jiǎn)單、直觀(guān)、操作方便等特點(diǎn),而且可以通過(guò)調用或修改信號源函數中的不同的功能函數,得到不同的信號,如正弦波、方波、三角波等。

  虛擬信號發(fā)生器即信號源模塊又分為三個(gè)子模塊,參數設置模塊,信號發(fā)生模塊,波形顯示模塊。如圖4所示。

圖4 虛擬信號發(fā)生器結構圖


  信號源數據的內容主要為波形數據、要發(fā)生波形的參數;其波形數據的來(lái)源主要有信號發(fā)生模塊;波形數據的終點(diǎn)是信號發(fā)生以及發(fā)生波形及其參數的顯示,以及提供給控制算法進(jìn)行模擬仿真運行。各子模塊間的關(guān)系及所對應的數據流圖如圖5所示。

圖5 虛擬信號發(fā)生器數據流圖


  信號源模塊能夠產(chǎn)生正弦波、三角波、方波等常用的波形,能夠對要發(fā)生波形的各種參數進(jìn)行方便靈活的設置,能夠對正發(fā)生的波形進(jìn)行實(shí)時(shí)顯示。注意,模擬的信號采集頻率與主控卡實(shí)際采集頻率相同,這樣才能保證對主控卡實(shí)際運行的模擬仿真等準確。

  在此信號源模塊中,用戶(hù)可設定兩種模式:自動(dòng)和手動(dòng)。自動(dòng)時(shí),采用系統提供的一些標準輸入信號類(lèi)型。手動(dòng)時(shí),用戶(hù)可隨時(shí)直接設置邏輯和控制變量的值。這是在線(xiàn)仿真系統的運行的必要條件。

  在此模塊中采用了多線(xiàn)程技術(shù),參考主控卡的采集周期,定時(shí)運行信號發(fā)生函數改變模擬輸入點(diǎn)的值。設置了手動(dòng)改變數據的按鈕,用戶(hù)在手動(dòng)模式下改變模擬輸入點(diǎn)的數據時(shí),直接調用此按鈕的相應函數,執行此改變。

3 模擬仿真運行

  先對用戶(hù)組態(tài)的信息進(jìn)行檢查,看是否數據連接類(lèi)型不匹配,是否回路斷開(kāi)等,同時(shí),對于圖形化組態(tài)平臺來(lái)說(shuō),如何根據控制回路圖的拓撲結構建立起控制組態(tài)信息的數據流是很重要的,也就是需對回路中的算法模塊執行順序進(jìn)行排列,上述內容都是編譯過(guò)程中的工作。檢查確定組態(tài)無(wú)誤后,利用虛擬信號發(fā)生器產(chǎn)生的信號,作為控制回路算法模擬仿真運行的輸入信號,運行控制算法,實(shí)時(shí)顯示仿真數據,及仿真報警,并輸出仿真波形。這是一個(gè)可調試的仿真過(guò)程,用戶(hù)觀(guān)察仿真結果判斷對控制算法的組態(tài)是否滿(mǎn)足要求,若不滿(mǎn)足,則可“在線(xiàn)”調整算法功能模塊的參數,甚至重新組態(tài),仿真和調試,直到仿真結果滿(mǎn)足指定要求。

  在模擬仿真時(shí)也采用了多線(xiàn)程技術(shù)。開(kāi)辟工作者線(xiàn)程,進(jìn)行控制算法的計算。為實(shí)現“在線(xiàn)”參數整定,在用戶(hù)修改參數時(shí),再開(kāi)辟一個(gè)工作者線(xiàn)程,這樣能提高程序的運行效率。

  本軟件平臺采用johnson算法來(lái)解決循環(huán)有向子回路的排序,具體實(shí)施過(guò)程為:以當前正在進(jìn)行拓樸結構分析的模塊接口作探索出發(fā)點(diǎn),用該接口的連線(xiàn)作為索引,沿該連線(xiàn)數據流方向深入,每深入一步,即將經(jīng)過(guò)的模塊接口進(jìn)行標識,如果某一步達到了原出發(fā)點(diǎn),則形成回路。因為在循環(huán)回路中,數據流在某個(gè)采用周期內不存在時(shí)間序列上的優(yōu)先次序,因此需將回路人為斷開(kāi),并按上述索引的順序產(chǎn)生反映該循環(huán)回路特性的算法模塊的執行順序。需要注意的是,該有向循環(huán)回路與不屬于該回路的其它部分則存在先后順序關(guān)系,這正是必須特別處理循環(huán)有向回路的原因。

  實(shí)際運行和數據訪(fǎng)問(wèn)根據控制組態(tài)信息通過(guò)tcp/ip下載到dcs系統的主控卡,并實(shí)際運行,這時(shí)組態(tài)軟件實(shí)時(shí)的向主控卡詢(xún)問(wèn)各點(diǎn)信息(當前值信息和故障信息),并寫(xiě)入實(shí)時(shí)數據庫。而控制組態(tài)仿真軟件只是實(shí)時(shí)的訪(fǎng)問(wèn)實(shí)時(shí)數據庫,從實(shí)時(shí)數據庫獲取點(diǎn)值信息等,再在控制組態(tài)的實(shí)際運行界面上實(shí)時(shí)顯示,同時(shí),可顯示各回路的實(shí)際運行波形圖。工程人員通過(guò)人機界面來(lái)監控各個(gè)控制回路的運行情況,可以在線(xiàn)進(jìn)行參數整定。

  數據訪(fǎng)問(wèn)模塊主要是用來(lái)給算法實(shí)際運行模塊提供一個(gè)簡(jiǎn)單、統一的數據訪(fǎng)問(wèn)接口。它通過(guò)ado訪(fǎng)問(wèn)實(shí)時(shí)數據庫,讀出算法運行模塊需要顯示的實(shí)時(shí)數據,實(shí)現實(shí)時(shí)顯示和報警。

  設計時(shí),創(chuàng )建流套接字與主控卡建立網(wǎng)絡(luò )連接,進(jìn)行通訊,下載控制信息。

4 結束語(yǔ)

  控制組態(tài)仿真軟件為建模人員提供了一個(gè)友好的用戶(hù)界面,使建模人員在建模時(shí)不必對模塊內部的控制、邏輯程序有很深的了解就可以方便的對其進(jìn)行編寫(xiě)和修改,自動(dòng)或手動(dòng)改變各邏輯和控制變量的值,參與模擬仿真運行和調試,從而實(shí)現了對系統運行的仿真。采用仿真的方式,模擬控制算法的運行和故障的報警,既可縮短工期又可降低成本,還能降低硬件維護、培訓和備品備件費用,具有很好的應用前景。

c++相關(guān)文章:c++教程


負離子發(fā)生器相關(guān)文章:負離子發(fā)生器原理


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>