<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > RS-485總線在汽車(chē)地衡計(jì)量系統(tǒng)中的應(yīng)用

          RS-485總線在汽車(chē)地衡計(jì)量系統(tǒng)中的應(yīng)用

          作者: 時(shí)間:2016-11-20 來(lái)源:網(wǎng)絡(luò) 收藏
            0 引言

            地衡計(jì)量是企業(yè)物資計(jì)量的主要手段之一,但在實(shí)際工作中其管理水平和方法不夠健全,尤其是技術(shù)手段落后,傳統(tǒng)測(cè)試儀基于手工操作,因而測(cè)量精度和工作效率難以滿足現(xiàn)實(shí)需要?;谑止す芾砟J?不僅易滋生人為作弊現(xiàn)象,而且各部門(mén)不能充分共享數(shù)據(jù),使大量數(shù)據(jù)的統(tǒng)計(jì)、匯總、查詢及監(jiān)管等方面效率低下,影響企業(yè)的效益和發(fā)展。為此,稱重?cái)?shù)據(jù)的自動(dòng)采集、處理是完善監(jiān)控的重要一環(huán),不僅為企業(yè)建設(shè)具有自身特色的管理現(xiàn)代化的信息網(wǎng)絡(luò)提供了可靠數(shù)據(jù),也促進(jìn)新的生產(chǎn)和管理理念形成,從而提升企業(yè)競(jìng)爭(zhēng)力。RS-485總線收發(fā)器采用平衡發(fā)送和差分接收,具有靈敏度高、可靠性高、傳送距離遠(yuǎn)、速度快、抗干擾能力強(qiáng)等優(yōu)點(diǎn)[1],在工業(yè)生產(chǎn)中得到了廣泛應(yīng)用。因此,構(gòu)建RS-485總線型分布式監(jiān)控系統(tǒng)具有很高的實(shí)用價(jià)值。

          本文引用地址:http://www.ex-cimer.com/article/201611/319044.htm

            1 分布式監(jiān)控系統(tǒng)硬件設(shè)計(jì)

            1.1 概述

            RS-485總線型分布式監(jiān)控系統(tǒng)以計(jì)算機(jī)作為上位機(jī),以單片機(jī)為核心的測(cè)控儀作為下位機(jī)。為確保系統(tǒng)工作的可靠性和冗余性,所設(shè)計(jì)分布式系統(tǒng)采用雙方案方式,即上位機(jī)工作方案和測(cè)控儀工作方案。以上位機(jī)工作方案為主,測(cè)控儀工作方案為鋪,當(dāng)分布式系統(tǒng)某通道或通信出現(xiàn)故障時(shí),各測(cè)控儀可自主工作。

            1.2 分布式系統(tǒng)總體設(shè)計(jì)

            根據(jù)分布式系統(tǒng)工作方式要求和硬件組態(tài)設(shè)計(jì)思想,采用分層體系結(jié)構(gòu)。系統(tǒng)上位機(jī)選用具有高可靠性和適用于工業(yè)環(huán)境的IPC ( industrial personal com-puter)作為管理站,自主開(kāi)發(fā)測(cè)控儀,既能獨(dú)立完成測(cè)試工作,也提供RS-485通信接口,在IPC的RS-232端口加一塊MODEL1102 RS-232/RS-485接口轉(zhuǎn)換模塊,組成RS-485網(wǎng)絡(luò)分布式監(jiān)控系統(tǒng)[2]。

            分布式監(jiān)控系統(tǒng)能確保當(dāng)某個(gè)測(cè)控儀通道出現(xiàn)故障時(shí),不影響上位機(jī)對(duì)其它測(cè)控儀監(jiān)控;當(dāng)上位機(jī)或網(wǎng)絡(luò)出現(xiàn)故障時(shí),也不會(huì)影響現(xiàn)場(chǎng)控制級(jí)正常工作。綜合汽車(chē)地衡計(jì)量分布式監(jiān)控系統(tǒng)的實(shí)際需要,由測(cè)控儀和傳感器構(gòu)成測(cè)控通道,系統(tǒng)硬件總體結(jié)構(gòu)如圖1所示。

            

            1.3 測(cè)控儀設(shè)計(jì)

            測(cè)控儀設(shè)計(jì)主要考慮兩方面的要求:一方面根據(jù)系統(tǒng)總體雙工作方案要求,測(cè)控儀作為監(jiān)控系統(tǒng)的下位機(jī),需要具備通信接口;另一方面針對(duì)測(cè)控儀的前向輸入通道傳感器動(dòng)態(tài)范圍大、會(huì)產(chǎn)生振動(dòng)干擾等特性的需要,要求信號(hào)調(diào)理模塊的放大倍數(shù)能根據(jù)輸入信號(hào)的大小自動(dòng)調(diào)整。所設(shè)計(jì)汽車(chē)地衡測(cè)控儀系統(tǒng)硬件結(jié)構(gòu)如圖2所示。

            

            1.3.1 測(cè)試模塊

            測(cè)量電路模塊除AT89S52外,核心電路為信號(hào)調(diào)理及采集電路。其主要作用是把稱重傳感器信號(hào)轉(zhuǎn)換為AT89S52能接收的CMOS數(shù)字電平,利用高性能的模數(shù)轉(zhuǎn)換器,以實(shí)現(xiàn)稱重測(cè)試的工作。

            1.3.2 輔助模塊

            利用具有I2C總線的鐵電存儲(chǔ)器FM24C32解決分布式系統(tǒng)故障時(shí),啟用單臺(tái)測(cè)控儀工作方案及時(shí)保存所測(cè)試的數(shù)據(jù),待分布式系統(tǒng)正常工作后,及時(shí)把所儲(chǔ)存數(shù)據(jù)傳送到上位計(jì)算機(jī)中[3]。利用具有I2C總線的時(shí)鐘芯片DS1307進(jìn)行時(shí)間設(shè)置和測(cè)試時(shí)間標(biāo)志。利用具有I2C總線的ZLG7290鍵盤(pán)和顯示器控制芯片[4],根據(jù)測(cè)控儀的操作要求,設(shè)置按鍵的功能,主要包括時(shí)間、批號(hào)設(shè)置的數(shù)字鍵,測(cè)試、查詢、打印和數(shù)據(jù)上傳等功能鍵;顯示信息主要包括測(cè)控儀工作狀態(tài)和有關(guān)測(cè)量結(jié)果的數(shù)據(jù)。利用8255芯片實(shí)現(xiàn)對(duì)微型打印機(jī)的控制,解決單臺(tái)測(cè)控儀工作方案啟用時(shí)所需的輸出數(shù)據(jù)。MAX487芯片用于實(shí)現(xiàn)RS-485的串行通信,構(gòu)成以計(jì)算機(jī)為核心的RS-485總線型分布式測(cè)控系統(tǒng)。

            2 系統(tǒng)軟件開(kāi)發(fā)

            系統(tǒng)軟件開(kāi)發(fā)主要包括測(cè)控儀和上位機(jī)監(jiān)控軟件開(kāi)發(fā)工作。測(cè)控儀以AT89S52為核心,選用方便實(shí)用、高效的KeilC51軟件作為開(kāi)發(fā)平臺(tái)[5]。上位機(jī)軟件開(kāi)發(fā)工具選用功能豐富和應(yīng)用方便的VB編程軟件。

            2.1 上位機(jī)監(jiān)控軟件開(kāi)發(fā)

            上位機(jī)的軟件開(kāi)發(fā)工作主要圍繞三個(gè)方面:①建立企業(yè)所需的數(shù)據(jù)庫(kù),為地衡工作的有效監(jiān)控提供充分的數(shù)據(jù)保障;②計(jì)算機(jī)管理模塊規(guī)劃和開(kāi)發(fā)工作,人機(jī)交互接口立足于簡(jiǎn)便、實(shí)用和友好的基本原則,并充分發(fā)揮計(jì)算機(jī)軟、硬件資源豐富的優(yōu)勢(shì);③計(jì)算機(jī)與測(cè)控儀的通信,實(shí)現(xiàn)信息正常傳輸工作。在完成人機(jī)界面的窗體設(shè)計(jì)基礎(chǔ)上,利用模塊化和面向?qū)ο缶幊趟枷?進(jìn)行實(shí)質(zhì)性地監(jiān)控程序開(kāi)發(fā)工作。下面對(duì)上位機(jī)功能模塊的規(guī)劃和上、下位機(jī)通信模塊的工作原理作簡(jiǎn)要說(shuō)明。

            2.1.1 功能模塊

            計(jì)算機(jī)監(jiān)控主要利用上位機(jī)對(duì)各控制器工作參數(shù)實(shí)現(xiàn)全面監(jiān)視和控制,在上位機(jī)監(jiān)督和指導(dǎo)下完成稱重測(cè)控工作。根據(jù)系統(tǒng)的功能需求和VB軟件的特點(diǎn),規(guī)劃上位機(jī)功能模塊,同時(shí)上位機(jī)中的功能模塊建立在通信程序和數(shù)據(jù)庫(kù)及數(shù)據(jù)表的基礎(chǔ)之上,監(jiān)控軟件功能模塊規(guī)劃如圖3所示。

            

            上位機(jī)功能模塊的主要作用如下:

           ?、傧到y(tǒng)管理子模塊。完成用戶的增減、注冊(cè)、密碼的設(shè)置、完成系統(tǒng)初始化處理、系統(tǒng)自檢、系統(tǒng)退出功能。

           ?、诒O(jiān)控管理子模塊。實(shí)現(xiàn)計(jì)算機(jī)與測(cè)控儀通信,定時(shí)采集工作參數(shù),并直觀顯示所測(cè)試數(shù)據(jù),同時(shí)向測(cè)控儀發(fā)送控制命令,并實(shí)現(xiàn)系統(tǒng)故障診斷及處理。

           ?、蹫g覽打印子模塊。用于查詢和打印測(cè)試參數(shù),便于進(jìn)行分析和統(tǒng)計(jì)。

           ?、軒椭幽K。介紹軟件的使用方法、步驟和注意事項(xiàng)。

            2.1.2 上位機(jī)與測(cè)控儀通信模塊

            上位機(jī)與測(cè)控儀通信是RS-485總線型分布式測(cè)控系統(tǒng)的關(guān)健,利用AT89S52的串行通信口及MAX487芯片的接口電路實(shí)現(xiàn)與IPC通信。AT89S52單片機(jī)提供與計(jì)算機(jī)或其他串行設(shè)備連接的異步通信口,而VB提供便于圖形化接口的串口操作控件———Mscomm[6],并配合VB中的TIMER控件的定時(shí)功能,周期性地從串行口上取數(shù)據(jù),并進(jìn)行數(shù)據(jù)處理。

            由AT89S52所組成單片機(jī)應(yīng)用系統(tǒng),即測(cè)控儀需要把工作參數(shù)和工作狀態(tài)及時(shí)傳遞到上位機(jī)中,同時(shí),上位機(jī)利用其友好的界面,對(duì)測(cè)控儀進(jìn)行初始化等工作,以實(shí)現(xiàn)兩者雙向通信。通信除了硬件電路外,還需統(tǒng)一兩者的通信協(xié)議。由于RS-485是一種半雙工通信協(xié)議,發(fā)送數(shù)據(jù)和接收數(shù)據(jù)共用同一物理通道,在任意時(shí)刻只允許一臺(tái)網(wǎng)絡(luò)終端設(shè)備處于工作狀態(tài),若有一臺(tái)以上的設(shè)備同時(shí)發(fā)送數(shù)據(jù),則會(huì)產(chǎn)生總線沖突,使整個(gè)系統(tǒng)通信癱瘓。本系統(tǒng)采用主從式查詢方式,即工控機(jī)給出某一下位機(jī)的地址碼,向所有下位機(jī)都發(fā)出詢問(wèn),當(dāng)某一下位機(jī)接到的地址碼與本機(jī)地址碼相符時(shí),響應(yīng)指令,發(fā)送數(shù)據(jù),工控機(jī)接收數(shù)據(jù),否則不響應(yīng)也不發(fā)送數(shù)據(jù)。其通信數(shù)據(jù)格式包括呼叫數(shù)據(jù)幀、發(fā)送數(shù)據(jù)幀、接收數(shù)據(jù)命令幀和應(yīng)答幀[7]。如圖4所示即為計(jì)算機(jī)從AT89S52單片機(jī)接收數(shù)據(jù)過(guò)程示意圖。

           

            上位機(jī)讀取某測(cè)控儀數(shù)據(jù)主要程序模塊如下:

            Private FunctionRD_cky(String zh)

            Dmi CMD, ADR, CO, znwkS1, SN, TXD AS String

            Dmi LENS, BCC, BCC1, I As Integer

            Dmi ckcs_sz(10) AsSingle

            ∥用于存放從測(cè)控儀中讀回參數(shù)值

            CMD=“0F1H” ∥通信申請(qǐng)

            ADR=zh∥zh=01第1臺(tái)測(cè)控儀的站號(hào)地址

            CO=EOT+ADR+ENQ∥連接01站號(hào)的字符串

            MSComm1.Output=CO

            ∥向測(cè)控儀發(fā)送連接命令字符串

            Do

            DUMMY=DoEvents()

            ∥等待接收測(cè)控儀回答的字符串

            LoopUntilMSComm1. InBufferCount>=26

            RS=MSComm1. input∥讀取接收緩沖區(qū)數(shù)據(jù)

            cky_ydc=Mid$ (RS,2,2)∥取測(cè)控儀應(yīng)答字符串

            If cky_ydc=187 Then∥判斷通信是否正確

            x=MsgBox(“通信連接錯(cuò)誤!”,16):ExitFunction

            else

            CMD= CMD+ETX: LENS=LEN(CMD): BCC=0

            ∥生成BCC校驗(yàn)和

            FOR I=1 TO LENS

            SN=MID$ (CMD, I,1):BCC=BCC+ASC(SN)

            NEXT

            BCC=BCCMOD 128: BCC=CHR$ (BCC)

            TXD=STX+CMD+BCC

            ∥發(fā)送包含校驗(yàn)和的新命令字符串

            MSComm1.Output=TXD

            ∥向測(cè)控儀發(fā)送連接命令字符串

            Do

            DUMMY=DoEvents()

            ∥等待接收測(cè)控儀回答的字符串

            LoopUntilMSComm1. InBufferCount>=26

            RS=MSComm1. input∥讀取接收緩沖區(qū)數(shù)據(jù)

            LENS=LEN(RS): BCC1=0

            FOR I=2 TO LENS

            SN=MID$ (RS, I,1):BCC1=BCC1+ASC(SN)

            NEXT

            IF BCC<>BCC1 THEN

            x=MsgBox(“通信連接錯(cuò)誤!”,16):ExitFunction

            End If

            FOR I=5 TO LENS

            ∥分解讀回的字符串,提取所需參數(shù)值到數(shù)組

            ckcs_sz(I-4)=MID$ (RS, I,1)

            ∥ckcs_sz數(shù)組存放從測(cè)控儀中讀回的參數(shù)值

            NEXT

            End If

            CallDisplay()∥調(diào)用顯示模塊,把提取的有效

            數(shù)據(jù),顯示于上位相的工作界面中

            End Function

            上述程序段主要包括定義所需的變量、拼接發(fā)送字符串、通信的建立、數(shù)據(jù)校驗(yàn)碼的產(chǎn)生以及有效數(shù)據(jù)的提取,為后續(xù)進(jìn)一步處理和應(yīng)用奠定了基礎(chǔ)。

            2.2 測(cè)控儀軟件開(kāi)發(fā)

            測(cè)控儀軟件開(kāi)發(fā)采用結(jié)構(gòu)化和模塊化設(shè)計(jì)方法,分為系統(tǒng)監(jiān)控程序和中斷服務(wù)程序兩大部分。其中每一部分又由許多功能子模塊構(gòu)成。監(jiān)控程序主要包括初始化模塊、測(cè)試與診斷模塊、顯示模塊和鍵盤(pán)掃描與處理等模塊。為提高系統(tǒng)工作的實(shí)時(shí)性,將A/D轉(zhuǎn)換、數(shù)據(jù)處理和串口通信等工作均安排在中斷服務(wù)中執(zhí)行,下面對(duì)測(cè)控系統(tǒng)主要模塊作簡(jiǎn)要說(shuō)明。

            2.2.1 故障診斷程序模塊

            為確保測(cè)控儀正??煽康毓ぷ?在測(cè)控儀上電時(shí),運(yùn)行開(kāi)機(jī)自診斷程序,檢測(cè)AT89S52中功能部件和應(yīng)用系統(tǒng)外圍電路工作情況;主要包括ROM自檢、RAM自檢、定時(shí)器、A/D通道、FM24C32、DSN307、ZLG7290等模塊的自檢工作。利用自檢程序模塊,輸出直觀的工作狀態(tài)信息,為系統(tǒng)維護(hù)奠定良好基礎(chǔ)。

            2.2.2 鍵掃描和顯示處理模塊

            測(cè)控儀的人機(jī)接口主要體現(xiàn)在鍵盤(pán)、顯示和報(bào)警輸出方面。在自檢階段,對(duì)于不同檢測(cè)模塊的不同情況,分別顯示不同的字符信息;在實(shí)時(shí)監(jiān)控正常工作狀態(tài)時(shí),其顯示內(nèi)容為所測(cè)試參數(shù)的大小;在鍵盤(pán)操作時(shí),顯示其鍵盤(pán)操作內(nèi)容,如出現(xiàn)報(bào)警,其顯示器輸出相應(yīng)報(bào)警項(xiàng)的提示信號(hào)。

            鍵盤(pán)按鍵包括數(shù)字鍵和功能鍵,數(shù)字鍵主要用來(lái)校正時(shí)間、設(shè)置報(bào)警上、下限和批號(hào)輸入;功能鍵主要包括批號(hào)設(shè)置、日期設(shè)置、通道選擇、測(cè)試啟動(dòng)、查詢、打印、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)上傳和報(bào)警清除等功能鍵。

            3 結(jié)束語(yǔ)

            本文介紹了一種基于RS-485總線的數(shù)據(jù)采集和控制系統(tǒng),以及VB語(yǔ)言在開(kāi)發(fā)上位機(jī)軟件中的應(yīng)用。在該測(cè)控系統(tǒng)的應(yīng)用中,主控計(jì)算機(jī)與各測(cè)控點(diǎn)的單片機(jī)之間采用了RS-485串行通信總線,使測(cè)控網(wǎng)絡(luò)的連線簡(jiǎn)單、傳輸距離長(zhǎng)、信號(hào)傳輸穩(wěn)定可靠,取得了良好的控制效果。

            總之,本方案一方面采用模塊化設(shè)計(jì),體現(xiàn)了分布式控制的思想,便于維護(hù)和擴(kuò)展;另一方面,通過(guò)建立完善的軟件握手信號(hào)及軟硬件的抗干擾措施,保證了系統(tǒng)間通信的穩(wěn)定性及數(shù)據(jù)傳輸?shù)臏?zhǔn)確性。因此,系統(tǒng)具有很高的性價(jià)比?;赗S-485總線汽車(chē)地衡分布式測(cè)控系統(tǒng)采用上位機(jī)監(jiān)控和常規(guī)測(cè)控儀工作方式,不僅功能完善實(shí)用,而且具有友好的人機(jī)界面,系統(tǒng)運(yùn)行靈活高效。

            參考文獻(xiàn)

            [1]鞠杰,孫自強(qiáng).基于RS-485總線的智能燈光控制系統(tǒng)[J].自動(dòng)化儀表,2006,27(5):15-20.

            [2]朱兆優(yōu).RS-485總線在遠(yuǎn)程自動(dòng)抄表系統(tǒng)中的應(yīng)用[J].東華理工學(xué)院學(xué)報(bào),2005,28(6):192-193.

            [3]孫肖子,鄧建國(guó),陳南,等.電子設(shè)計(jì)指南[M].北京:高等教育出版社,2006:474-475.

            [4]李昌禧.智能儀表原理與設(shè)計(jì)[M].北京:化學(xué)工業(yè)出版社,2005:47-48.

            [5]郁文,侯振鵬.C語(yǔ)言程序設(shè)計(jì)———使用MCS-51[M].北京:人民郵電出版社,2006:27-28.

            [6]李世平.利用VB實(shí)現(xiàn)PC機(jī)與單片機(jī)通信[J].計(jì)算機(jī)與數(shù)字工程,2004,32(4):61-62.

            [7]楊侃,朗文鵬,趙維琴.VB6用于PC機(jī)與MCS-51單片機(jī)多機(jī)串行通信[J].儀器儀表用戶,2001,8(2):33-34.



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();