基于RS-485總線的分布式故障診斷系統(tǒng)
1 rs-485總線概述
在自動化領(lǐng)域,隨著分布式控制系統(tǒng)的發(fā)展,迫切需要一種總線能適合遠(yuǎn)距離的數(shù)字通信。在rs-422標(biāo)準(zhǔn)的基礎(chǔ)上,eia研究出了一種支持多節(jié)點、遠(yuǎn)距離和接收高靈敏度的rs-485總線標(biāo)準(zhǔn)。
rs-485收發(fā)器采用平衡發(fā)送和差分接收,即在發(fā)送端,驅(qū)動器將ttl電平信號轉(zhuǎn)換成差分信號輸出;在接收端,接收器將差分信號轉(zhuǎn)換成ttl 電平,因此具有抑制共模干擾的能力,加上接收器具有高的靈敏度,能檢測低達(dá)200mv的電壓,使傳輸信號能在千米以外得到恢復(fù)。根據(jù)rs-485標(biāo)準(zhǔn),rs-485 收發(fā)器的最大傳輸速率為10mbps,最大電纜長度為4000英尺,總線上能連接32個收發(fā)器(sipex公司的sp485r允許在一條總線上連接400 個收發(fā)器),廣泛適用于遠(yuǎn)距離、多站式、分時通訊系統(tǒng)。在要求通信距離為幾十米到上千米時,由于rs-485總線僅需用一對雙絞線即可實現(xiàn)多站聯(lián)網(wǎng)構(gòu)成分布式系統(tǒng),且設(shè)備簡單、價格低廉,使得eia rs-485成為工業(yè)應(yīng)用中數(shù)據(jù)傳輸?shù)氖走x標(biāo)準(zhǔn)。
當(dāng)前自動控制系統(tǒng)中常用的網(wǎng)絡(luò),如現(xiàn)場總線can、profibus、interbus-s、cc-link以及arcnet的物理層都是基于rs- 485標(biāo)準(zhǔn)的。
2 系統(tǒng)方案
本系統(tǒng)應(yīng)用于某汽車噴涂生產(chǎn)線,生產(chǎn)線控制系統(tǒng)按照工藝分布劃分為5個區(qū),分別由5臺三菱q系列plc控制,plc間以三菱 melsecnet/h數(shù)據(jù)鏈路聯(lián)網(wǎng)。在整個車間內(nèi)5個控制區(qū)內(nèi),分別又被細(xì)分為數(shù)個子區(qū)域,累計共有73個子區(qū),每1個子區(qū)設(shè)1個操作站。操作站的主要功能是對本子區(qū)內(nèi)的設(shè)備運行狀況進(jìn)行監(jiān)測,當(dāng)有故障發(fā)生時,應(yīng)有詳細(xì)的故障診斷信息。方案要求簡示如圖1。
圖1 系統(tǒng)方案簡示
通過對方案要求的仔細(xì)分析,綜合比較計算機終端和工業(yè)觸摸屏等常用的操作界面設(shè)備,最終決定采用一種帶rs485通訊功能的漢字顯示設(shè)備dp210,這種顯示設(shè)備帶有專有通訊協(xié)議,外部指令可與其進(jìn)行通訊讀取或改變其內(nèi)部寄存器的值,從而改變顯示屏上與該寄存器鏈接的文字內(nèi)容。這樣硬件方案基本確定,每臺 plc端增加串口通訊模塊qj71c24來進(jìn)行rs485串行通訊,每個操作站配備一臺上述漢顯示設(shè)備,用以動態(tài)顯示設(shè)備狀態(tài)信息。
2.1 dp210簡介
dp210是一種適用于簡單用戶界面的終端操作設(shè)備,內(nèi)部帶有128個字寄存器,它可以顯示中英文字符或數(shù)字,并有簡單圖形顯示功能。
dp210內(nèi)置有rs422通訊功能,可作為從站以專有通訊協(xié)議與外部智能設(shè)備進(jìn)行通訊,在通訊過程中,外部設(shè)備通過專門指令可改變其內(nèi)部任意字寄存器的值,從而改變屏上的顯示內(nèi)容,實時顯示現(xiàn)場設(shè)備信息。
(1) dp210通訊協(xié)議
外部設(shè)備可通過串行通訊讀取或改變dp210內(nèi)部的128個字寄存器的值,通訊過程中,plc充當(dāng)主站(master),dp210充當(dāng)從站 (slaver),主站發(fā)起通訊,向從站發(fā)送讀/寫指令,從站在正確接收到該指令后,將根據(jù)指令要求返回一幀確認(rèn)信息。
協(xié)議采用二進(jìn)制通訊方式,格式如下所述:
讀指令(讀dp210內(nèi)部字寄存器的值)
plc端發(fā)送幀:node no. `r` address length sum
dp210端返回幀:
node no. status address length data sum
寫指令(寫dp210內(nèi)部字寄存器的值)
plc端發(fā)送幀:
node no. `w` address length data sum
dp210端返回幀:
node no. status sum
node no. : dp210顯示器站號,范圍1-255
command : `r`/`w` 分別用來區(qū)分讀/寫寄存器,在通訊幀中用16進(jìn)制數(shù)52h或57h表示
address : 要讀寫的寄存器(mw)開始地址號(0-127)
length : 要讀寫的寄存器個數(shù)(1-128)
data : 從dp210讀出或?qū)懭氲絛p210寄存器中去的值
sum : 和校驗(前面所有字節(jié)值的和與100h取模后的值) (若值為5ah,則忽略該值)
status : 返回通訊狀態(tài)。意義如下: 0—正常;1— 地址錯誤;2—長度錯誤;3—地址范圍超限(開始地址+長度 >128);4—指令錯誤。
2.2 plc串行通訊技術(shù)
三菱各系列plc均有用于實現(xiàn)串行通訊的通訊模塊,該種模塊既可用于計算機監(jiān)控plc,又可用于實現(xiàn)plc系統(tǒng)與外部智能設(shè)備的自由協(xié)議通訊,具有很廣泛的實用性。本方案中所采用的q系列串行通訊模塊qj71c24就是這一類模塊中最強的一款,它體積小巧而且功能強大,通訊速率最高可達(dá) 115200bps,而且q系列plc有專用于該模塊自由協(xié)議通訊的高級指令,能方便快捷地實現(xiàn)與外部設(shè)備的串行通訊。
三菱q系列plc串行通訊專用指令主要有接收、發(fā)送指令,可進(jìn)行ascii通訊,也可進(jìn)行二進(jìn)制通訊,還有用于清除通訊緩沖區(qū)的清除指令,下面對這3條指令的用法作簡要介紹:
(1) 發(fā)送指令:g.output ux xx1 xx2 xx3
ux:用來發(fā)送數(shù)據(jù)的串行通訊模塊所在的地址
xx1:發(fā)送指令控制參數(shù)區(qū)開始地址,占用連續(xù)3個字寄存器
xx2:待發(fā)送數(shù)據(jù)存儲的開始地址,長度由xx1中參數(shù)指令
xx3: 用來存儲指令執(zhí)行后的結(jié)果(成功或失敗),占用連續(xù)2個位寄存器
(2) 接收指令:g.input ux xx1 xx2 xx3
ux:用來接收數(shù)據(jù)的串行通訊模塊所在的地址
xx1:接收指令控制參數(shù)區(qū)開始地址,占用連續(xù)4個字寄存器
xx2:用來存儲收到數(shù)據(jù)的寄存器開始地址
xx3:用來存儲指令執(zhí)行后的結(jié)果(成功或失敗),占用連續(xù)2個位寄存器
(3) 清除指令:zp.cset ux xx1 xx2 xx3 xx4
ux:要進(jìn)行清除操作的串行通訊模塊所在的地址
xx1:要清除的通訊通道號
xx2:清除指令控制參數(shù)區(qū)開始地址
xx3:備用
xx4:用來存儲指令執(zhí)行后的結(jié)果(成功或失敗),占用連續(xù)2個位寄存器
2.3 程序?qū)嵤┖喪?/p>
綜合整個方案要求,程序主要可分為2大部分:故障信息的采集與有序存儲、故障信息的發(fā)布顯示。
(1) 故障信息的采集與有序存儲
故障信息的采集可以借用“事件觸發(fā)”機制來描述,當(dāng)故障發(fā)送的瞬間,程序立即采取措施,將該故障的相關(guān)信息記錄下來,在本方案中,我們采用了觸點上升沿調(diào)用子程序的編程手法,來進(jìn)行這項工作,在要求程序反應(yīng)更為靈敏的場合,可以采用中斷處理的方法來完成。[!--empirenews.page--]
無論是使用中斷處理還是普通掃描上升沿方式來捕捉故障,要建立一個完整的故障信息診斷發(fā)布系統(tǒng),更為重要的是要有一個靈活實用的存儲機制。在這種機制下,針對故障的發(fā)生、排除都應(yīng)有相應(yīng)的程序操作與之對應(yīng),為此,我們建立了一個較簡單的數(shù)據(jù)結(jié)構(gòu)形式,來配合這些數(shù)據(jù)操作,結(jié)構(gòu)如圖2所示
圖2 數(shù)據(jù)結(jié)構(gòu)
在圖2中,每一站的故障記錄數(shù)都根據(jù)實際情況規(guī)定1個最大值,每1個故障記錄都規(guī)定為固定長度,這樣,每個plc內(nèi)都為下轄每個操作站設(shè)置了一個固定長度的存儲表,同時,對應(yīng)故障的發(fā)生與消除,有相應(yīng)的子程序來進(jìn)行數(shù)據(jù)表的操作,添加或刪除故障記錄。
(2) 故障信息的發(fā)布顯示
顯示器的內(nèi)部寄存器已經(jīng)預(yù)先鏈接到其顯示畫面中,這樣只要plc通過通訊將當(dāng)前應(yīng)顯示的故障記錄信息寫入內(nèi)部寄存器,就可達(dá)到信息發(fā)布的目的。如果操作站發(fā)生翻頁操作,則在plc接收到該信號后,它將下一頁的故障信息寫入到顯示器的內(nèi)部寄存器,實現(xiàn)翻頁功能。
由于在同一時刻plc只能與1臺顯示器通訊,因此信息的刷新實際上是一種輪詢機制,從第一臺操作站開始,當(dāng)所有的顯示器都更新過一遍后,這一段時間可以稱為刷新時間,rs-485串行通訊的通訊速率并不太高,所以為了改善刷新時間過長的狀況,我們采取了一次通訊發(fā)送多條記錄的方式,使用戶在翻頁時不會感到很明顯的延遲。
3 結(jié)束語
rs-485是大多數(shù)工業(yè)現(xiàn)場總線的基礎(chǔ),它實現(xiàn)起來具有成本低,實施簡便等顯著優(yōu)點,但又兼有速度較低、實時性不高等缺陷,雖如此,對于人機交互不甚頻繁而終端較多的情況仍有較高使用價值。