鄧有緯,盛玉林,嚴(yán)凡華
(1.國(guó)電南京自動(dòng)化股份有限公司,南京 210032; 2.南京化學(xué)工業(yè)園熱電有限公司,南京 210047)
在我國(guó)燃煤發(fā)電機(jī)組中,煤耗統(tǒng)計(jì)依據(jù)主要是入爐煤皮帶秤計(jì)量數(shù)據(jù),但計(jì)量數(shù)據(jù)有些是通過(guò)可編程邏輯控制器(PLC)采集皮帶秤稱重顯示控制儀輸出的模擬量累計(jì)得到的,有些是通過(guò)PLC采集皮帶秤稱重顯示控制儀發(fā)出的脈沖值累計(jì)得到的,有些數(shù)據(jù)甚至是人工現(xiàn)場(chǎng)抄寫得到的。由于輸煤系統(tǒng)的強(qiáng)電磁干擾[1]以及人工抄寫時(shí)可能存在的差錯(cuò),使得數(shù)據(jù)的統(tǒng)計(jì)存在較大誤差,為了解決這一問(wèn)題,本文探討如何對(duì)入爐煤皮帶秤計(jì)量數(shù)據(jù)進(jìn)行準(zhǔn)確遠(yuǎn)傳,減少干擾及人工抄寫造成的誤差。
南京化學(xué)工業(yè)園熱電有限公司一期工程為3臺(tái)220 t/h鍋爐,二期擴(kuò)建工程為2臺(tái)1 025 t/h鍋爐,設(shè)置A/B兩側(cè)入爐煤皮帶,每條入爐煤皮帶各配置1臺(tái)電子皮帶秤進(jìn)行入爐煤計(jì)量。
輸煤程控系統(tǒng)通過(guò)PLC+上位機(jī)來(lái)完成系統(tǒng)的監(jiān)控與操作。PLC為施耐德Unity Quantum 67160雙機(jī)熱備系統(tǒng),上位機(jī)為iFIX4.0;入爐煤皮帶秤稱重顯示控制儀為拉姆齊Micro-TechTM2000系列。稱重顯示控制儀輸出4~20 mA信號(hào),接入輸煤程控系統(tǒng)PLC,以顯示皮帶秤瞬時(shí)流量;輸出無(wú)源節(jié)點(diǎn)信號(hào)接入輸煤程控系統(tǒng)高速計(jì)數(shù)模塊,供輸煤程控系統(tǒng)進(jìn)行累積值的計(jì)算,但皮帶速度未接入程控系統(tǒng)進(jìn)行監(jiān)視。各班組上煤后,人工抄寫稱重顯示控制儀數(shù)據(jù)并與輸煤程控系統(tǒng)累計(jì)值進(jìn)行比對(duì),最終以人工抄表數(shù)值為準(zhǔn)。為此,可以考慮將稱重顯示控制儀直接以通信的方式接入輸煤程控系統(tǒng)PLC,這樣就可以避免電流信號(hào)、無(wú)源節(jié)點(diǎn)信號(hào)受到干擾而造成誤差,也省去了人工抄表的麻煩。
拉姆齊Micro-TechTM2000系列稱重顯示控制儀是一種基于總線的微處理器儀表,可以根據(jù)需要選配1~2塊串口通信板,每塊串口通信板都有1個(gè)串行通道[2],可根據(jù)表1進(jìn)行配置;同時(shí),該控制儀還支持多種軟件通信協(xié)議,見表2。拉姆齊Micro-TechTM2000系列稱重顯示控制儀選擇不同的串行通信標(biāo)準(zhǔn)時(shí),需要更改串行通信板上跳線的位置,其端子上的連接也不一樣,具體參見儀表說(shuō)明書。
表1 Micro-TechTM2000系列稱重顯示控制儀支持的通信標(biāo)準(zhǔn)Tab.1 Communication standards supported by the Micro-TechTM 2000 series weighing display controller
表2 Micro-TechTM2000系列稱重顯示控制儀支持的通信協(xié)議Tab.2 Communication protocols supported by the Micro-TechTM 2000 series weighing display controller
Unity Quantum 67160支持標(biāo)準(zhǔn)的ModBus協(xié)議通信,ModBus端口位于中央處理器(CPU)的前面,接口為RJ45,如圖1所示。該ModBus端口既支持RS232串行通信標(biāo)準(zhǔn),也支持RS485串行通信標(biāo)準(zhǔn),不同的串行通信標(biāo)準(zhǔn)采用不同的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),RJ45上的連接也不一樣,其引腳定義見表3。
由于RS232只支持點(diǎn)對(duì)點(diǎn)的訪問(wèn),因此PLC對(duì)2臺(tái)稱重顯示控制儀的通信不宜采用RS232通信標(biāo)準(zhǔn)。而RS485支持以處理器作為主站的一主多從總線拓?fù)浣Y(jié)構(gòu),且稱重顯示控制儀和PLC都支持ModBus協(xié)議,所以PLC與稱重顯示控制儀的通信標(biāo)準(zhǔn)選用RS485,協(xié)議選擇ModBus。根據(jù)稱重顯示控制儀說(shuō)明書設(shè)置通信板跳線:op1:B,op2:A,op3:B,op4:B,op5:B,op6:C。PLC與稱重顯示控制儀通信接線如圖2所示。
圖1 ModBus 端口示意Fig.1 ModBus port schematic
表3 RJ45接口引腳定義Tab.3 RJ45 interface pin definition
注:在RS485通信標(biāo)準(zhǔn),引腳 1和6,2和3必須短接。
圖2 PLC與稱重顯示控制儀通信接線Fig.2 Communication wiring of PLC and weighing display controller
在該通信接線中,雖然物理上存在2臺(tái)PLC,但在Quantum Hot Standby系統(tǒng)中,只有運(yùn)行為主的CPU上的端口可用于ModBus,在默認(rèn)情況下,發(fā)生主、備切換時(shí),主、備CPU交換ModBus地址,因此在邏輯上主、備CPU為1個(gè)ModBus節(jié)點(diǎn)。
拉姆齊Micro-TechTM2000系列稱重顯示控制儀在通信中通常作為從站,接收主站的請(qǐng)求消息,而不主動(dòng)發(fā)出消息。當(dāng)通信線路中主站發(fā)出請(qǐng)求消息時(shí),稱重顯示控制儀由中斷程序接收消息;接收完畢后,在周期性任務(wù)(100 ms/次)中核對(duì)消息中的設(shè)備地址;當(dāng)消息中的地址與控制儀的地址匹配時(shí),則檢查消息的正確性,若消息正確,則處理請(qǐng)求消息生成應(yīng)答消息,應(yīng)答消息最多為41個(gè)字[2]。因此,數(shù)據(jù)訪問(wèn)時(shí),主站發(fā)出請(qǐng)求消息的時(shí)間間隔必須大于100 ms且請(qǐng)求消息不得超過(guò)41個(gè)字。
然而,對(duì)于需要向顯示控制儀寫入數(shù)據(jù)的請(qǐng)求消息(對(duì)應(yīng)ModBus功能碼10H),成功地返回響應(yīng)消息并不代表數(shù)據(jù)已寫入顯示控制儀,在顯示控制儀的當(dāng)前任務(wù)周期中還需要核對(duì)地址、數(shù)據(jù)上下限、口令等,只有滿足要求后數(shù)據(jù)才會(huì)被寫入顯示控制儀,并將標(biāo)志位置0,否則置1。因此,主站在向顯示控制儀發(fā)送寫入數(shù)據(jù)請(qǐng)求后還需等待100 ms,再發(fā)送一條查詢標(biāo)志位的請(qǐng)求消息,以確認(rèn)數(shù)據(jù)被成功地寫入顯示控制儀。
對(duì)于主站140CPU67160,UnityPro軟件提供了XXMIT功能塊,管理CPU上的ModBus端口通信。當(dāng)采用RS485標(biāo)準(zhǔn)通信時(shí),由于RS485是半雙工通信,任何時(shí)候只能有一點(diǎn)處于發(fā)送狀態(tài),在不發(fā)送的時(shí)候都處于接收狀態(tài)[3],因此,當(dāng)某一節(jié)點(diǎn)需要發(fā)送時(shí)將自身狀態(tài)切換成發(fā)送,然后開始發(fā)送數(shù)據(jù),發(fā)送完畢后再切換至接收狀態(tài)。雖然該切換由XXMIT進(jìn)行內(nèi)部控制,不需要編程人員進(jìn)行組態(tài),但通信設(shè)計(jì)時(shí)仍需關(guān)注發(fā)送、接收之間的切換。
當(dāng)XXMIT進(jìn)行ModBus通信時(shí),對(duì)于非廣播的ModBus消息,應(yīng)用程序需要在傳送消息后從其他設(shè)備獲得回答(請(qǐng)求-響應(yīng))[4],則XXMIT 需要從傳送模式切換為接收模式,來(lái)讀取通信合作方的響應(yīng)。PLC將XXMIT 從傳送切換為接收模式的最早時(shí)刻是緊接傳送操作后的下一個(gè)掃描周期[5],即使在最少消息最快傳遞時(shí),主站PLC至少需要2個(gè)掃描周期才能完成1個(gè)非廣播的ModBus消息傳遞,如圖3所示。
圖3 XXMIT傳送、接收模式轉(zhuǎn)換及從站響應(yīng)示意Fig.3 XXMIT transmission,reception mode conversion and response from slave station
當(dāng)主站的掃描周期長(zhǎng)而從站的響應(yīng)速度快時(shí),從站的響應(yīng)延時(shí)尤為重要[5]。否則,主站發(fā)送完數(shù)據(jù)后,XXMIT仍處于當(dāng)前掃描周期中,未切換為接收模式,主站還處在發(fā)送狀態(tài);而從站接收完數(shù)據(jù)后開始響應(yīng),則從站已切換為發(fā)送狀態(tài),導(dǎo)致RS485通信中有2點(diǎn)處于發(fā)送狀態(tài)。為了避免這種狀態(tài),從站的ModBus消息響應(yīng)應(yīng)延時(shí),延時(shí)時(shí)間=主站掃描周期-請(qǐng)求消息的發(fā)送時(shí)間,即使延時(shí)時(shí)間小于主站的掃描周期,為了保證通信順利,建議設(shè)置從站的延時(shí)時(shí)間為主站掃描周期。
當(dāng)從站無(wú)法設(shè)置響應(yīng)消息延時(shí)時(shí),應(yīng)讓主站的XXMIT盡快從傳送模式切換為接收模式,雖然縮短主站的掃描周期可以盡快完成模式切換,但由于主站的掃描周期受工藝過(guò)程即應(yīng)用程序的限制,所以通過(guò)縮短主站掃描周期來(lái)使切換時(shí)間縮短的幅度有限。
對(duì)RS485而言,雖然請(qǐng)求發(fā)送/清除發(fā)送(RTS/CTS)硬件控制流不受控制,但輸入的StartDly和EndDly值依然對(duì)通信產(chǎn)生影響:StartDly輸入的時(shí)間值確定了XXMIT在將消息發(fā)出PLC端口前等待的時(shí)間長(zhǎng)度;EndDly輸入的時(shí)間值確定了 XXMIT 在將消息發(fā)出PLC端口后等待的時(shí)間長(zhǎng)度[5],如圖4所示(圖中:DCE為數(shù)據(jù)通信設(shè)備;TXD為發(fā)送數(shù)據(jù))。EndDly值的設(shè)置,將延遲主站的XXMIT從發(fā)送模式切換為接收模式。
圖4 RTS/CTS控制時(shí)序圖Fig.4 Sequence diagram with RTS/CTS control
在RS485通信時(shí), 發(fā)送信號(hào)在EndDly時(shí)間內(nèi)保持為“1”,即節(jié)點(diǎn)的發(fā)送端口(TX)處于使能狀態(tài),接收端口(RX)禁止。當(dāng)主站非廣播的ModBus請(qǐng)求消息發(fā)送完畢EndDly結(jié)束前,由于無(wú)RTS/CTS硬件控制,異步掃描的從站會(huì)進(jìn)行消息響應(yīng),即從站發(fā)送消息,則從站的TX處于使能狀態(tài),此時(shí)主站的TX也處于使能狀態(tài),必然導(dǎo)致線路沖突(如圖5所示),從而將丟失來(lái)自從站響應(yīng)的所有字符。因此,EndDly時(shí)間設(shè)置會(huì)導(dǎo)致以下問(wèn)題:主站請(qǐng)求消息發(fā)送完畢后,從站消息響應(yīng)開始時(shí),應(yīng)禁止的主站TX使能延時(shí)EndDly禁止,應(yīng)使能的主站RX延時(shí)EndDly使能,亦即XXMIT延時(shí)EndDly從發(fā)送模式切換為接收模式。對(duì)此,可將EndDly設(shè)置為0,以讓主站CPU盡快切換發(fā)送和接收。
圖5 無(wú)RTS/CTS控制的響應(yīng)沖突時(shí)序圖Fig.5 Sequence diagram of response conflict without RTS/CTS control
當(dāng)主站對(duì)從站數(shù)據(jù)實(shí)時(shí)性要求不高,或由于生產(chǎn)實(shí)際情況導(dǎo)致從站數(shù)據(jù)變化率不快,亦或從站對(duì)于主站的請(qǐng)求周期有時(shí)間要求時(shí),可對(duì)StartDly設(shè)置稍長(zhǎng)的時(shí)間,以減少主站的請(qǐng)求頻率和從站的響應(yīng)頻率,例如設(shè)置為500 ms,則主站發(fā)出下一個(gè)請(qǐng)求時(shí),至少需要等待500 ms。
該項(xiàng)目要求讀取2臺(tái)稱重顯示控制儀的瞬時(shí)流量、皮帶速度、累計(jì)流量至PLC并送上位機(jī)顯示。Micro-Tech 2001,2101系列稱重顯示控制儀數(shù)據(jù)定義見表4。
表4 稱重顯示控制儀數(shù)據(jù)定義Tab.4 Data definition of weighing display controller
由于地址400095~400144的長(zhǎng)度超過(guò)了41個(gè)字,因此瞬時(shí)流量、皮帶速度、累計(jì)流量需要分2次讀取。根據(jù)ModBus請(qǐng)求-響應(yīng)的通信機(jī)制,同一時(shí)刻主站只能和一臺(tái)從站通信,所以,獲取2臺(tái)稱重顯示控制儀的數(shù)據(jù)需要4次ModBus通信才能完成。
首先,設(shè)定好稱重顯示控制儀的通信參數(shù),包括設(shè)備地址、波特率、數(shù)據(jù)位、停止位、校驗(yàn)方式等。然后在UntiyPro軟件中利用XXMIT功能塊進(jìn)行組態(tài)編程:設(shè)置Port為1;Command為16#2100,即啟用RS485模式,選擇ModBus消息傳遞;MsgOut是主站PLC向從站稱重顯示控制儀發(fā)送ModBus消息的具體內(nèi)容,包括ModBus功能碼、讀取或?qū)懭氲臄?shù)據(jù)長(zhǎng)度、從設(shè)備地址、從設(shè)備數(shù)據(jù)區(qū)起始地址、主設(shè)備數(shù)據(jù)區(qū)起始地址等;功能塊波特率、數(shù)據(jù)位、停止位、校驗(yàn)方式與從站保持一致,如圖6所示。
圖6 XXMIT功能塊實(shí)例Fig.6 An example of XXMIT function module
在程序中定義Int型的標(biāo)志Flag,初始值設(shè)置為1,系統(tǒng)初始化完成后XXMIT開始執(zhí)行,當(dāng)Flag=1時(shí),主站向A稱重顯示控制儀發(fā)送一條ModBus消息,讀取400095~400100的值,成功后(管腳Done為1)Flag自動(dòng)加1變?yōu)?;當(dāng)Flag=2時(shí),主站再向A稱重顯示控制儀發(fā)送一條ModBus消息,讀取400141~00142的值,成功后Flag自動(dòng)加1變?yōu)?;當(dāng)Flag=3時(shí),主站向B稱重顯示控制儀發(fā)送一條ModBus消息,讀取400095~400100的值,成功后Flag自動(dòng)加1變?yōu)?;當(dāng)Flag=4時(shí),主站再向B稱重顯示控制儀發(fā)送一條ModBus消息,讀取400141~400142的值,成功后Flag復(fù)位為1,開始第2輪數(shù)據(jù)交換,如此循環(huán)。
如果某個(gè)ModBus通信出現(xiàn)故障(管腳Error為1),F(xiàn)lag也需自動(dòng)加1,讓程序跳過(guò)該故障繼續(xù)往下執(zhí)行,否則Flag數(shù)值不變,CPU每次都執(zhí)行這段通信故障程序,導(dǎo)致整個(gè)數(shù)據(jù)交換中斷,如圖7所示(圖中:X為1,2,3)。
圖7 數(shù)據(jù)交換循環(huán)控制邏輯Fig.7 Data exchange loop control logic
140CPU67160通過(guò)以上的程序組態(tài)讀取到了2臺(tái)稱重顯示控制儀的數(shù)據(jù)并傳送至上位機(jī),省去了人工抄表的麻煩,避免了人工抄表的錯(cuò)誤。上位機(jī)數(shù)據(jù)通過(guò)廠級(jí)監(jiān)控信息系統(tǒng)(SIS)讀取,直接傳送至數(shù)據(jù)分析部門及管理部門,為管理者及時(shí)決策提供了可靠的數(shù)據(jù)支撐。
通過(guò)上述分析和實(shí)施,實(shí)現(xiàn)了入爐煤皮帶秤數(shù)據(jù)準(zhǔn)確可靠地遠(yuǎn)傳至Quantum PLC,減少干擾造成的誤差,為煤耗計(jì)算提供了翔實(shí)的數(shù)據(jù),降低了人工工作負(fù)荷;同時(shí),也為拉姆齊Micro-TechTM2000系列稱重顯示控制儀與RockWell或Siemens PLC組成的輸煤控制系統(tǒng)采用相應(yīng)協(xié)議(AB DF1或3964R)通信提供了范例。