• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      發(fā)電車監(jiān)測系統(tǒng)中windows?。茫牛危牛耘cSQL?。樱澹颍觯澹颉。茫宓难芯考皯?yīng)用

      2009-03-30 04:52:54江浩晨
      新媒體研究 2009年3期
      關(guān)鍵詞:線程串口嵌入式

      江浩晨

      [摘要]發(fā)電車是空調(diào)旅客列車的能源中樞。介紹發(fā)電車監(jiān)測系統(tǒng)的功能和主機結(jié)構(gòu)及要求,接著對Windows cE.NetT~I]SQL Server CE做簡單介紹,然后討論說明其在系統(tǒng)中的應(yīng)用方法,同時以Visual Studio.NET編程環(huán)境下的c#語言為例,介紹基于該應(yīng)用環(huán)境的設(shè)計和編程方法,最后通過應(yīng)用測試結(jié)果,表明該系統(tǒng)達到預(yù)期的設(shè)計目標(biāo)。

      [關(guān)鍵詞]發(fā)電車嵌入式系統(tǒng)監(jiān)測系統(tǒng)

      中圖分類號:TP3文獻標(biāo)識碼:A文章編號:1671—7597(2009)0210036-02

      一、引言

      發(fā)電車是空調(diào)旅客列車的能源中樞。發(fā)電車監(jiān)測系統(tǒng)由于要安裝在運行著的發(fā)電車上,因此對系統(tǒng)的軟件硬件都需要符合車載系統(tǒng)的特殊要求。由于主機硬件運行在存在較大震動的惡劣環(huán)境下,要求硬件不能有風(fēng)扇和旋轉(zhuǎn)式的硬盤這些基本要求,因此硬件性能不可能很高,而主機對通訊、數(shù)據(jù)存儲、顯示又有很高的穩(wěn)定性與實時性要求,因此需要一種實時、高效的嵌入式平臺支持。本文先介紹發(fā)電車系統(tǒng)的應(yīng)用軟件平臺需求,然后討論Windows CE.NET嵌入式系統(tǒng)在本系統(tǒng)中應(yīng)用的可行性與應(yīng)用編程方法,接著對SQL Server CE在本系統(tǒng)中的可行性和編程方法進行了探討研究。

      二、發(fā)電車監(jiān)控系統(tǒng)的應(yīng)用軟件需求

      (一)系統(tǒng)功能

      監(jiān)測系統(tǒng)實時監(jiān)測與發(fā)電機組運行相關(guān)的參數(shù),按秒記錄入數(shù)據(jù)緩存,自動計算累計開機時間和累計電能,按設(shè)定時間間隔(默認(rèn)15分鐘)記錄到數(shù)據(jù)庫。對所有監(jiān)測的參數(shù)均可設(shè)置上下限,參數(shù)超過規(guī)定標(biāo)準(zhǔn)值時立即報警,并將事件點前后各20秒的數(shù)據(jù)存儲到日志文件和數(shù)據(jù)庫中。

      系統(tǒng)使用LCD彩屏顯示,圖形化展示各項參數(shù)和開關(guān)量狀態(tài),報警時以醒目方式顯示報警參數(shù)狀態(tài)。系統(tǒng)在GPRS網(wǎng)絡(luò)允許的情況下,隨時向地面系統(tǒng)發(fā)送完整實時數(shù)據(jù)。

      要求保存近1年內(nèi)的所有數(shù)據(jù),隨時可以通過u盤導(dǎo)出指定數(shù)據(jù)。在需要時可以與地面服務(wù)器進行數(shù)據(jù)庫同步操作,以便做進一步的分析挖掘。[1]

      (二)主機結(jié)構(gòu)及運行環(huán)境

      發(fā)電車監(jiān)控系統(tǒng)通過485總線,與各遠(yuǎn)程監(jiān)測模塊通信,獲取實時數(shù)據(jù),并對數(shù)據(jù)進行存儲、分析、報警和顯示等操作。其主機功能結(jié)構(gòu)如圖1所示:

      該主機為系統(tǒng)的核心,負(fù)責(zé)數(shù)據(jù)的采集、存儲與顯示等操作。主機安裝在運行中的發(fā)電車中,由于工況的需求,主機密封無風(fēng)扇,存儲使用工業(yè)級cF卡。其中單板機與GPS模塊及GPRS模塊的通訊都是通過獨立的Rs一232接口。

      (三)軟件系統(tǒng)平臺要求

      因以上需求,要求系統(tǒng)為嵌入式系統(tǒng),較小的系統(tǒng)核心,較快的啟動和運行速度,需要有友好的人機交互界面,且要求可以進行多線程多端口的串口通信(本系統(tǒng)使用4個串口)。

      另外要求編程和維護盡可能方便。

      (四)數(shù)據(jù)存儲要求

      系統(tǒng)的數(shù)據(jù)存儲分為日志文件存儲和數(shù)據(jù)庫存儲。其中,數(shù)據(jù)庫中存儲的數(shù)據(jù)主要用于簡單快速的檢索。數(shù)據(jù)庫存儲的數(shù)據(jù)量根據(jù)設(shè)計,每年150M左右,循環(huán)清除。界面操作中包括查詢在內(nèi)的各項數(shù)據(jù)庫操作不能有明顯延遲。

      三、Windows CE.NET的在系統(tǒng)中的應(yīng)用研究

      (一)Windows CE.NET系統(tǒng)介紹與討論

      Windows CE.Net是Windows CE 3.0的后續(xù)產(chǎn)品,它是一個功能強大的實時嵌入式操作系統(tǒng),由于有眾多強大工具支持,用戶利用它可以快速開發(fā)出下一代的智能化小體積連接設(shè)備。借助于完善的操作系統(tǒng)功能和開發(fā)工具,Windows CE.Net提供了構(gòu)建、調(diào)試和部署基于Windows CE.Net的定制設(shè)備所需的一切特性。Windows CE.Net的最大好處是具有可定制性。當(dāng)它自帶的驅(qū)動程序不能滿足用戶的要求時,需要用戶自己編寫相應(yīng)的驅(qū)動程序。Windows CE.Net的開發(fā)工具Platform Builder就可以完成系統(tǒng)的定制和相應(yīng)的驅(qū)動程序開發(fā)。[2]根據(jù)Windows CE.Net的特性,其嵌入式系統(tǒng)的各種特性非常適合發(fā)電車監(jiān)測系統(tǒng)。

      (二)編程方式

      本系統(tǒng)使用Windows CE.NET 4.2,操作系統(tǒng)支持Microsoft.NETCompact Framework,系統(tǒng)編程軟件使用微軟的VisuaStudio.Net 2003(也可使用更高版本,如2005版,但聯(lián)機方式會有所不同),編程使用c#語言。

      安裝Windows cE.NET Utilities v1.1 for Visual Studio.NET20031具包后,可通過以太網(wǎng)方式,將編程開發(fā)的Pc機與運行WindowscE.NET 4.2的主機設(shè)備進行連接,直接進行聯(lián)機編程和調(diào)試。由于有.NETFramework的支持,使得用嵌入式環(huán)境下的c#編程方法和桌面機程序基本一致,作為嵌入式應(yīng)用,其支持的Microsoft.NET Compact Framework是精簡版的,支持的組件比標(biāo)準(zhǔn)版少一些。

      在系統(tǒng)軟硬件定制時,設(shè)計有4個串口,1個用于與GPS設(shè)備通訊(Rs一232),1個與GPRS設(shè)備通訊(RS-232),另兩個與485總線上的設(shè)備通訊。每個串口設(shè)備都在不同線程中獨立打開和通訊,串口調(diào)用API接口函數(shù)CreateFile打開,同樣調(diào)用API函數(shù)ReadFile和WriteFile來對串口進行數(shù)據(jù)讀取和寫入。

      主機系統(tǒng)軟件結(jié)構(gòu)如圖2所示。

      軟件用面向?qū)ο蠓椒?,封裝各個功能模塊,并在不同線程中同步運行[3]。其中主要分兩個采集數(shù)據(jù)的通信模塊,和4個讀取數(shù)據(jù)的后期數(shù)據(jù)處理模塊。

      其中,實時數(shù)據(jù)實例為一個數(shù)據(jù)緩存類的實例,為程序的數(shù)據(jù)核心[4]。在對其讀取和寫入過程中會發(fā)生各個線程間的并發(fā)沖突問題。因此在可能并發(fā)出現(xiàn)的程序代碼段使用以下代碼控制:

      System.Threading.Monitor.Enter(對象1)://防止沖突加鎖

      try

      {

      //需要防止并發(fā)沖突的代碼段

      ………………

      )

      finally

      {

      System.Threading.Monitor.Exit(對象1)://防止沖突解鎖

      )

      在需要防止并發(fā)沖突的代碼開始的地方使用System.Threading.Monitor.Enter方法在指定對象上加排他鎖,完成后再System.Threading.Monitor.Exit方法解鎖,以防止此并發(fā)問題的出現(xiàn)[5][6]。

      四、SQLCE在系統(tǒng)中的應(yīng)用研究

      (一)SOLCE介紹與應(yīng)用討論

      SOL Server cE是用作快速開發(fā)的關(guān)系型精簡數(shù)據(jù)庫,它將企業(yè)級數(shù)據(jù)管理能力擴展到了基于Windows cE操作系統(tǒng)的嵌入式移動設(shè)備上。本系統(tǒng)使

      用Visual Studio.NET編程,通過.NET Compact Framework支持下的ADO.NET技術(shù)訪問操作SOL Server cE 2.0數(shù)據(jù)庫。

      SOL Server cE提供遠(yuǎn)程數(shù)據(jù)訪問和合并復(fù)制功能,在需要的時候,可以實現(xiàn)與SQL Server服務(wù)器同步。本系統(tǒng)在正常使用情況下不需要使用這項功能,但這個功能使得本系統(tǒng)具有良好的擴展性。

      (二)SOL Server CE編程方法

      數(shù)據(jù)庫設(shè)計好后,在項目中添加對System.Data.SqlServerCe組件的引用,可以編程實現(xiàn)對SQL Server cE的各項操作。以下以c#語言為例實現(xiàn)對數(shù)據(jù)庫的連接準(zhǔn)備[7][8]:

      SqlCeConnection DBConnection;

      //數(shù)據(jù)庫連接

      SqlCeCommand DBComand;

      //命令對象

      DBConnection=new SqlCeConnection(AConnectStrings)://通過連接串字符定義連接

      DBCommand=new SqlCeCommand():

      DBComand.Connection=DEConnection;

      由于程序中有多個線程同時運行(如圖1,至少有3個主要模塊在獨自的線程中對數(shù)據(jù)庫有讀寫操作),而SQL Server CE2.0只支持單進程單線程的讀寫操作,因此對數(shù)據(jù)庫操作同樣需要進行防止沖突的代碼保護,以下以c#語言為例,對數(shù)據(jù)庫提交一個SQL命令,做一個刪除一個臨時表的操作:

      System.Threading.Monitor.Enter(this)://防止沖突加鎖

      try

      {

      DBConnection.open();

      DBCommand.CommandText=“drop table tabletemp”:

      int Result=DBComand.ExecuteNonQuery()://通過Result獲取操作影響到的行數(shù)

      }

      catch(Exception E)

      (

      //此處進行錯誤處理

      )

      finally

      (

      DBConnection.Close():

      System.Threading~Monitor.Exit(this)://防止沖突加鎖后解鎖

      )

      在實際運行中,因SQL Server CE的單線程訪問特性,數(shù)據(jù)庫操作類被編程封裝,并在系統(tǒng)中僅創(chuàng)建一個實例,多個線程可以并發(fā)調(diào)用。以上代碼在實踐中證明,在多線程并發(fā)調(diào)用訪問時,運行穩(wěn)定。

      在停機維護時,可能需要與地面服務(wù)器中的SOL Server數(shù)據(jù)庫進行數(shù)據(jù)同步,可以使用RSQL Server cE自帶的emote Data Access(RDA)對象,它為Windows cE應(yīng)用程序訪問遠(yuǎn)程的SQL Server數(shù)據(jù)庫提供了一種簡單的訪問方式。使用其Push方法,可以將保存在Windows cE.NET上的數(shù)據(jù)直接寫人到遠(yuǎn)程的SQI Server數(shù)據(jù)庫中,使用Pull方法,可以將遠(yuǎn)程的SQL Server數(shù)據(jù)庫的數(shù)據(jù)下載到Windows cE.NET中的SOL Server cE數(shù)據(jù)庫中,這樣就可以實現(xiàn)數(shù)據(jù)的交換和同步。[9]

      (三)SOL Server CE在發(fā)電車監(jiān)測系統(tǒng)中的應(yīng)用

      本發(fā)電車監(jiān)測系統(tǒng)通過串口通信,實時獲取各遠(yuǎn)程測量模塊的測量數(shù)據(jù),并記錄在一個緩存實例中,通過界面模塊實時在屏幕上顯示當(dāng)前各項參數(shù),并通過人工觸發(fā)方式記錄數(shù)據(jù)到數(shù)據(jù)庫,同時通過界面操作,對系統(tǒng)進行設(shè)置以及對數(shù)據(jù)庫中歷史數(shù)據(jù)的查詢:通過數(shù)據(jù)庫存儲模塊,按設(shè)置定時記錄實時參數(shù)數(shù)據(jù)到數(shù)據(jù)庫;通過事件報警分析模塊判斷報警,并記錄到數(shù)據(jù)庫;通過GPRS通訊模塊實現(xiàn)與地面系統(tǒng)的數(shù)據(jù)通訊。

      而SQL Server cE 2.0作為一個嵌入式數(shù)據(jù)庫,在本系統(tǒng)的應(yīng)用中,不可能記錄海量數(shù)據(jù),并進行大數(shù)據(jù)量的檢索查詢或其它操作,否則會造成系統(tǒng)運行效率下降或不穩(wěn)定,因此優(yōu)化數(shù)據(jù)庫的設(shè)計和優(yōu)化數(shù)據(jù)量在本系統(tǒng)設(shè)計中也很重要。

      五、應(yīng)用測試結(jié)果

      本發(fā)電車監(jiān)測系統(tǒng),在Windows cE.NET~I]SQL Server cE的平臺基礎(chǔ)上完成開發(fā),并進行了實際的裝車測試,比較其他同類產(chǎn)品有以下優(yōu)點:

      1、系統(tǒng)穩(wěn)定:嵌入式平臺加上.NET Compact Framework的支持,系統(tǒng)運行穩(wěn)定性很高,同時,由于對多線程操作的保護較好,使多線程操作更具有高效性和穩(wěn)定性。

      2、運行效率高:4個串口與各模塊設(shè)備通訊,平均單次輪詢時間為0.5s,低于系統(tǒng)要求的1s的時間間隔。由于嵌入式系統(tǒng)占資源較小,程序響應(yīng)速度很快。SOL Server CE存儲數(shù)據(jù)效率高,查詢速度也很快,操作中無明顯延遲現(xiàn)象,數(shù)據(jù)安全性好。

      3、界面友好:Windows cE.NET的圖形界面友好,在此基礎(chǔ)上開發(fā)的程序也有同樣的優(yōu)點。

      4、系統(tǒng)擴展性強:在需要時,可將數(shù)據(jù)通過SQL Server CE的同步功能,將車載主機中的數(shù)據(jù)直接同步到地面機SQL Server數(shù)據(jù)庫,用于進行進一步的數(shù)據(jù)分析與挖掘。

      六、結(jié)論

      本文研究討論了發(fā)電車監(jiān)測系統(tǒng)中使用Windows cE.NET和SQL Serverce的可行性以及其使用及編程方法,并用應(yīng)用測試結(jié)果證明該平臺下開發(fā)的監(jiān)測系統(tǒng)完全可以達到預(yù)期的設(shè)計目標(biāo)。該系統(tǒng)中使用到的軟件技術(shù)都是目前市場上較為成熟的技術(shù),其應(yīng)用領(lǐng)域也在逐漸擴大,在鐵路系統(tǒng)的其它信息化建設(shè)中也將發(fā)揮重要作用。

      猜你喜歡
      線程串口嵌入式
      淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
      搭建基于Qt的嵌入式開發(fā)平臺
      淺談linux多線程協(xié)作
      嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
      USB接口的多串口數(shù)據(jù)并行接收方法探索
      基于藍牙串口適配器的GPS接收機與AutoCAD的實時無線通信
      地礦測繪(2015年3期)2015-12-22 06:27:26
      Altera加入嵌入式視覺聯(lián)盟
      基于并行控制的FPGA多串口拓展實現(xiàn)
      倍福 CX8091嵌入式控制器
      自動化博覽(2014年4期)2014-02-28 22:31:15
      Linux線程實現(xiàn)技術(shù)研究
      封开县| 开阳县| 高邑县| 桦南县| 普兰县| 松江区| 静宁县| 平远县| 千阳县| 黑河市| 铁岭县| 云梦县| 和平县| 丰县| 七台河市| 奎屯市| 哈密市| 军事| 桑植县| 十堰市| 永丰县| 泰州市| 都兰县| 定边县| 洛隆县| 昆明市| 班戈县| 平南县| 宜君县| 贺兰县| 嘉峪关市| 富宁县| 平邑县| 历史| 固原市| 房山区| 通海县| 朝阳县| 安庆市| 房产| 长寿区|