RS-485總線在汽車地衡計量系統(tǒng)中的應用
地衡計量是企業(yè)物資計量的主要手段之一,但在實際工作中其管理水平和方法不夠健全,尤其是技術手段落后,傳統(tǒng)測試儀基于手工操作,因而測量精度和工作效率難以滿足現(xiàn)實需要?;谑止す芾砟J?不僅易滋生人為作弊現(xiàn)象,而且各部門不能充分共享數(shù)據(jù),使大量數(shù)據(jù)的統(tǒng)計、匯總、查詢及監(jiān)管等方面效率低下,影響企業(yè)的效益和發(fā)展。為此,稱重數(shù)據(jù)的自動采集、處理是完善監(jiān)控的重要一環(huán),不僅為企業(yè)建設具有自身特色的管理現(xiàn)代化的信息網(wǎng)絡提供了可靠數(shù)據(jù),也促進新的生產(chǎn)和管理理念形成,從而提升企業(yè)競爭力。RS-485總線收發(fā)器采用平衡發(fā)送和差分接收,具有靈敏度高、可靠性高、傳送距離遠、速度快、抗干擾能力強等優(yōu)點[1],在工業(yè)生產(chǎn)中得到了廣泛應用。因此,構(gòu)建RS-485總線型分布式監(jiān)控系統(tǒng)具有很高的實用價值。
本文引用地址:http://www.biyoush.com/article/201611/319044.htm1 分布式監(jiān)控系統(tǒng)硬件設計
1.1 概述
RS-485總線型分布式監(jiān)控系統(tǒng)以計算機作為上位機,以單片機為核心的測控儀作為下位機。為確保系統(tǒng)工作的可靠性和冗余性,所設計分布式系統(tǒng)采用雙方案方式,即上位機工作方案和測控儀工作方案。以上位機工作方案為主,測控儀工作方案為鋪,當分布式系統(tǒng)某通道或通信出現(xiàn)故障時,各測控儀可自主工作。
1.2 分布式系統(tǒng)總體設計
根據(jù)分布式系統(tǒng)工作方式要求和硬件組態(tài)設計思想,采用分層體系結(jié)構(gòu)。系統(tǒng)上位機選用具有高可靠性和適用于工業(yè)環(huán)境的IPC ( industrial personal com-puter)作為管理站,自主開發(fā)測控儀,既能獨立完成測試工作,也提供RS-485通信接口,在IPC的RS-232端口加一塊MODEL1102 RS-232/RS-485接口轉(zhuǎn)換模塊,組成RS-485網(wǎng)絡分布式監(jiān)控系統(tǒng)[2]。
分布式監(jiān)控系統(tǒng)能確保當某個測控儀通道出現(xiàn)故障時,不影響上位機對其它測控儀監(jiān)控;當上位機或網(wǎng)絡出現(xiàn)故障時,也不會影響現(xiàn)場控制級正常工作。綜合汽車地衡計量分布式監(jiān)控系統(tǒng)的實際需要,由測控儀和傳感器構(gòu)成測控通道,系統(tǒng)硬件總體結(jié)構(gòu)如圖1所示。
1.3 測控儀設計
測控儀設計主要考慮兩方面的要求:一方面根據(jù)系統(tǒng)總體雙工作方案要求,測控儀作為監(jiān)控系統(tǒng)的下位機,需要具備通信接口;另一方面針對測控儀的前向輸入通道傳感器動態(tài)范圍大、會產(chǎn)生振動干擾等特性的需要,要求信號調(diào)理模塊的放大倍數(shù)能根據(jù)輸入信號的大小自動調(diào)整。所設計汽車地衡測控儀系統(tǒng)硬件結(jié)構(gòu)如圖2所示。
1.3.1 測試模塊
測量電路模塊除AT89S52外,核心電路為信號調(diào)理及采集電路。其主要作用是把稱重傳感器信號轉(zhuǎn)換為AT89S52能接收的CMOS數(shù)字電平,利用高性能的模數(shù)轉(zhuǎn)換器,以實現(xiàn)稱重測試的工作。
1.3.2 輔助模塊
利用具有I2C總線的鐵電存儲器FM24C32解決分布式系統(tǒng)故障時,啟用單臺測控儀工作方案及時保存所測試的數(shù)據(jù),待分布式系統(tǒng)正常工作后,及時把所儲存數(shù)據(jù)傳送到上位計算機中[3]。利用具有I2C總線的時鐘芯片DS1307進行時間設置和測試時間標志。利用具有I2C總線的ZLG7290鍵盤和顯示器控制芯片[4],根據(jù)測控儀的操作要求,設置按鍵的功能,主要包括時間、批號設置的數(shù)字鍵,測試、查詢、打印和數(shù)據(jù)上傳等功能鍵;顯示信息主要包括測控儀工作狀態(tài)和有關測量結(jié)果的數(shù)據(jù)。利用8255芯片實現(xiàn)對微型打印機的控制,解決單臺測控儀工作方案啟用時所需的輸出數(shù)據(jù)。MAX487芯片用于實現(xiàn)RS-485的串行通信,構(gòu)成以計算機為核心的RS-485總線型分布式測控系統(tǒng)。
2 系統(tǒng)軟件開發(fā)
系統(tǒng)軟件開發(fā)主要包括測控儀和上位機監(jiān)控軟件開發(fā)工作。測控儀以AT89S52為核心,選用方便實用、高效的KeilC51軟件作為開發(fā)平臺[5]。上位機軟件開發(fā)工具選用功能豐富和應用方便的VB編程軟件。
2.1 上位機監(jiān)控軟件開發(fā)
上位機的軟件開發(fā)工作主要圍繞三個方面:①建立企業(yè)所需的數(shù)據(jù)庫,為地衡工作的有效監(jiān)控提供充分的數(shù)據(jù)保障;②計算機管理模塊規(guī)劃和開發(fā)工作,人機交互接口立足于簡便、實用和友好的基本原則,并充分發(fā)揮計算機軟、硬件資源豐富的優(yōu)勢;③計算機與測控儀的通信,實現(xiàn)信息正常傳輸工作。在完成人機界面的窗體設計基礎上,利用模塊化和面向?qū)ο缶幊趟枷?進行實質(zhì)性地監(jiān)控程序開發(fā)工作。下面對上位機功能模塊的規(guī)劃和上、下位機通信模塊的工作原理作簡要說明。
2.1.1 功能模塊
計算機監(jiān)控主要利用上位機對各控制器工作參數(shù)實現(xiàn)全面監(jiān)視和控制,在上位機監(jiān)督和指導下完成稱重測控工作。根據(jù)系統(tǒng)的功能需求和VB軟件的特點,規(guī)劃上位機功能模塊,同時上位機中的功能模塊建立在通信程序和數(shù)據(jù)庫及數(shù)據(jù)表的基礎之上,監(jiān)控軟件功能模塊規(guī)劃如圖3所示。
上位機功能模塊的主要作用如下:
?、傧到y(tǒng)管理子模塊。完成用戶的增減、注冊、密碼的設置、完成系統(tǒng)初始化處理、系統(tǒng)自檢、系統(tǒng)退出功能。
?、诒O(jiān)控管理子模塊。實現(xiàn)計算機與測控儀通信,定時采集工作參數(shù),并直觀顯示所測試數(shù)據(jù),同時向測控儀發(fā)送控制命令,并實現(xiàn)系統(tǒng)故障診斷及處理。
?、蹫g覽打印子模塊。用于查詢和打印測試參數(shù),便于進行分析和統(tǒng)計。
④幫助子模塊。介紹軟件的使用方法、步驟和注意事項。
2.1.2 上位機與測控儀通信模塊
上位機與測控儀通信是RS-485總線型分布式測控系統(tǒng)的關健,利用AT89S52的串行通信口及MAX487芯片的接口電路實現(xiàn)與IPC通信。AT89S52單片機提供與計算機或其他串行設備連接的異步通信口,而VB提供便于圖形化接口的串口操作控件———Mscomm[6],并配合VB中的TIMER控件的定時功能,周期性地從串行口上取數(shù)據(jù),并進行數(shù)據(jù)處理。
由AT89S52所組成單片機應用系統(tǒng),即測控儀需要把工作參數(shù)和工作狀態(tài)及時傳遞到上位機中,同時,上位機利用其友好的界面,對測控儀進行初始化等工作,以實現(xiàn)兩者雙向通信。通信除了硬件電路外,還需統(tǒng)一兩者的通信協(xié)議。由于RS-485是一種半雙工通信協(xié)議,發(fā)送數(shù)據(jù)和接收數(shù)據(jù)共用同一物理通道,在任意時刻只允許一臺網(wǎng)絡終端設備處于工作狀態(tài),若有一臺以上的設備同時發(fā)送數(shù)據(jù),則會產(chǎn)生總線沖突,使整個系統(tǒng)通信癱瘓。本系統(tǒng)采用主從式查詢方式,即工控機給出某一下位機的地址碼,向所有下位機都發(fā)出詢問,當某一下位機接到的地址碼與本機地址碼相符時,響應指令,發(fā)送數(shù)據(jù),工控機接收數(shù)據(jù),否則不響應也不發(fā)送數(shù)據(jù)。其通信數(shù)據(jù)格式包括呼叫數(shù)據(jù)幀、發(fā)送數(shù)據(jù)幀、接收數(shù)據(jù)命令幀和應答幀[7]。如圖4所示即為計算機從AT89S52單片機接收數(shù)據(jù)過程示意圖。
上位機讀取某測控儀數(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
∥用于存放從測控儀中讀回參數(shù)值
CMD=“0F1H” ∥通信申請
ADR=zh∥zh=01第1臺測控儀的站號地址
CO=EOT+ADR+ENQ∥連接01站號的字符串
MSComm1.Output=CO
∥向測控儀發(fā)送連接命令字符串
Do
DUMMY=DoEvents()
∥等待接收測控儀回答的字符串
LoopUntilMSComm1. InBufferCount>=26
RS=MSComm1. input∥讀取接收緩沖區(qū)數(shù)據(jù)
cky_ydc=Mid$ (RS,2,2)∥取測控儀應答字符串
If cky_ydc=187 Then∥判斷通信是否正確
x=MsgBox(“通信連接錯誤!”,16):ExitFunction
else
CMD= CMD+ETX: LENS=LEN(CMD): BCC=0
∥生成BCC校驗和
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ā)送包含校驗和的新命令字符串
MSComm1.Output=TXD
∥向測控儀發(fā)送連接命令字符串
Do
DUMMY=DoEvents()
∥等待接收測控儀回答的字符串
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(“通信連接錯誤!”,16):ExitFunction
End If
FOR I=5 TO LENS
∥分解讀回的字符串,提取所需參數(shù)值到數(shù)組
ckcs_sz(I-4)=MID$ (RS, I,1)
∥ckcs_sz數(shù)組存放從測控儀中讀回的參數(shù)值
NEXT
End If
CallDisplay()∥調(diào)用顯示模塊,把提取的有效
數(shù)據(jù),顯示于上位相的工作界面中
End Function
上述程序段主要包括定義所需的變量、拼接發(fā)送字符串、通信的建立、數(shù)據(jù)校驗碼的產(chǎn)生以及有效數(shù)據(jù)的提取,為后續(xù)進一步處理和應用奠定了基礎。
2.2 測控儀軟件開發(fā)
測控儀軟件開發(fā)采用結(jié)構(gòu)化和模塊化設計方法,分為系統(tǒng)監(jiān)控程序和中斷服務程序兩大部分。其中每一部分又由許多功能子模塊構(gòu)成。監(jiān)控程序主要包括初始化模塊、測試與診斷模塊、顯示模塊和鍵盤掃描與處理等模塊。為提高系統(tǒng)工作的實時性,將A/D轉(zhuǎn)換、數(shù)據(jù)處理和串口通信等工作均安排在中斷服務中執(zhí)行,下面對測控系統(tǒng)主要模塊作簡要說明。
2.2.1 故障診斷程序模塊
為確保測控儀正常可靠地工作,在測控儀上電時,運行開機自診斷程序,檢測AT89S52中功能部件和應用系統(tǒng)外圍電路工作情況;主要包括ROM自檢、RAM自檢、定時器、A/D通道、FM24C32、DSN307、ZLG7290等模塊的自檢工作。利用自檢程序模塊,輸出直觀的工作狀態(tài)信息,為系統(tǒng)維護奠定良好基礎。
2.2.2 鍵掃描和顯示處理模塊
測控儀的人機接口主要體現(xiàn)在鍵盤、顯示和報警輸出方面。在自檢階段,對于不同檢測模塊的不同情況,分別顯示不同的字符信息;在實時監(jiān)控正常工作狀態(tài)時,其顯示內(nèi)容為所測試參數(shù)的大小;在鍵盤操作時,顯示其鍵盤操作內(nèi)容,如出現(xiàn)報警,其顯示器輸出相應報警項的提示信號。
鍵盤按鍵包括數(shù)字鍵和功能鍵,數(shù)字鍵主要用來校正時間、設置報警上、下限和批號輸入;功能鍵主要包括批號設置、日期設置、通道選擇、測試啟動、查詢、打印、數(shù)據(jù)存儲、數(shù)據(jù)上傳和報警清除等功能鍵。
3 結(jié)束語
本文介紹了一種基于RS-485總線的數(shù)據(jù)采集和控制系統(tǒng),以及VB語言在開發(fā)上位機軟件中的應用。在該測控系統(tǒng)的應用中,主控計算機與各測控點的單片機之間采用了RS-485串行通信總線,使測控網(wǎng)絡的連線簡單、傳輸距離長、信號傳輸穩(wěn)定可靠,取得了良好的控制效果。
總之,本方案一方面采用模塊化設計,體現(xiàn)了分布式控制的思想,便于維護和擴展;另一方面,通過建立完善的軟件握手信號及軟硬件的抗干擾措施,保證了系統(tǒng)間通信的穩(wěn)定性及數(shù)據(jù)傳輸?shù)臏蚀_性。因此,系統(tǒng)具有很高的性價比。基于RS-485總線汽車地衡分布式測控系統(tǒng)采用上位機監(jiān)控和常規(guī)測控儀工作方式,不僅功能完善實用,而且具有友好的人機界面,系統(tǒng)運行靈活高效。
參考文獻
[1]鞠杰,孫自強.基于RS-485總線的智能燈光控制系統(tǒng)[J].自動化儀表,2006,27(5):15-20.
[2]朱兆優(yōu).RS-485總線在遠程自動抄表系統(tǒng)中的應用[J].東華理工學院學報,2005,28(6):192-193.
[3]孫肖子,鄧建國,陳南,等.電子設計指南[M].北京:高等教育出版社,2006:474-475.
[4]李昌禧.智能儀表原理與設計[M].北京:化學工業(yè)出版社,2005:47-48.
[5]郁文,侯振鵬.C語言程序設計———使用MCS-51[M].北京:人民郵電出版社,2006:27-28.
[6]李世平.利用VB實現(xiàn)PC機與單片機通信[J].計算機與數(shù)字工程,2004,32(4):61-62.
[7]楊侃,朗文鵬,趙維琴.VB6用于PC機與MCS-51單片機多機串行通信[J].儀器儀表用戶,2001,8(2):33-34.
評論