(廣東省東莞市東江水務(wù)有限公司,東莞 523000)
傳統(tǒng)PLC與設(shè)備之間一般是采用硬接線接入I/O方式進行數(shù)據(jù)采集,隨著科技水平的進步與發(fā)展,現(xiàn)場設(shè)備更加智能化,尤其是高壓電力方面的比如微機綜保已經(jīng)非常智能化,它們的儀表一般都標(biāo)配通訊端口,采用MODBUS通訊協(xié)議的通訊端口是應(yīng)用比較普遍的一種,它已成為通用工業(yè)標(biāo)準(zhǔn),它組網(wǎng)簡單,價格低廉。ModBus網(wǎng)絡(luò)是一個工業(yè)通信系統(tǒng),系統(tǒng)結(jié)構(gòu)既包括硬件、亦包括軟件,廣泛應(yīng)用于各種數(shù)據(jù)采集和過程監(jiān)控。本項目就是通過對水廠配水泵房2號機組出線柜及與2號機相關(guān)的進線柜,PT柜,變壓器出線柜進行改造后,利用PLC與這些綜保柜儀表與既有的1號、5號機組綜保柜鏈接進行485通訊來實現(xiàn)上位機對綜保柜儀表數(shù)據(jù)的采集,從而很大程度降低了人工布線成本,同時減少了PLC硬件配置,提高了自動化水平。
MODBUS協(xié)議通訊一般采用一主多從方式,從設(shè)備對于主控制器的廣播查詢,從設(shè)備返回的內(nèi)容不僅包括設(shè)備地址,而且也包括請求功能代碼,發(fā)送數(shù)據(jù),錯誤校驗碼等。RTU傳輸模式消息幀格式如表1所示。
表1 RTU傳輸模式消息幀格式[1]
從機地址:0~247內(nèi)的整數(shù),0為廣播地址,MODBUS命令碼可以從1~255內(nèi)的整數(shù)值。功能碼:對應(yīng)讀取模擬量為03或16,對應(yīng)讀取開關(guān)量一般采用01或02,如表2所示。對應(yīng)于施耐德PLC中的MODBUS數(shù)據(jù)結(jié)構(gòu)主要包括輸入離散量,輸出離散量(線圈),輸入寄存器,保持寄存器基本單元,分別對應(yīng)PLC中含有數(shù)字量,模擬量,輸入輸出的設(shè)備,按照不同的Modbus功能代碼訪問每個獨立的數(shù)據(jù)塊[2]。起始地址:數(shù)據(jù)在通訊設(shè)備寄存器地址定義,由廠家提供點表。數(shù)據(jù)格式:在寄存器中為一個無符號16位數(shù)。
本項目中1號、5號機組綜保儀表通過查詢說明書數(shù)據(jù)采集發(fā)送報文:例如:I1相電流發(fā)送報文:01 03 0113 0001 7433其中01是設(shè)備地址,需查看sepam40設(shè)置的通信地址:03是功能碼,讀多個寄存器數(shù)據(jù),0113是要讀取寄存器起始地址,0001是讀取的字數(shù)為1個字,33是校驗碼。同理2號機組出線柜及與2號機相關(guān)的進線柜,PT柜,變壓器出線柜的消息幀格式按照廠家給的點表來定義。
表2 MODBUS通訊協(xié)議常用功能代碼[2]
本項目需要將施耐德Quantum系列PLC與5臺綜保柜儀表(即:1號泵組,5號泵組綜保柜,2號泵組出線柜,進線柜,廠變壓器出線柜)組成通訊網(wǎng)絡(luò),PLC硬件是昆騰140系列的11303型CPU,其面板帶1個標(biāo)準(zhǔn)RS-232C型串口,綜保儀表端均采用標(biāo)準(zhǔn)485協(xié)議的端子輸出。PLC與儀表間采用485屏蔽雙絞線連接。
圖1 通訊網(wǎng)絡(luò)結(jié)構(gòu)示意圖
昆騰140 PLC編程軟件利用XXMIT功能塊命令的讀取功能實現(xiàn)與儀表進行485通訊,其中設(shè)置的命令字為16#2100。MSGOUT是一個數(shù)組,其中的每一個字設(shè)置對應(yīng)了儀表端MODBUS消息幀格式。也即:MSGOUT[1]讀功能碼設(shè)置為3,MSGOUT[2]:讀取或者寫入的數(shù)據(jù)的數(shù)量;MSGOUT[3]:Modbus從站地址,范圍為1-247。0表示廣播方式,并只支持寫從站的功能,不支持讀從站的功能。MSGOUT[4]:從站寄存器的地址區(qū)域索引。所有機組綜保儀表寄存器起始地址為:400276,MSGOUT[5]:主站寄存器地址區(qū)域索引。本項目中,1號、5號機組定義的主站寄存器起始地址為:400460和400400,2號機組以及總出線柜,變壓器出線柜定義的主寄存器起始地址為:400520,400640及400700.MSGIN包含終止的ASCII輸入或簡單的ASCII輸入的傳入消息數(shù)據(jù),為參數(shù)分配的數(shù)據(jù)類型必須與要執(zhí)行的數(shù)據(jù)類型相匹配,即該數(shù)據(jù)類型要與MSGOUT字段的數(shù)據(jù)類型保持一致。
為了實現(xiàn)系統(tǒng)的可擴展性,允許帶多個綜保儀表,而在PLC的每個掃描周期最多只能有1個通信模塊(XXMIT)同時處于通信激活狀態(tài),那么要控制多個綜保儀表時,需要對綜保儀表進行分時控制,這里需設(shè)置時間令牌為了讓多個綜保儀表輪流通信。使用XXMIT對綜保儀表寄存器進行讀寫,且只有當(dāng)此綜保儀表拿到令牌時才能開始通信,本項目程序設(shè)計時根據(jù)接收成功標(biāo)志位Dir_dn來執(zhí)行輪詢程序,即當(dāng)一個從站執(zhí)行讀取成功后標(biāo)志位Dir_dn置1個脈沖,同時Dir_read_dn置1保持2秒,讀取下一個從站的數(shù)據(jù),依次類推完成從站的數(shù)據(jù)采集。圖2是部分運行程序示例。
圖2 運行程序示例
圖2中程序1~16段是初始狀態(tài)Dir_re脈沖數(shù)計數(shù)到5時,或者Dir_dn讀取完成或讀取故障時將Dir_read_dn置1進行下一個站發(fā)送令牌,程序41~46段是從站接到令牌后相應(yīng)的對從站地址和主站目標(biāo)字起始地址進行更改,程序49~54段是產(chǎn)生2秒脈沖用于XXMIT輪詢操作。另外由于有功功率、無功功率、相電壓等是32位數(shù)據(jù),比如2號泵有功功率采集至PLC后高位如果沒有溢出,即:高位為0時為低位數(shù)據(jù),但是如果高位有溢出,即:高位置1時必須經(jīng)過程序變換后由寄存器p2_active_power_int輸出顯示。在實際運行中如果Modbus響應(yīng)速度很慢,可以適當(dāng)調(diào)整脈沖寬度dir_start,以保證在Time out和Retry Limit范圍之內(nèi)通信成功。通訊正常時,Active跟start狀態(tài)一致的為脈沖激活標(biāo)志,XXMIT在處理時顯示標(biāo)志1,Done是完成標(biāo)志,當(dāng)成功完成一次通訊過程時,會有一個輸出脈沖(其狀態(tài)滯后于Active)。
以下表格顯示的是PLC采集上來的2號泵綜保儀表部分數(shù)據(jù),包括泵的各相電壓,各相電流,總有功功率,無功功率等,依次類推2號機進線柜,變壓器出線柜均都進行了采集,本項目上位機遠程監(jiān)控軟件是RSVIEW32利用第三方KEPSERVER OPC通訊讀取PLC寄存器中的數(shù)據(jù)實現(xiàn)最終的界面顯示,目前完成了對上位機監(jiān)控畫面重新設(shè)計,增加了2號機綜保柜,進線綜保柜,廠變壓器出線柜顯示畫面,同時也預(yù)留了3號機及6號機的數(shù)據(jù)顯示畫面。
圖3 上位機界面顯示
通過對水廠配水泵房2號機組出線柜及與2號機相關(guān)的進線柜,變壓器出線柜進行改造后,利用PLC將原有的1號、5號綜保柜儀表與新裝綜保柜儀表組成485通訊鏈路,將電流、電壓頻率、有功功率、無功功率、有功電能、無功電能等電量參數(shù)采集到上位機上顯示,極大方便了數(shù)據(jù)集中管理以及后續(xù)能源管理系統(tǒng)建設(shè),為后續(xù)的對3號泵,6號泵的技術(shù)改造打下良好基礎(chǔ),但是也存在一些不足:比如目前的通訊網(wǎng)絡(luò)結(jié)構(gòu)是手牽手模式,如果1號泵的ACE949通訊模塊故障,它的下游鏈路就會故障,導(dǎo)致無法采集數(shù)據(jù),因此目前只做成數(shù)據(jù)采集,控制還是通過PLC I/O硬接線接入斷路器單獨進行合閘/分閘。后續(xù)可以將PLC升級為帶RJ45端口的485通訊口,增加MODBUS分配塊,將分支電纜分別連到各個從站實現(xiàn)分散監(jiān)控,提高運行的穩(wěn)定性和安全性。