RTLinux的實時控制系統_第1頁
RTLinux的實時控制系統_第2頁
RTLinux的實時控制系統_第3頁
RTLinux的實時控制系統_第4頁
RTLinux的實時控制系統_第5頁
已閱讀5頁,還剩6頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于RTLinnux的實時時控制系統摘要:從技術背背景、系統結結構、硬件和和軟件設計等等方面論述了了基于RTLLinux的的閘門實時控控制系統的組組成、原理以以及實現方法法,并著重分分析了軟件實實現的關鍵問問題。 關鍵詞詞:RTLiinux 實實時控制 TTCP/IPP MYSQQL數據庫在水電站閘門控控制系統中,設設備地理位置置分散、控制制分散,基于于常規繼電器器的控制系統統不能滿足電電廠無人值班班控制系統和和全廠綜合自自動化的要求求,必須將智智能控制和工工業網絡相結結合,實現實實時控制的同同時又能對設設備進行智能能管理和維護護。目前比較較常用的控制制系統大多由由PLC構成成,成本較高高,缺

2、乏客戶戶定制的靈活活性。本文從從系統功能實實現和經濟指指標兩個方面面考慮,半基基于RTLiinux的控控制平臺、工工業以太網和和數據庫技術術引入閘門控控制系統。1 RTLliinux、工工業以太網和和數據庫RTLinuxx是由新墨西西大學的Viictor Yodaiiken等人人開發的,現現在已有商業業化的版本推推出。在RTTLinuxx面世之前,LLinux在在實時性方面面作過一些嘗嘗試。在POOSIX1.b中,規定定了實時進程程的一些標準準,但由于LLinux內內核的不可搶搶先性,真正正的實時進程程無法在標準準的Linuux環境下實實現。RTLLinux采采用簡單而有有效的方法解解決了此問

3、題題而不用重寫寫Linuxx內核代碼。RRTLinuux實現了一一個高效的可可搶先的實時時調度核心,全全面接管中斷斷,并把Liinux作為為此實時核心心的一個優先先級最低的進進程運行。當當有實時任務務需要處理時時,RTLiinux運行行實時任務;無實時任務務時,RTLLinux運運行Linuux的非實時時進程。圖11是RTLiinux的結結構圖。為保證實時進程程與非實時LLinux進進程部順序進進行數據交換換,RTLiinux引入入了RT-FFIFO隊列列。RT-FFIFO被LLinux視視為字符設備備,最多可達達150個,分分別命名為/der/rrtf0、/dev/rrtf1/dev/rtf

4、633。最大的RRT-FIFFO數量在系系統內核編譯譯時設定。圖圖2說明了RRT-FIFFO的工作原原理。RTLinuxx程序運行于于兩個空間:用戶空間內內核態。RTTLinuxx提供了應用用程序接口,借借助這些APPI函數將實實時處理部分分編寫成內核核模塊,并裝裝載到RTLLinux內內核中,運行行于RTLiinux的內內核態。非實實時部分的應應用程序則在在Linuxx下的用戶空空間中執行,這這樣可以發揮揮Linuxx對網絡和數數據庫的強大大支持功能。TCP/IP協協議和以太網網在Inteernet上上的成功應用用吸引著越來來越多控制程程師。盡管以以太網的時間間不確定性給給以太網應用用于工業

5、控制制現場的實時時性帶來了很很多爭論,但但是實際應用用中,經網絡絡傳輸的數據據絕大多數用用于系統管理理和維護等方方面,用于實實時控制的數數據傳輸很少少,這也是基基于管理集中中、控制分散散的系統設計計策略考慮的的。在較高的的以太網傳輸輸速度下,現現場智能處理理單元的處理理速度才是傳傳輸延遲的主主要原因。本本系統現場控控制單元采用用高速處理器器,并采用RRTLinuux作為現場場控制單元的的控制平臺,直直接用以太網網傳輸數據,系系統的網絡層層次減少,信信號的傳輸實實時性也得到到提高。目前,有許多數數據庫開發商商提供了Liinux平臺臺上的數據庫庫軟件,例如如Oraclle、Sybbase、IInf

6、ormmix和MYYSQL等都都推出了Liinux版本本。基于RTTLinuxx的控制系統統在實時控制制領域有巨大大的潛力。2 系統組成本系統分為現場場和集中級。現現場控制級由由分散在現場場的4個現場場控制單元控控制,分別完完成閘門位置置、油缸油壓壓和油路狀態態等的采集,現現場操作按鈕鈕的監視以及及閘門提升和和下降的控制制等。集中級級由集中監控控站、維護站站組成,分別別執行監視、智智能維護及診診斷等功能。打打印機用于數數據的硬備份份、報表的輸輸出。系統結結構如圖3所所示。2.1 系統硬硬件構成在工業控制系統統中通常采用用PLC作為為現場的控制制核心。PLLC的不足一一方面在于其其較高的價格格,

7、另一方面面在于其難以以實現非順序序控制算法,以以及缺乏對TTCP/IPP靈活的支持持。本系統采采用嵌入式PPC作為控制制單元的核心心,開發人員員可自行開發發外圍接口板板,根據系統統需要靈活組組態,既經濟濟又能使用高高級語言開發發控制程序。現場控制閘門的的LCU采用用相同的硬件件配置。CPPU板采用研研華公司的PPCM-58864,CPPU的Inttel公司的的Pentiium MMMX 1666MHz,內內存為64MMB,以太網網接口為100MHz的RRTL-81139A。CCPU板通過過PC1044總線與采樣樣模塊和輸出出模塊相連。此此外該板上配配有顯示、鍵鍵盤和鼠標等等標準接口,便便于在線

8、修改改和檢查程序序。硬盤選用用容量為4.3GB的筆筆記本硬盤。16通道的A/D采樣模塊PCM-3718H完成模擬量的采集,分辨率為12位;16通道的數字I/O模塊PCM-3730用于開關量的采集、控制閘門的啟動和停止。為便于現場巡檢,LCU配有顯示中文信息的LCD模塊MGLS-240128,內置T6963C控制器。系統采用了16端口的HUB。為保證集中站可可靠地工作,集集中監控站、集集中維護站采采用工業PCC,配有Inntel公司司的P處理器器,256MMB內存和440GB的大大硬盤,TCCP/IP通通信由3COOM公司的110/1000MbpsPPCI網卡33C905CC來完成。2.2 系統

9、軟軟件構成系統的軟件也分分為兩部分。集集中監控站采采用Winddows20000操作系系統,并安裝裝有MYSQQL-3.223.49 for WWindowws服務器軟軟件和監控軟軟件;維護也也采用Winndows22000操作作系統。此外外裝有MYSSQL的客戶戶端軟件包和和維護及診斷斷軟件。監控控軟件和維護護及診斷軟件件均用Vissual CC+開發。LCU的軟件包包括實時Liinux操作作系統、數據據庫客戶端軟軟件和控制程程序。在LCCU中,操作作系統Reddhat6.2經升級和和安裝RTLLinux后后被改造成實實時Linuux。升級后后的核為Liinux-22.2.188,RTLii

10、nux的版版本號為RTTLinuxx2.2 ffor Liinux-22.2.188。數據庫的的客戶端程序序包為MYSSQL-3.23.499RPM。控控制程序包括括實時控制程程序和非實時時程序兩部分分。3 系統設計的的關鍵問題現場單元中與實實現控制部分分和非實時控控制部分程序序相對應的文文件為gattectl_modulle.c和ggatecttl_appp.c。二者者由gcc編編譯后生成目目標文件gaatectll_moduule.o和和gatecctl_appp.o。前前者為內核模模塊,嵌入到到RTLinnux核中,用用于實時采集集和實時控制制輸出,運行行于內核態。后后者為Linnux應

11、用環環境,運行于于用戶空間,完完成數據的預預處理、訪問問數據庫和人人機接口等工工作。3.1 內核模模塊內核模塊程序按按多線程模式式編寫,RTTLinuxx提供了與多多線程編程相相應的APII函數。RTLinuxx2.2內核核中,完成實實時任務的模模塊主要包括括以下兩個功功能函數:Int iniit_moddule();Void clleanupp_moduule()。前者在模塊第一一次裝入核中中時被調用,完完成實時任務務的參數(優優先級別、中中斷周期等)的的設置,進行行任務的啟動動和終止等操操作。后者在在模塊卸載時時被調用,一一般在調試或或系統退出時時使用。模塊塊中可啟動多多個任務,本本系統在

12、實時時部分只設計計一個實時任任務即Tassk1。 啟動實實時任務前必必須進行初始始化。iniit_moddule()中的初始化化工作包括以以下三部分:為保證內核態態的實時進程程與用戶空間間的非實時進進程間交換信信息。須創建建3個RTLL-FIFOO,具體為:rtf1用用于實時進程程與非實時進進程間的數據據交換,數據據包括采集到到的模擬量和和數字量;rrtf3用于于非實時進程程向實時進程程傳遞控制命命令字,以啟啟動和終止實實時任務;rrtf2用于于保存經tttf3傳遞的的實時任務的的控制命令字字。創建工作作由RTLiinux提供供的API函函數rtf_creatte(n,bbuf)來完完成。創建

13、實時任務務Task11對應的線程程,并設定其其調度優先級級,由APII函數pthhread_creatte來完成。當非實時進程程通過rtff3進行控制制命令傳遞時時,實時進程程應及時響應應。因此必須須在實時程序序中建立跟蹤蹤rtf3變變化的子程序序,調用rttf_creeate_hhandleer(3,&data_handller)來完完成此功能。內核態的主體程程序有兩種實實現方式:中中斷處理和周周期實時線程程方式。本系系統采用周期期性實時線,即即周期性地執執行數據采集集、輸出控制制結果以及與與處于用戶空空間中的非實實時進程交換換數據。具體體過程見圖44。在編寫實時程序序時,應特別別注意的是:

14、實時任務運運行在內核水水平,是為了了提供對計算算機硬件的直直接訪問能力力,為避免不不確定的延遲遲,RTLiinux給代代碼和數據分分配固定的內內存空間。實實時任務不能能使用Linnux的系統統調用及Liinux中的的程序與數據據結構,否則則難以保證數數據的一致性性。此外應控控制實時程序序的執行時間間,編寫程序序時應注意包包含與APII函數對應的的頭文件。內核程序中與RRT-FIFFO相關的函函數有:rtf_creeate():創建RTT-FIFOO。rtf_gett():從RRT-FIFFO讀數據。rtf_putt():向RRT-FIFFO寫數據。rtf_creeate_hhandleer()

15、:建建立響應RTT-FIFOO變化的子程程序。內核程序中與實實時任務線程程相關的函數數有:pthreadd_creaate():創建實時任任務對應的線線程。pthreadd_waitt_np():將當前線線程掛起,直直至下一個周周期線程。pthreadd_makeeperioodic_nnp():設設置線程的屬屬性并啟動線線程。pthreadd_susppend_nnp():將將本線程無限限期掛起,即即終止任務。在調試階段,需需要將有buug的模塊卸卸載。該項工工作由cleeanup_modulle()來完完成。在卸載載模塊時將rrtf1、rrf2和rttf3撤銷,并并撤銷實時任任務Taskk

16、1。3.2 應用程程序Linux下應應用程序gaatect11_app工工作流程見圖圖4,其程序序用Linuux下的C語語言開發。集集中監控站和和維護站的程程序在Winndows下下用Visuual C+開發。其其中有幾點要要說明:RT-FIFFO被Linnux視為字字符設備,因因此可以通過過調用opeen(/ddev/rttf1,OO_RDONNLY)來獲獲得rtf11的指針,rrtf2的rrtf3類似似。獲得指針針后通過reead和wrrite函數數實現對RTT_FIFOO的讀寫操作作。程序中調用sselectt函數檢查RRT_FIFFO是否忙,以以避免讀RTT_FIFOO時出現阻塞塞現象

17、。LCD顯示模模塊MGLSS-2401128內置智智能控制器,只只需將待顯示示的數據送控控制器的顯示示緩沖區就能能實現顯示功功能,數據顯顯示不會占用用系統過多的的時間。 系統統數據傳輸和和維護通過網網絡數據庫來來實現。數據據庫采用客戶戶端/服務器器模塊,將LLCU、集中中維護站設置置為客戶端,將將集中監控站站設置為服務務器。本系統統采用基于TTCP/IPP協議的MYYSQL數據據庫為實現數數據管理。MMYSQL是是一個多用戶戶、多線程的的SQL數據據庫服務器,由由客戶端/服服務器結構來來實現。它由由一個服務器器守護程序mmysqldd和不同的客客戶程序及庫庫組成,使用用TCP/IIP把多個客客戶(LCUU等)連接到到一個服務器器(集中監控控站)上。在在運行前應將將主機名、IIP地址等設設備就緒,在在LCU的應應用程序gaatectll_app中中應包含MYYSQL.hh頭文件,其其中有MYSSQL的APPI函數的具具體實現。在在用戶空間,CC語言程序通通過這些APPI函數訪問問遠程的數據據庫服務器。數據的預處理理:為防止被被干擾的數據據上傳到服務務器,應用程程序對數據進進行濾波,再再對數據進行行分類。經過過預處理后的的數據才可以以送數據緩沖沖區,通過AAP

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論