基于總線偵聽技術(shù)的現(xiàn)場顯示儀表設(shè)計(jì)
1 引言
實(shí)現(xiàn)現(xiàn)場數(shù)據(jù)顯示的方法較多,有現(xiàn)場PC機(jī)、顯示屏和數(shù)顯儀表等等。與PC機(jī)、顯示屏等相比,數(shù)碼管顯示儀表具有價(jià)格低廉的優(yōu)點(diǎn),同時(shí)也較適應(yīng)于現(xiàn)場惡劣的生產(chǎn)環(huán)境。
我們承擔(dān)了武鋼礦業(yè)集團(tuán)大冶鐵礦豎爐球團(tuán)生產(chǎn)過程自動(dòng)化改造項(xiàng)目,采用了基于CAN總線的多層DCS控制網(wǎng)絡(luò),為了解決一些工段現(xiàn)場的數(shù)據(jù)顯示問題,我們設(shè)計(jì)了一種基于總線偵聽技術(shù)的現(xiàn)場智能顯示儀表。
2 系統(tǒng)結(jié)構(gòu)
大冶鐵礦球團(tuán)廠造球工段控制系統(tǒng)中,利用研華ADAM-5000系列智能I/O模塊實(shí)現(xiàn)數(shù)據(jù)采集和輸出功能,共包括3個(gè)ADAM-5000機(jī)架,分散在現(xiàn)場的3個(gè)工序里。3個(gè)ADAM-5000系列模塊、上位工控機(jī)相互之間采取RS485總線連接,組成底層RS485總線網(wǎng)絡(luò)。在該總線網(wǎng)絡(luò)內(nèi)數(shù)據(jù)通信采用ADAM-5000的通信協(xié)議。系統(tǒng)結(jié)構(gòu)圖如圖1所示。
造球工段現(xiàn)場智能顯示儀表的數(shù)據(jù)來源于對RS485總線上的數(shù)據(jù)偵聽。上位PC機(jī)數(shù)據(jù)傳輸?shù)墓ぷ鞣绞绞前凑誂DAM-5000模塊幀格式,將要發(fā)送的命令在485總線上發(fā)往下位機(jī)ADAM-5000各模塊。在數(shù)據(jù)幀中包含應(yīng)該接收命令的下位機(jī)的正確地址,只有與幀中目標(biāo)地址一致的下位機(jī)才能接收命令幀??偩€偵聽技術(shù)突破了這一限制,它實(shí)時(shí)地對總線上傳輸?shù)臄?shù)據(jù)進(jìn)行動(dòng)態(tài)地把握,它將總線上傳輸?shù)膸y(tǒng)統(tǒng)接收下來,在從偵聽微機(jī)的串口偵聽到所有通訊數(shù)據(jù)后,對通訊數(shù)據(jù)進(jìn)行分析和破譯工作,從而得到需要的數(shù)據(jù)。
3 現(xiàn)場顯示儀表硬件組成
數(shù)碼管顯示儀表的硬件原理圖如圖2所示,它由AT89C52單片機(jī)、數(shù)碼顯示電路和RS485接口電路組成。RS485總線收發(fā)器采用了TI出品的SN75176;由于需要顯示的數(shù)據(jù)較多,且現(xiàn)場對數(shù)字顯示器亮度有較高要求,本方案采用靜態(tài)顯示。為了節(jié)約單片機(jī)資源,采用了帶選通功能的串轉(zhuǎn)并芯片CD4094作為顯示驅(qū)動(dòng)器件,這樣20多位數(shù)碼顯示只占用了3根單片機(jī)I/O線資源,如圖3所示。
在現(xiàn)場顯示儀表實(shí)際工作中,AT89C52單片機(jī)首先通過RS485總線收發(fā)器SN75176芯片對RS485總線上的數(shù)據(jù)幀進(jìn)行接收,接著對數(shù)據(jù)幀進(jìn)行分析和選擇,得到需要的數(shù)據(jù)后送往數(shù)碼管顯示。
4 軟件實(shí)現(xiàn)
由于本系統(tǒng)只需要顯示ADAM-5000采集的部分模擬輸入數(shù)據(jù),故下面只介紹ADAM-5000系列中AI模塊的幀格式。它分為命令幀和響應(yīng)幀兩種。
ADAM-5000命令幀格式如表1所示。
{{分頁}}
表1 ADAM-5017命令幀格式
命令幀第一個(gè)字節(jié)為起始符,有$和#兩種形式。以$開頭的可獲取版本信息、校正AI模塊等;以#開頭的用來讀取5017通道值,是我們要用到的命令形式;地址范圍是00~FF;槽號i取值范圍為0~7;其它,在起始符為$時(shí),有9種形式,這里不予介紹。在起始符為#時(shí),有2種形式,一種為空,命令內(nèi)容為讀取i號槽模塊全部通道值;另一種為通道值j,命令內(nèi)容為讀取i號槽模塊第j號通道值。
ADAM-5000的響應(yīng)幀格式如表2所示。對于起始符為#的命令幀,有兩種響應(yīng)幀格式。
表2 ADAM-5017響應(yīng)幀格式
起始符為>,表示模塊收到的命令有效。其后為全部通道值或某一通道值,隨命令幀格式而定;起始符為?,表示5017收到的命令無效。其后地址與收到命令幀的地址相同。
偵聽軟件的關(guān)鍵在于接收總線上的數(shù)據(jù)幀,主要分為對命令幀的分析和對響應(yīng)幀的解析兩部分。在PC機(jī)與ADAM-5000通訊時(shí),顯示儀表不斷偵聽總線上傳輸?shù)臄?shù)據(jù)幀,判斷是命令幀后,將接收完整的幀地址與要顯示參數(shù)的幀地址相比較,相符則繼續(xù)偵聽ADAM-5000的響應(yīng)幀,將其中數(shù)據(jù)信息分離出來,送數(shù)碼管顯示;不相符則不采取任何動(dòng)作,等待下一個(gè)命令幀的到來。
通訊軟件采用C51語言編制,其中中斷子程序流程圖如圖4所示。
5 結(jié)束語
本文中設(shè)計(jì)的基于RS485總線偵聽技術(shù)的現(xiàn)場智能顯示儀表,應(yīng)用在大冶鐵礦豎爐球團(tuán)廠的造球工段中,確實(shí)地解決了其工段現(xiàn)場的數(shù)據(jù)顯示問題,且價(jià)格低廉,通用性好,能在其它系統(tǒng)中得到應(yīng)用。這種總線偵聽技術(shù)同樣適于CAN總線等其它現(xiàn)場總線。
評論