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