• 
    

    
    

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

      C#下串口通信編程的開(kāi)發(fā)和擴(kuò)展

      2014-07-25 07:44:58朱英翔朱福民劉炎鳴
      關(guān)鍵詞:折線(xiàn)圖柱狀圖控件

      朱英翔,朱福民,劉炎鳴

      (上海海事大學(xué) 物流工程學(xué)院,上海201306)

      在工業(yè)現(xiàn)場(chǎng)進(jìn)行作業(yè)和實(shí)驗(yàn)時(shí),需要對(duì)一些工業(yè)設(shè)備的狀態(tài)進(jìn)行監(jiān)測(cè)。為了方便快速搭建檢測(cè)平臺(tái)、達(dá)到靈活操作的目的,可以采用帶微控制器的傳感器采集所需要的狀態(tài)信息,通過(guò)串口直接把這些信息傳送給個(gè)人電腦,然后在電腦上編程接收處理數(shù)據(jù)。

      目前,大多數(shù)微控制器芯片(如8051系列單片機(jī))都支持串口的輸入輸出[1-2],本文研究使用個(gè)人電腦外接USB轉(zhuǎn)串口線(xiàn)來(lái)接收信息,通過(guò)C#編程,運(yùn)用電腦做上位機(jī)來(lái)完成采集分析記錄工作。近年來(lái),C#編程已經(jīng)幫助企業(yè)解決了很多工業(yè)問(wèn)題,同時(shí)在串口通信領(lǐng)域也有很好的應(yīng)用前景。

      1 Visual Studio數(shù)據(jù)串口通信

      串口是一種比較簡(jiǎn)單的通信形式。介紹通過(guò)Visual Studio 2010的C#進(jìn)行編程使得PC能接收串口發(fā)來(lái)的信息。

      C#是一種強(qiáng)勁的編程語(yǔ)言[3],且 Visual Studio也封裝了串口收發(fā)的模塊,這易于實(shí)現(xiàn)串口數(shù)據(jù)采集和處理。這里運(yùn)用C#創(chuàng)建Windows窗體應(yīng)用程序,首先在窗體加載時(shí)觸發(fā)串口的讀取功能,遍歷電腦的每一個(gè)串口。在窗體應(yīng)用程序的combobox預(yù)設(shè)一系列與串口通信有關(guān)的參數(shù),根據(jù)所連接的單片機(jī)來(lái)預(yù)先選擇正確的參數(shù),通過(guò)Button的click屬性來(lái)讀取這些參數(shù)打開(kāi)新的串口連接。隨后串口數(shù)據(jù)送入電腦虛擬的緩存區(qū),完成數(shù)據(jù)讀取工作。

      2 數(shù)據(jù)的圖表顯示

      在接收到串口數(shù)據(jù)之后,還要對(duì)串口讀入的字節(jié)串進(jìn)行分析判斷,這里需要運(yùn)用C#的控制流來(lái)分析字節(jié)串的內(nèi)容,分離出自己需要的字節(jié),再對(duì)應(yīng)各種傳感器的信號(hào)值與實(shí)際監(jiān)測(cè)值的關(guān)系單位化后得到實(shí)際的工業(yè)信息。為了能建立操作指導(dǎo)控制系統(tǒng)[4],方便監(jiān)測(cè)人員更加直觀(guān)地觀(guān)測(cè)工業(yè)設(shè)備的狀態(tài)變化,本文通過(guò)C#編程實(shí)現(xiàn)數(shù)據(jù)圖表的繪制。在Visual Studio中調(diào)用其中的graphic類(lèi)來(lái)操作,通過(guò)實(shí)例化graphic類(lèi),采用畫(huà)直線(xiàn)的方式建立數(shù)據(jù)實(shí)時(shí)的折線(xiàn)圖和柱狀圖。

      (1)折線(xiàn)圖的畫(huà)法

      在picturebox控件中,以次數(shù)為橫坐標(biāo),單位化后的數(shù)據(jù)為縱坐標(biāo)不斷生成點(diǎn),依次畫(huà)直線(xiàn)連接前后生成的兩點(diǎn),待畫(huà)滿(mǎn)圖框后自動(dòng)清屏,實(shí)現(xiàn)數(shù)據(jù)的折線(xiàn)圖顯示。圖1為用該方法記錄某次加速度數(shù)據(jù)的效果。

      圖1 折線(xiàn)圖演示效果

      (2)柱狀圖的畫(huà)法

      在picturebox控件中,以采集數(shù)據(jù)的序號(hào)確立橫坐標(biāo),單位化后的數(shù)據(jù)為縱坐標(biāo),采取在該坐標(biāo)點(diǎn)至picturebox底部畫(huà)粗線(xiàn),該點(diǎn)至picturebox頂部畫(huà)與picturebox背景色相同的粗線(xiàn)的方式來(lái)刷新柱狀圖數(shù)據(jù)。這種圖像化的顯示可以為工業(yè)現(xiàn)場(chǎng)進(jìn)行直觀(guān)、多維的指導(dǎo)操作。圖2為用該方法畫(huà)某次加速度數(shù)據(jù)的效果。

      圖2 柱狀圖演示效果

      3 數(shù)據(jù)報(bào)警

      一般地,采集的數(shù)據(jù)值都有一個(gè)安全范圍,超出了安全范圍就會(huì)不利于設(shè)備的正常使用,所以要采取報(bào)警機(jī)制來(lái)提醒現(xiàn)場(chǎng)人員。這里通過(guò)Visual Studio自帶的控件——聲音控件,用if語(yǔ)句判斷,如果在數(shù)據(jù)值設(shè)定的閾值范圍外就觸發(fā)報(bào)警音樂(lè)。使用PC自帶的揚(yáng)聲器發(fā)出警報(bào)聲。

      4 數(shù)據(jù)采集記錄

      數(shù)據(jù)的采集和記錄是分析數(shù)據(jù)必不可少的過(guò)程。通過(guò)串口采集來(lái)的數(shù)據(jù),往往刷新率不會(huì)很高,最大的波特率為115 200。正因?yàn)檫@樣,使用Visual Studio開(kāi)發(fā)編程,在PC上就能實(shí)現(xiàn)串口數(shù)據(jù)的采集記錄。

      一般地,C#開(kāi)發(fā)人員會(huì)優(yōu)先想到使用文件流來(lái)導(dǎo)出數(shù)據(jù),但是為了數(shù)據(jù)查看簡(jiǎn)便,還有利于將來(lái)分析,本文采用連接office辦公自動(dòng)化軟件中的 Excel[5],因?yàn)镋xcel表格直觀(guān),且后續(xù)有分析計(jì)算的功能。在Visual Studio 2010.net框架下C#編程是完全可以來(lái)自動(dòng)化Excel 2007表格。

      首先要在項(xiàng)目中添加引用Microsoft Excel 12.0 object library,這樣就可以調(diào)出Excel類(lèi)。

      在程序開(kāi)啟時(shí)就加載Excel應(yīng)用,創(chuàng)建配置Excel選項(xiàng):

      利用C#的try…catch語(yǔ)句預(yù)先在讀取數(shù)據(jù)的代碼段中設(shè)立好向Excel單元格內(nèi)填數(shù)據(jù)的語(yǔ)句。當(dāng)需要記錄時(shí)通過(guò)button控件觸發(fā)創(chuàng)建新的Excel文檔,這樣即執(zhí)行try{}中的語(yǔ)句往單元格記錄數(shù)據(jù):

      更改單元格坐標(biāo)就不斷繼續(xù)向Excel里填充由串口接收的數(shù)據(jù)。

      通過(guò)簡(jiǎn)單設(shè)置名為excel和save的兩個(gè)button控件就可實(shí)現(xiàn)建立Excel表格填充數(shù)據(jù)和觸發(fā)保存Excel文檔的功能。圖3是某次加速度數(shù)據(jù)采集時(shí)生成的Excel文檔。

      圖3 C#串口采集生成的Excel 2007文檔

      利用開(kāi)發(fā)效率高的Visual Studio來(lái)編寫(xiě)上位機(jī)程序,在串口數(shù)據(jù)采集處理方面有著很好的優(yōu)勢(shì),它簡(jiǎn)化了開(kāi)發(fā)負(fù)擔(dān),簡(jiǎn)化了設(shè)備。便于一般工程系統(tǒng)的數(shù)據(jù)采集和處理。

      [1]童長(zhǎng)飛.C8051F系列單片機(jī)開(kāi)發(fā)與C語(yǔ)言編程[M].北京:北京航空航天大學(xué)出版社,2005.

      [2]張毅剛,彭喜元.單片機(jī)原理及接口技術(shù)[M].北京:人民郵電出版社,2008.

      [3]STELLMAN A,GREENE J.Head First C# 中文版[M].林琪,譯.北京:中國(guó)電力出版社,2010.

      [4]潘新民,王燕芳.微型計(jì)算機(jī)控制技術(shù)[M].北京:人民郵電出版社,1999.

      [5]微軟.C#app automates Excel[CP/OL].[2012-3-2].http://code.msdn.microsoft.com/CSAutomateExcel-7f89a439.

      猜你喜歡
      折線(xiàn)圖柱狀圖控件
      繪制和閱讀降水量柱狀圖
      Optimization Design of Miniature Air Quality Monitoring System Based on Multi-Sensor Fusion Technology
      基于Unity3D 的冒泡排序算法動(dòng)態(tài)可視化設(shè)計(jì)及實(shí)現(xiàn)
      關(guān)于.net控件數(shù)組的探討
      軟件(2018年7期)2018-08-13 09:44:42
      讓折線(xiàn)圖顯示在一個(gè)單元格中
      再多也不亂 制作按需顯示的折線(xiàn)圖
      美化Excel折線(xiàn)圖表
      基于Android平臺(tái)的柱狀圖組件的設(shè)計(jì)實(shí)現(xiàn)
      Mapgis在繪制鉆孔柱狀圖中的應(yīng)用
      就這樣玩會(huì)VBA中常見(jiàn)的自定義控件
      電腦迷(2012年24期)2012-04-29 00:44:03
      永善县| 漳平市| 广汉市| 仙桃市| 诏安县| 闵行区| 揭东县| 建宁县| 定南县| 射洪县| 鹤山市| 南投县| 怀仁县| 西畴县| 靖安县| 屏南县| 沅陵县| 厦门市| 丽江市| 多伦县| 中宁县| 贵州省| 抚顺市| 西林县| 盈江县| 监利县| 达州市| 鄂托克前旗| 赤峰市| 临泉县| 大埔县| 泰兴市| 永善县| 石渠县| 阿克陶县| 和林格尔县| 文水县| 黄山市| 鄂伦春自治旗| 冕宁县| 贵阳市|