利用RS-485總線髙速遠(yuǎn)距離傳輸抗干擾能力強(qiáng)、多點(diǎn)互聯(lián)的特點(diǎn),實(shí)現(xiàn)傳統(tǒng)地磅測(cè)試儀的升級(jí)換代,發(fā)揮集中管理、分散控 制的優(yōu)勢(shì)。以AT89S52應(yīng)用系統(tǒng)作為下位機(jī),完成具體測(cè)控任務(wù);計(jì)算機(jī)作為管理級(jí),對(duì)系統(tǒng)進(jìn)行全面監(jiān)控和管理。引入RS-485總 線的分布式測(cè)控系統(tǒng),簡化了傳統(tǒng)測(cè)控系統(tǒng)結(jié)構(gòu),既便于維護(hù)和提髙工作效率,又為信息化建設(shè)奠定良好基礎(chǔ),該方法在工業(yè)測(cè)控領(lǐng) 域具有廣泛的應(yīng)用價(jià)值。
0.引言
地磅計(jì)量是企業(yè)物資計(jì)量的主要手段之一,但在實(shí) 際工作中其管理水平和方法不夠健全,尤其是技術(shù)手段 落后,傳統(tǒng)測(cè)試儀基于手工操作,因而測(cè)量精度和工作 效率難以滿足現(xiàn)實(shí)需要?;谑止す芾砟J?,不僅易滋 生人為作弊現(xià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)爭力。
RS-485總線收發(fā)器采用平衡發(fā)送和差分接收,具 有靈敏度高、可靠性高、傳送距離遠(yuǎn)、速度快、抗干擾能 力強(qiáng)等優(yōu)點(diǎn),在工業(yè)生產(chǎn)中得到了廣泛應(yīng)用。因此, 構(gòu)建RS-485總線型分布式監(jiān)控系統(tǒng)具有很高的實(shí)用 價(jià)值。
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 can - puter)作為管理站,自主開發(fā)測(cè)控儀,既能獨(dú)立完成測(cè) 試工作,也提供RS-485通信接口,在IPC的RS-232端 口加一塊 M0DEL1102 RS-232/RS-485接口轉(zhuǎn)換模塊, 組成RS-485網(wǎng)絡(luò)分布式監(jiān)控系統(tǒng)。
分布式監(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í)正常工作。綜合汽車地衡計(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ì)地磅測(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輔助模塊
利用具有fC總線的鐵電存儲(chǔ)器FM24C32解決 分布式系統(tǒng)故障時(shí),啟用單臺(tái)測(cè)控儀工作方案及時(shí)保 存所測(cè)試的數(shù)據(jù),待分布式系統(tǒng)正常工作后,及時(shí)把所 儲(chǔ)存數(shù)據(jù)傳送到上位計(jì)算機(jī)中⑴。利用具有fC總線 的時(shí)鐘芯片DS1307進(jìn)行時(shí)間設(shè)置和測(cè)試時(shí)間標(biāo)志。 利用具有fC總線的ZLG7290鍵盤和顯示器控制芯 片,根據(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)軟件開發(fā)
系統(tǒng)軟件開發(fā)主要包括測(cè)控儀和上位機(jī)監(jiān)控軟件 開發(fā)工作。測(cè)控儀以AT89S52為核心,選用方便實(shí) 用、高效的KeilC51軟件作為開發(fā)平臺(tái)。上位機(jī)軟 件開發(fā)工具選用功能豐富和應(yīng)用方便的VB編程軟 件。
2. 1上位機(jī)監(jiān)控軟件開發(fā)
上位機(jī)的軟件開發(fā)工作主要圍繞三個(gè)方面:①建 立企業(yè)所需的數(shù)據(jù)庫,為地衡工作的有效監(jiān)控提供充 分的數(shù)據(jù)保障;②計(jì)算機(jī)管理模塊規(guī)劃和開發(fā)工作,人 機(jī)交互接口立足于簡便、實(shí)用和友好的基本原則,并充 分發(fā)揮計(jì)算機(jī)軟、硬件資源豐富的優(yōu)勢(shì);③計(jì)算機(jī)與測(cè) 控儀的通信,實(shí)現(xiàn)信息正常傳輸工作。在完成人機(jī)界 面的窗體設(shè)計(jì)基礎(chǔ)上,利用模塊化和面向?qū)ο缶幊趟?/span> 想,進(jìn)行實(shí)質(zhì)性地監(jiān)控程序開發(fā)工作。下面對(duì)上位機(jī) 功能模塊的規(guī)劃和上、下位機(jī)通信模塊的工作原理作 簡要說明。
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ù)庫及數(shù)據(jù)表的基礎(chǔ)之上,監(jiān)控軟 件功能模塊規(guī)劃如圖3所示。
上位機(jī)功能模塊的主要作用如下:
①系統(tǒng)管理子模塊。完成用戶的增減、注冊(cè)、密 碼的設(shè)置、完成系統(tǒng)初始化處理、系統(tǒng)自檢、系統(tǒng)退出 功能。
②監(jiān)控管理子模塊。實(shí)現(xiàn)計(jì)算機(jī)與測(cè)控儀通信, 定時(shí)采集工作參數(shù),并直觀顯示所測(cè)試數(shù)據(jù),同時(shí)向測(cè)控儀發(fā)送控制命令,并實(shí)現(xiàn)系統(tǒng)故障診斷及處理。
③瀏覽打印子模塊。用于查詢和打印測(cè)試參數(shù), 便于進(jìn)行分析和統(tǒng)計(jì)。
④幫助子模塊。介紹軟件的使用方法、步驟和注 意事項(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提 供便于圖形化接口的串口操作控件-一Mscomm161, 并配合VB中的TMER控件的定時(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ā) 出詢問,當(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ù)過程示 意圖。
上位機(jī)讀取某測(cè)控儀數(shù)據(jù)主要程序模塊如下:
Private Function RD_cky( String zh)
Dim CMD, ADR,⑴,znwkS1 , SN , TXD AS String Dim LENS, BCC , BCC1, I A s Integer Dim ckcs_sz( 10) As Single
//用于存放從測(cè)控儀中讀回參數(shù)值 CMD = ?F1H ” //通信申請(qǐng)
ADR =zh //zh=01第1臺(tái)測(cè)控儀的站號(hào)地址
CO = EOT +ADR + ENQ //連接01站號(hào)的字符串
MSComm 1. Oulput =CO
//向測(cè)控儀發(fā)送連接命令字符串
Do
DUMMY =DoEvents()
//等待接收測(cè)控儀回答的字符串 Loop UntilMSCcmm 1. InBuffeiCount> =26 RS=MSComm 1. input //讀取接收緩沖區(qū)數(shù)據(jù)
cky_ydc =M id $ (RS, 2,2) //取測(cè)控儀應(yīng)答字符串 f cky?dc = 187 Then //判斷通信是否正確
x =Msg3ox( 信連接錯(cuò)誤丨 ” ,16) : Exit Function else
CMD = CMD +ETX : LENS =LEN(CMD) : BCC =0
//生成BCC校驗(yàn)和
FOR I=1 TO LENS
SN =MD$ (CMD, I, 1) :BCC =BCC +ASC(SN)
N EXT
BCC =BCCMOD 128 : BCC =CHR$ (BCC)
TXD =STX +CMD +BCC
//發(fā)送包含校驗(yàn)和的新命令字符串 MSComm 1. Oulput = TXD
//向測(cè)控儀發(fā)送連接命令字符串
Do
DUMMY =DoEvents()
//等待接收測(cè)控儀回答的字符串 Loop UntilMSComm 1. InBuffeiCount> =26 RS=MSComm 1. input //讀取接收緩沖區(qū)數(shù)據(jù) LENS =LEN (RS) : BCC1 =0 FOR I=2 TO LENS
SN =MD$ (RS, 1,1) :BCC1 =BCC1 +ASC(SN)
N EXT
IF BCC < >BCC1 THEN
x =Msg3ox( “通信連接錯(cuò)誤丨 ” ,16) : Exit Function End If
FOR I=5 TO LENS
//分解讀回的字符串,提取所需參數(shù)值到數(shù)組 ckcs_sz(I- 4) =MD$ (RS, I, 1)
// ckcs—s數(shù)組存放從測(cè)控儀中讀回的參數(shù)值
N EXT End If
Call Disp lay () //調(diào)用顯示模塊,把提取的有效 數(shù)據(jù),顯示于上位相的工作界面中
End Function
上述程序段主要包括定義所需的變量、拼接發(fā)送字符串、通信的建立、數(shù)據(jù)校驗(yàn)碼的產(chǎn)生以及有 效數(shù)據(jù)的提取,為后續(xù)進(jìn)一步處理和應(yīng)用奠定了基 礎(chǔ)。
2 .2測(cè)控儀軟件開發(fā)
測(cè)控儀軟件開發(fā)采用結(jié)構(gòu)化和模塊化設(shè)計(jì)方 法,分為系統(tǒng)監(jiān)控程序和中斷服務(wù)程序兩大部分。 其中每一部分又由許多功能子模塊構(gòu)成。監(jiān)控程序 主要包括初始化模塊、測(cè)試與診斷模塊、顯示模塊和 鍵盤掃描與處理等模塊。為提高系統(tǒng)工作的實(shí)時(shí) 性,將A/D轉(zhuǎn)換、數(shù)據(jù)處理和串口通信等工作均安排 在中斷服務(wù)中執(zhí)行,下面對(duì)測(cè)控系統(tǒng)主要模塊作簡 要說明。
2. 2. 1 故障診斷程序模塊
為確保測(cè)控儀正??煽康毓ぷ?,在測(cè)控儀上電 時(shí),運(yùn)行開機(jī)自診斷程序,檢測(cè)AT89S52中功能部件 和應(yīng)用系統(tǒng)外圍電路工作情況;主要包括RCM自檢、 RAM 自檢、定時(shí)器、A/D 通道、FM24C32、DSN307、 ZLG7290等模塊的自檢工作。利用自檢程序模塊, 輸出直觀的工作狀態(tài)信息,為系統(tǒng)維護(hù)奠定良好基 礎(chǔ)。
2.2. 2 鍵掃描和顯示處理模塊
測(cè)控儀的人機(jī)接口主要體現(xiàn)在鍵盤、顯示和報(bào)警 輸出方面。在自檢階段,對(duì)于不同檢測(cè)模塊的不同情 況,分別顯示不同的字符信息;在實(shí)時(shí)監(jiān)控正常工作狀 態(tài)時(shí),其顯示內(nèi)容為所測(cè)試參數(shù)的大小;在鍵盤操作 時(shí),顯示其鍵盤操作內(nèi)容,如出現(xiàn)報(bào)警,其顯示器輸出 相應(yīng)報(bào)警項(xiàng)的提示信號(hào)。
鍵盤按鍵包括數(shù)字鍵和功能鍵,數(shù)字鍵主要用來 校正時(shí)間、設(shè)置報(bào)警上、下限和批號(hào)輸入;功能鍵主要 包括批號(hào)設(shè)置、日期設(shè)置、通道選擇、測(cè)試啟動(dòng)、查詢、打印、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)上傳和報(bào)警清除等功能鍵。
3.結(jié)束語
本文介紹了一種基于RS-485總線的數(shù)據(jù)采集和 控制系統(tǒng),以及VB語言在開發(fā)上位機(jī)軟件中的應(yīng)用。 在該測(cè)控系統(tǒng)的應(yīng)用中,主控計(jì)算機(jī)與各測(cè)控點(diǎn)的單 片機(jī)之間采用了 RS-485串行通信總線,使測(cè)控網(wǎng)絡(luò)的 連線簡單、傳輸距離長、信號(hào)傳輸穩(wěn)定可靠,取得了良 好的控制效果。
總之,本方案一方面采用模塊化設(shè)計(jì),體現(xiàn)了分布 式控制的思想,便于維護(hù)和擴(kuò)展;另一方面,通過建立 完善的軟件握手信號(hào)及軟硬件的抗干擾措施,保證了 系統(tǒng)間通信的穩(wěn)定性及數(shù)據(jù)傳輸?shù)臏?zhǔn)確性。因此,系 統(tǒng)具有很高的性價(jià)比?;?/span>RS-485總線地磅分 布式測(cè)控系統(tǒng)采用上位機(jī)監(jiān)控和常規(guī)測(cè)控儀工作方 式,不僅功能完善實(shí)用,而且具有友好的人機(jī)界面,系 統(tǒng)運(yùn)行靈活高效。