欧美激情视频一区二区三区免费,爱情岛论坛首页永久入口,性高朝久久久久久久3小时,97在线观看永久免费视频

行業(yè)動(dòng)態(tài)

當前位置:首頁(yè)>>新聞中心>>行業(yè)動(dòng)態(tài) 發(fā)布時(shí)間:2017-07-27 06:36:09

基于串行通信的電子秤實(shí)時(shí)數據采集技術(shù)研究

時(shí)間:2017-07-27 06:36:09 來(lái)源:本站 點(diǎn)擊數:679

在計算機與外部設備通信的過(guò)程中,計算機通過(guò)串行接口實(shí)時(shí)采集外部設備發(fā)送來(lái)的數據 是非常重要的通信方式之一,本文以計算機通過(guò)串行接口實(shí)時(shí)采集電子秤的數據為例,詳細論述了計算機串行通信的基本原理、電子秤的通信協(xié)議以及電子秤數據解碼,重點(diǎn)論述了利用串行口控件 MSCOM實(shí)現實(shí)時(shí)采集電子秤數據的通用方法。

1. 

隨著(zhù)計算機的普及與外圍設備技術(shù)的發(fā)展,計算機與外圍設備之間的通信顯得越來(lái)越重要,串行口通 信是目前計算機與外圍設備之間的重要的通信方式之一。由于串行通信是在一根傳輸線(xiàn)上一位一位的傳送 數據,其優(yōu)點(diǎn)是使用的傳輸線(xiàn)少,速度快,適合于遠距離傳輸。但對于那些與計算機相距不遠的人一機交 換設備和串行存儲的外部設備如終端、打印機、邏輯分析儀、磁盤(pán)等外部設備,采用串行方式交換數據也 很普遍。在計算機對外部設備的實(shí)時(shí)控制中,大多采用計算機的串行接口與外部設備進(jìn)行通信,所以串行 接口是計算機應用系統中常用的接口,而相應的接口應用程序也成為近年來(lái)研究的熱點(diǎn)。本文旨在通過(guò)計 算機串行接口實(shí)時(shí)采集電子秤的數據的實(shí)現,論述串行口通訊的原理以及如何利用串行口通信控件 MSCOM開(kāi)發(fā)計算機的基于串行口的應用軟件。

本文在Visual Basic 6.0開(kāi)發(fā)環(huán)境中利用Microsoft Communication控件實(shí)現計算機與電子秤的串行通 信。成功地實(shí)現了計算機實(shí)時(shí)采集電子秤的數據,并通過(guò)對采集到的數據進(jìn)行解碼處理并實(shí)時(shí)地將數據顯 示于計算機應用軟件上。

2.串行通訊的基本原理

2.1串行通信原理

串行通信是指外部設備和計算機之間使用一根數據信號線(xiàn),數據在一根數據信號線(xiàn)上按位進(jìn)行傳輸,每 一位數據都占據一個(gè)固定的時(shí)間長(cháng)度。但是由于高速率的要求,處于計算機內部的CPU與串口之間的通訊 仍然采用并行的通訊方式,所以串行口的本質(zhì)就是實(shí)現CPU與外圍數據設備的數據格式轉換(或者稱(chēng)為串 并轉換器)和控制信息(起始位和終止位插入和刪除,即當數據從外圍設備輸入計算機時(shí),數據格式由 (Bit)轉化為字節Byte)數據,并將相應的控制信息刪除;反之,當計算機發(fā)送數據到外圍設備時(shí),串 口又將字節數據轉化為位串數據,并將控制信息插入到位串數據隊列。

為實(shí)現串行通信,計算機的串行口內部結構設計如圖1所示,它是個(gè)雙緩沖的串行接口,包括一個(gè)發(fā) 送緩沖區SBUF)和一個(gè)接收緩沖區(SBUF),可以同時(shí)進(jìn)行數據的發(fā)送和接收,當計算機需要向外部設備發(fā)送數據時(shí),CPU首先將數據送入SBUF中,然后串行口一位一位向外發(fā)送,當一個(gè)字節全部發(fā)送后,串 行口發(fā)出中斷請求,CPU向緩沖區SBUF發(fā)送下一個(gè)字節的數據;計算機接收數據時(shí),串行口一位一位將從 外部接收的數據送入緩沖區,當一個(gè)字節的數據全部接收完以后,向CPU發(fā)出一個(gè)中斷請求,CPU將緩沖 區的數據取走,然后接收下一個(gè)字節數據。計算機的串行口與特定的定時(shí)器綁定在一起,通過(guò)該定時(shí)器可 以設置計算機串行口發(fā)送和接收的波特率,以適用不同的外部設備。

云網(wǎng)客1.jpg

串行口的典型代表是RS-232C及其兼容接口,有9針和25針兩類(lèi)?,F在的臺式PC機一般有三個(gè)RS 232串行口 COM1、COM2COM3,通常COM1COM2都使用的是9D形連接器,而COM3 使用DB25針連接器。其中九針的串行口各針定義如表1所示.

云網(wǎng)客2.jpg

當計算機通過(guò)串行口與外部設備進(jìn)行通信時(shí),首先將計算機串行口 TXB引腳與外部設備串行口的RXB 引腳相連,然后將計算機的串行口RXD引腳與外部設備的串行口 TXD引腳相連[1]。計算機串行口與外部設備串行口連接方式如圖2所示。

云網(wǎng)客3.jpg

在本文中,以XK3100 B2+的電子秤為例,該電子秤帶有一個(gè)9針的RS-232C串行接 口,能與計算機進(jìn)行串口數據通信,并實(shí)時(shí)傳送檢測數據到計算 機。連接時(shí),將連接電子秤串行口和計算機串行口的兩個(gè)接頭按 23,32的方式連接,如需要做到實(shí)時(shí)接收數據,還要將電 子秤的發(fā)送模式調到數據穩定后自動(dòng)發(fā)送狀態(tài)。

VB6.0環(huán)境下,米用Microsoft Communication控件來(lái)實(shí)現計算機與電子秤之間串行通信,進(jìn)行串行 通信時(shí)只需了解以下四根線(xiàn)的代號及作用。以下四根線(xiàn)的高電平/低電平狀態(tài)分別對應MSComm控件的相 應屬性的True/False值。

DTR線(xiàn):計算機中數據發(fā)往電子秤,表示計算機是否已準備好。

RTS線(xiàn):計算機中數據發(fā)往電子秤,表示計算機是否允許電子秤發(fā)回數據。

DSR線(xiàn):電子秤中數據發(fā)往計算機,表示電子秤是否已做好操作準備。

CTS線(xiàn):電子秤中數據發(fā)往計算機,表示電子秤是否允許發(fā)送數據。

2.2通信方式

VB6.0環(huán)境下,計算機與外部設備有兩種通訊方式

1、事件驅動(dòng),它是一種功能強大的處理問(wèn)題的方法。在實(shí)際工作中,往往要處理許多通信中的相關(guān)事件,例如:當線(xiàn)路數據到達計算機端或RTS信號線(xiàn)狀態(tài)發(fā)生變化時(shí),要求我們使用相應的事件來(lái)跟蹤和處 理,該控件是使用OnComm事件來(lái)實(shí)現的,主要包括檢測、數據處理和通信錯誤等方面的問(wèn)題,CommEvent 值返回最近的通信事件或錯誤的數字代碼。

2、查詢(xún)方式。由程序設計者負責讀取CommEvent的值并處理所發(fā)生的錯誤或事件。通常簡(jiǎn)單的應用 程序設計可采用這種辦法。

2.3串行通信控件的屬性

利用串行通信控件設計通信程序,關(guān)鍵是準確理解和設置串行通信控件的屬性。在VB6.0AcdveX MSCOMM.VBX提供了 27個(gè)關(guān)于通信控件方面的屬性,下面就部分屬性分別予以描述:

CommPort屬性:設置并返回通訊端口號。

RThreshold 屬性:在 MSComm 控件設置 CommEvent 屬性為 comEvReceive 并產(chǎn)生 OnComm 之前,設置并返回的要接收的字符數。

CTSHolding屬性:確定是否可通過(guò)查詢(xún)Clear To Send (CTS)線(xiàn)的狀態(tài)發(fā)送數據。Clear To Send是調制解調裝置發(fā)送到相聯(lián)計算機的信號,指示傳輸可以進(jìn)行。該屬性在設計時(shí)無(wú)效,在運行時(shí)為只讀。 SThreshold屬性:MSComm控件設置CommEvent屬性為ComEvSend并產(chǎn)生OnComm事件之前,設置并返回傳輸緩沖區中允許的最小字符數。

CDHolding屬性:通過(guò)查詢(xún)Carrier Detect (CD)線(xiàn)的狀態(tài)確定當前是否有傳輸。Carrier Detect是從調制解調裝置發(fā)送到相聯(lián)計算機的一個(gè)信號,指示調制解調裝置正在聯(lián)機。該屬性在設計時(shí)無(wú)效,在運行時(shí) 為只讀。

DSRHolding屬性:確定Data Set Ready (DSR)線(xiàn)的狀態(tài)。Data Set Ready信號由調制解調器發(fā)送到相連計算機,指示作好操作準備。該屬性在設計時(shí)無(wú)效,在運行時(shí)為只讀。

Settings屬性:設置并返回波特率、奇偶校驗、數據位、停止位參數。

InputLen屬性:設置并返回Input屬性從接收緩沖區讀取的字符數。

EOFEnable屬性:確定在輸入過(guò)程中MSComm控件是否尋找文件結尾EOF)字符。如果找到EOF 字符,將停止輸入并激活OnComm事件,此時(shí)CommEvent屬性設置為comEvEOF。

3.電子秤的串口通信協(xié)議

本文使用的電子秤是XK3100-B2+型,其串口數據通信協(xié)議規定

如下:

①數據傳輸速率可設置為9600bp、4800bps2400bps;

②數據格式:電子秤采用通用的RS232 UART信號,每10BIT為一個(gè)數據幀,幀格式如表2所示.

云網(wǎng)客4.jpg

云網(wǎng)客5.jpg

4.電子秤實(shí)時(shí)數據釆集的實(shí)現

VB6.0環(huán)境下通過(guò)串行通訊實(shí)現電子秤實(shí)時(shí)數據采集。

4.1數據的采集

在設計好計算機與電子秤的物理連接后,接著(zhù)設計應用軟件實(shí)時(shí)采集電子秤的稱(chēng)重數據,在VB6.0 新建一個(gè)標準EXE”工程,然后選擇工程/部件菜單項,在部件對話(huà)框中選擇“Microsoft Comm Control 6.0”,即可添加MSComm控件;再在窗體中依次布置如表3所示的控件并設置其屬性。

為了只要打開(kāi)此窗口即可接收數據,在Form窗口的程序代碼如下:

Private Sub Form_Load()

MSComm 1. CommPort = 1 ‘使用

串口 1

MSComm 1.PortOpen = True ‘打 開(kāi)串口 1

MSComm 1 .RThreshold = 1 ‘接收 數據后產(chǎn)生OnComm事件 End Sub

在設置完上面的程序后就可以進(jìn)行數 據采集,根據電子秤的協(xié)議規定電子秤一 次傳輸的是6幀數據,而在接收數據后是 采用的16進(jìn)制將數據存放的,將它存放到字符串HData中,以便在下個(gè)步驟中對數 據進(jìn)行處理并顯示于計算機的屏幕中。

云網(wǎng)客6.jpg

4.2數據解碼處理

根據電子秤發(fā)送的第二幀數據D3D4位的取值決定電子秤的稱(chēng)重模式,其稱(chēng)重模式分別是00 重模式;01計數模式;10百分比模式.根據第二幀數據的不同取值,分別對字符串進(jìn)行處理,如表4 示。然后將第三幀(顯示數值的最低字節)、第四幀(顯示數值的中間字節)、第五幀(顯示數值的最高字節)解碼成十進(jìn)制數;并根據第六幀數據的值確定本次稱(chēng)重是以公斤00H)為單位還是磅01H) 單位。最后將解碼后的數據顯示于計算機屏幕上。數據解碼流程示意圖如圖3所示。

云網(wǎng)客7.jpg

當一次稱(chēng)重過(guò)程結束,可以繼續下一次的稱(chēng)重,在程序設計過(guò)程中必須用程序設置計算機接收的波特 率。以保證計算機的接收的波特率和電子秤發(fā)送波特率相一致,不然會(huì )造成數據的丟失。

5.結束語(yǔ)

本文主要論述了基于串行通信的電子秤實(shí)時(shí)數據采集原理和實(shí)現方法,重點(diǎn)探討了如何利用高級語(yǔ)言 通過(guò)串行接口控制外部設備以實(shí)時(shí)采集數據,并將采集到的數據解碼成用戶(hù)所需的數據。很好地解決了電 子秤數據的實(shí)時(shí)采集,該方法具有很好的實(shí)用性和通用性,不同的電子秤只需修改解碼參數就可以適用。