国产又爽又黄又不遮挡视频,日日碰狠狠添天天爽不卡,久久棈精品久久久久久噜噜,影音先锋色AV男人资源网

汽車衡串口連續(xù)輸出數(shù)據(jù)的采集方法

時(shí)間:2017-08-19 04:34:41   點(diǎn)擊數(shù):

主要描述了8142 型稱重顯示儀表的串口數(shù)據(jù)的讀取方法, 在主要部分還使用了 U M L 軟件建模來輔助說明設(shè)計(jì)思路。

1.稱重顯示儀與計(jì)算機(jī)串口的連接方法

8142 型儀表具備 1 個(gè)串行口(9 ) 1 個(gè)并行口(25), 其中串行口與稱重傳感器連接接收稱重信號(hào) , 并行口可與計(jì)算機(jī)或大屏顯示器連接輸出數(shù)據(jù)。計(jì)算機(jī)與儀表的具體接線方法如圖 1 所示。

云網(wǎng)客1.jpg

2.數(shù)據(jù)輸出格式

在串口連接之前 , 可根據(jù)儀表的使用手冊(cè)改變儀表的串口輸出設(shè)置 , 本文的儀表串口輸出設(shè)置為波特率(1200)、數(shù)據(jù)位(7bits)、無校驗(yàn) 、停止位(1)、連續(xù)輸出 。儀表的連續(xù)輸出格式為 18 個(gè)字節(jié)(By tes)。具體輸出格式如表 1 所示 :

云網(wǎng)客2.jpg

其中 :<ST X > ASCII 起始符 (02H);狀態(tài)字A ,B ,C ;顯示重量 , 可能是毛重也可能是凈重 , 6 位不帶符號(hào)和小數(shù)點(diǎn)的數(shù)字 ;皮重 , 6 位不帶符號(hào)和小數(shù)點(diǎn)的數(shù)字 ;<CR > ASCII 回車符(ODH);<CKS > 可選的校驗(yàn)和。

通過串口調(diào)試軟件接收的數(shù)據(jù)樣例 :

20202020202020202020200D02293C202020202020202 02020200D 稱重重量的讀取

2 .1  串口設(shè)置

在了解了 8142 型儀表的串口通信設(shè)備和輸出格式之后就可以開發(fā)相應(yīng)的串口通信程序了 , 為了使串口通訊程序有一定的通用性 , 因此串口的波特率、數(shù)據(jù)位等將通過程序而不通過 Window s 設(shè)置。

要通過程序設(shè)置串口 , 首先應(yīng)該在窗體的設(shè)計(jì)時(shí)插入一個(gè) Serial Port 組件 , 然后在代碼窗口中輸入如下代碼 :

If N ot RS232 Is Nothing T hen RS232 =Nothing

Dim mBaudRate A s Integer  '傳輸速率

Dim mParity As Parity  '奇偶校驗(yàn)

Dim mDataBit A s Integer  '數(shù)據(jù)位

Dim mStopBit A s StopBits  '停止位

Dim mPortN ame As String mPortN ame =Com1

mBaudRate =1200 mParity ="Parity .None"

mDataBit =7

mStopBit =StopBits .One T ry

RS232 = N ew  SerialPort (mPortN ame ,

mBaudRate , mParity , mDataBit , mStopBit) Catch ex A s Exception

MessageBox .Show ("串口設(shè)置失敗" + ex . Message , "提示", MessageBoxButtons .OK , Message-

BoxIcon .Warning)

End T ry End If

本文通過 XM L 文檔來保存串口設(shè)置的參數(shù) , 用于保存串口參數(shù)的 XM L 文檔命名為 XlComSet .xml , 具體格式如下 :

 

xml version ="1 .0"? > <ComSet >

<Com ComName ="COM1"Rate ="1200"Dat-aBit — 7 Parity — None StopBit — One ReceiveN ull —0 DataChar= Unicode ">

/Com>

< Count Date= '20101018 " Number - "2 ">

/Count>

/ComSet>

其中:

ComName為串口號(hào)Rate為波特率、DataBit為數(shù)據(jù) 、Parity為奇偶校驗(yàn)StopBit為停止位、ReceiveNull 是否接收空字符DataChar為編碼方式。程序通過計(jì)時(shí) Timer)與串口通信(SerialPort)組件配合讀取串口數(shù) 據(jù),經(jīng)測(cè)試Timer組件的時(shí)間間隔設(shè)置為600ms,并且串 口的接收方式為按字節(jié)接收數(shù)據(jù)時(shí),所接收的串口數(shù)據(jù)連 續(xù)可讀,且與表1所描述的數(shù)據(jù)格式一致。

2.2串口數(shù)據(jù)的接收

串口接收的字節(jié)數(shù)據(jù)保存在長(zhǎng)度為501維數(shù)組 中,當(dāng)數(shù)組長(zhǎng)度等于50時(shí),停止接收串口數(shù)據(jù),交給計(jì)時(shí) 器處理,在計(jì)時(shí)器事件中通過for循環(huán)在接收的數(shù)據(jù)中尋 找數(shù)字13 (ASCII碼對(duì)應(yīng)0D),找到后截取從OD開始的 5到第10位,即重量數(shù)據(jù),再通過Chr函數(shù)將ASCII 轉(zhuǎn)換為字符型數(shù)據(jù),就可以得到正確的稱重?cái)?shù)據(jù)。具體處 理過程的順序如圖2所示。

云網(wǎng)客3.jpg

根據(jù)圖3所示的過程處理順序,給出稱重?cái)?shù)據(jù)截取的 實(shí)現(xiàn)代碼。具體代碼如下

Dim n As Integer

Dim Str(50) As Byte Dim Str1 (17) As Byte

Private Sub ComPort_ DataReceived (ByVal sender As ObjectByVal e As System. IO. Ports. SerialDataRe- ceivedEventArgs) Handles ComPort. DataReceived Dim Sy As Byte Sy = ComPort. ReadByte()

Str(n) = Sy n = n  1 If n > 50 Then n = 50 End If E nd Sub

Private Sub TimerCom_Tick (ByVal sender As Ob-ject 9 ByVal e As System. EventArgs ) Handles Timer-Com .Tick

txt Receive .Text = n =0

Dim i As Short For i = 0 To 50 IfStr(i) = 13 Then E xi t Fo r End If N ex t

Ifi< 30 Then

For j As Short = i  5 To i  10

txt Receive .Text += C hr ( St r (j))

N ex t End If E nd Su b

3汽車稱重窗體的設(shè)計(jì)思路

在稱重窗體中司鎊員首先選擇被稱重車輛的車牌號(hào) 碼,當(dāng)顯示重量的標(biāo)簽讀數(shù)穩(wěn)定不變時(shí),司鎊員點(diǎn)擊[接收 毛重]按鈕,讀取到的重量應(yīng)自動(dòng)減去車輛的皮重,從而得 出車輛凈重,并且鎊單編號(hào)應(yīng)根據(jù)當(dāng)前日期自動(dòng)加1,如 2010 10 10 001。為保證鎊單編號(hào)的唯一性,因此 其中001應(yīng)在點(diǎn)擊打印按鈕之后自動(dòng)加1。當(dāng)司鎊員點(diǎn) [接收皮重]按鈕,皮重Panel會(huì)被激活,皮重即空車重 量。點(diǎn)擊[保存]按鈕后,當(dāng)前讀取的重量應(yīng)替代之前保存 的皮重。具體操作方法應(yīng)如圖3所示。

云網(wǎng)客6.jpg

4.結(jié)束語

本文所述的汽車的串口連續(xù)輸出數(shù)據(jù)的采集方法 已經(jīng)應(yīng)用于實(shí)踐當(dāng)中。經(jīng)實(shí)踐證明,本方法切實(shí)可行,讀 數(shù)穩(wěn)定可靠。本方法可以用于其他采用重?cái)?shù)據(jù)采集,也可以為采用涉及到串 口通信的項(xiàng)目提供一定的技術(shù)參考。