国产精品自在在线香蕉-国产精品自在线拍国产-国产精品自在线拍-国产精品自在线-国产精品自在欧美一区-国产精品自线在线播放

行業(yè)動態(tài)

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

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

時間:2017-07-27 06:36:09 來源:本站 點(diǎn)擊數(shù):677

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

1. 

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

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

2.串行通訊的基本原理

2.1串行通信原理

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

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

云網(wǎng)客1.jpg

串行口的典型代表是RS-232C及其兼容接口,有9針和25針兩類。現(xiàn)在的臺式PC機(jī)一般有三個RS 232串行口 COM1COM2COM3,通常COM1COM2都使用的是9D形連接器,而COM3 使用DB25針連接器。其中九針的串行口各針定義如表1所示.

云網(wǎng)客2.jpg

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

云網(wǎng)客3.jpg

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

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

DTR線:計(jì)算機(jī)中數(shù)據(jù)發(fā)往電子秤,表示計(jì)算機(jī)是否已準(zhǔn)備好。

RTS線:計(jì)算機(jī)中數(shù)據(jù)發(fā)往電子秤,表示計(jì)算機(jī)是否允許電子秤發(fā)回?cái)?shù)據(jù)。

DSR線:電子秤中數(shù)據(jù)發(fā)往計(jì)算機(jī),表示電子秤是否已做好操作準(zhǔn)備。

CTS線:電子秤中數(shù)據(jù)發(fā)往計(jì)算機(jī),表示電子秤是否允許發(fā)送數(shù)據(jù)。

2.2通信方式

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

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

2、查詢方式。由程序設(shè)計(jì)者負(fù)責(zé)讀取CommEvent的值并處理所發(fā)生的錯誤或事件。通常簡單的應(yīng)用 程序設(shè)計(jì)可采用這種辦法。

2.3串行通信控件的屬性

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

CommPort屬性:設(shè)置并返回通訊端口號。

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

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

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

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

Settings屬性:設(shè)置并返回波特率、奇偶校驗(yàn)、數(shù)據(jù)位、停止位參數(shù)。

InputLen屬性:設(shè)置并返回Input屬性從接收緩沖區(qū)讀取的字符數(shù)。

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

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

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

如下:

①數(shù)據(jù)傳輸速率可設(shè)置為9600bp、4800bps2400bps

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

云網(wǎng)客4.jpg

云網(wǎng)客5.jpg

4.電子秤實(shí)時數(shù)據(jù)釆集的實(shí)現(xiàn)

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

4.1數(shù)據(jù)的采集

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

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

Private Sub Form_Load()

MSComm 1. CommPort = 1 ‘使用

串口 1

MSComm 1.PortOpen = True ‘打 開串口 1

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

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

云網(wǎng)客6.jpg

4.2數(shù)據(jù)解碼處理

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

云網(wǎng)客7.jpg

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

5.結(jié)束語

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

 


主站蜘蛛池模板: 图片一区视频二区福利姬| 两根大肉大捧一进一出好爽视频殴美| 97人伦影院A级毛片梦见满身伤痕是什么前照 | 无遮挡又黄又刺激的视频视频| 久久夜色精品国产噜噜亚洲SV|国产成人精品 | 精品熟女少妇av久久深夜勾搭| 人妻少妇激情久久精品免下载| 亚洲GV天堂无码男同在线观看,我才12 | 中文字字幕人妻丝袜乱一区4区 | 国产午夜精品理论片九九九九久久久九九久久久久久 | 亚洲成AV人在线观看网址直播网站免费跳蛋| 日本Jan护士feeL高潮| 国产午夜精品无码专区在线九九 | 亚洲欧美日韩中文字幕视频屏幕| 亚洲一本之道高清,亚洲| 妖精无码视频网站大全免费| 永久免费AV无码网站4K国产岛国| 制服丝袜亚洲网站av| 免费国产在线视频六叶草| 成人国产一区二区三区精品不卡麻豆 | 一区二区三区四区在线播放Av| 中文字幕第12页1区2区3区| 站长工具 人妻无码| 人妻精品无码一区二区三区-亚洲 人妻精品无码一区二区三区在线看 | 精品国产午夜肉伦伦亚洲| 国产自啪精品视频网站丝袜app| 国产成人手机高清在线观看网站 | 亚洲第一第二官网| 国产又爽又黄又不遮挡视频,丰满又黄又爽少妇 | JJJ国产在线| 一级一级特黄女人精品毛片孕妇在线观看 | 国产亚洲精品国产艳妇短篇| 亚洲婷婷伊人不卡| 国产亚洲精久久久久久无码的演员有哪些 | 婷婷国产天堂久久五月天| 亚洲人妖一区二区三区人| 无码人妻一区二区三区枫叶| 国产午夜三级一区二区三律师| 亚洲白虎一区二区白虎一线天| 国产成人久久精品激情日韩电影免费 | 国内少妇偷人精品视频免费无码|