• <rp id="wfxtb"><acronym id="wfxtb"></acronym></rp><em id="wfxtb"></em><dd id="wfxtb"><big id="wfxtb"><video id="wfxtb"></video></big></dd>
  • <rp id="wfxtb"></rp>

    <mark id="wfxtb"><center id="wfxtb"></center></mark>

      <rp id="wfxtb"><span id="wfxtb"><u id="wfxtb"></u></span></rp>

      <rp id="wfxtb"><object id="wfxtb"></object></rp>

      注意:訪問本站需要Cookie和JavaScript支持!請設置您的瀏覽器! 打開購物車 查看留言付款方式聯系我們
      初中電子 單片機教材一 單片機教材二
      搜索上次看見的商品或文章:
      商品名、介紹 文章名、內容
      首頁 電子入門 學單片機 免費資源 下載中心 商品列表 象棋在線 在線繪圖 加盟五一 加入收藏 設為首頁
      本站推薦:
      用VB進行串口實時數據采集
      文章長度[2317] 加入時間[2007/4/14] 更新時間[2023/10/24 17:53:52] 級別[0] [評論] [收藏]
      2003-6-4  偉網動力


      長沙交通學院信息與計算科學系 (410077) 李湘江
      ---- 本文介紹VB6.0利用MSComm通信控件,開發微機通過串口對工業儀表進行實時數據采集的編程技術。給出的程序代碼具有通用性,并有詳細的注釋,可以直接或稍加改動后用于其他數據采集或實時控制程序中。

      ----一臺工業專用實時檢測儀表,接高精度位移傳感器,用于測量微小形變或微量位移,儀表測量精度為0.01毫米,測量范圍最大值為50毫米。該儀表帶有一個9針的RS-232C 串口,能與微機進行串口數據通信,實時傳送檢測數據,通過微機軟件處理可實現工業實時監控。

      ----該儀表的串口數據通信協議是:數據傳輸速率為 9600bps,1位開始位,8位數據位,1位停止位,無奇偶校驗位。儀表每秒發送50幀檢測數據,每幀數據由4個字節組成。第一個字節定義為二進制常數0F0H,是每幀數據開始的標志字節;后面連續2個字節為數據字節,采用壓縮的BCD碼編碼方式,高位在前,低位在后,即一個字節表示兩位十進制數,則兩個字節表示四位十進制數,小數點采用固定形式,定義在兩字節中間;第四個字節為符號字節,該字節第八位為1,即:1XXXXXXX,則為負數;第八位為0,即: 0XXXXXXX,則為正數。

      ----例如:0F0H 26H 87H 80H 0F0H 34H 62H 00H 表示 -26.87 34.62。

      ----通信傳輸速率為9600bps,則最快速度1.04ms發送一個字節,儀表每秒發送50幀數據,每幀數據有4個字節,即每秒發送200個字節,平均5.0ms 發送一個字節,連續讀取串口數據時要在程序中添加循環等待程序。

      ----為了實現實時監測功能,接收數據的讀取要盡可能的快速,則設置MSComm1的屬性如下:

      RThreshold = 1
      接收緩沖區收到一個字節產生OnComm事件
      InputLen = 1 每次讀取一個字節

      ----儀表每秒發送50幀數據,微機收到一幀完整數據至少需要20 ms時間,然后再進行數據處理。如果微機在下一幀數據接收前即20ms內能將數據計算處理完畢,則接收緩沖區內只會保存有一幀數據,不會存有兩幀以上數據,接收緩沖區的大小不會影響實時監測效果(接收緩沖區>4字節),這時完全可以實現實時監測或實時控制;如果微機在20ms內不能將數據計算處理完畢,接收緩沖區設置得又很大,在數據計算處理完畢前,接收緩沖區內就會保存有兩幀以上數據,而且一次工作時間越長,緩沖區內滯留數據幀就越多,數據采集和數據處理之間產生逐漸增大的額外時間差,當接收緩沖區充滿后,時間差不再增大,固定在某一值,部分數據因不能及時采集到接收緩沖區中,數據產生丟失現象,真實工作情況就會和微機處理結果產生較大的時間差,對實時監測和實時控制很不利,這種情況下接收緩沖區的大小就會影響實時監測效果,所以接收緩沖區設置不能過大,以保證數據處理的實時性。

      ----設置接收數據模式采用二進制形式,即 InputMode=comInputModeBinary,但用Input屬性讀取數據時,不能直接賦值給 Byte 類型變量,只能通過先賦值給一個 Variant 類型變量,返回一個二進制數據的數組,再轉換保存到Byte類型數變量中。

      ----VB中有Byte類型變量,但沒有字節的位處理語句,符號字節的位處理要判斷符號字節的值是否大于 127,大于127則為負數;壓縮的BCD碼存入 Byte類型變量,VB系統只按十進制數處理,這要通過一個簡單算法換算,解壓BCD碼才能還原成十進制表示數值。假如a是Byte類型變量,D是Single類型變量,將一個壓縮的BCD 碼存入a中,則算法是:

      D=(a\16)*10 + a-(a\16)*16
      則D=a-(a\16)*6

      ----程序清單:

      ----在通用聲明中定義程序所用變量:

      Dim ab(4) As Byte
      ‘字節數據類型數組,用來存儲接收到的一組字節數據
      Dim av As Variant ‘用來從接收緩沖區讀取數據
      Dim i As Integer
      Dim j As Integer
      Dim w As Integer ‘接收數據個數計數器
      Dim b1 As Single
      Dim b2 As Single
      Dim WW As Single ‘十進制檢測值
      Dim MaxW As Single ‘最大值
      Dim MinW As Single ‘最小值

      ----在窗體中添加名為Command1的[開始]按鈕和名為 MSComm1的MSComm控件。

      ---- [開始]按鈕的Click事件處理程序主要是對MSComm1控制的參數初始化設置,程序中大部分參數在設計時可在MSComm1控制的屬性窗口中設置:

      Private Sub Command1_Click()
      ‘開始按鈕
      With MSComm1

      1、 本站不保證以上觀點正確,就算是本站原創作品,本站也不保證內容正確。
      2、如果您擁有本文版權,并且不想在本站轉載,請書面通知本站立即刪除并且向您公開道歉! 以上可能是本站收集或者轉載的文章,本站可能沒有文章中的元件或產品,如果您需要類似的商品請 點這里查看商品列表!
      本站協議。 版權信息。 關于我們。 本站地圖。 營業執照。 發票說明。 付款方式。 聯系方式
      深圳市寶安區西鄉五壹電子商行——粵ICP備16073394號-1;地址:深圳西鄉河西四坊183號;郵編:518102
      E-mail:51dz$163.com($改為@);Tel:(0755)27947428
      工作時間:9:30-12:00和13:30-17:30和18:30-20:30,無人接聽時可以再打手機13537585389
      91嫩草黄片动漫版,91色色天堂网,91小伙大屁股熟女高潮系列,97年轻水嫩的漂亮大学美女