摘 要:本文主要介紹了Modbus的通信功能, 以及ModBus的通訊總線在水廠生產過程中對電量監測的應用。Modbus通訊協議在水廠中應用既節省人力,降低生產成本;又能減少事故發生可能性,提高工作效率和生產安全性。實際應用表明,該系統運行穩定可靠,安裝維護簡單方便,為水廠供電監測系統提供了一種較好的選擇方案。
關鍵詞:網絡電力儀表,Modbus通訊協議,RS485接口,供電系統
[align=center][b]Application of Modbus Communication Protocol in Water Plant
Power Supply System[/b][/align]
Abstract:In this paper, the communication function of Modbus protocol and the application of its communication bus in the electric parameter measurement of water plant production process are narrated. The application of Modbus communication in water plant not only reduces the cost of production by saving labour power, but also improves work efficiency and production security by cutting down the possibility of accident occuring. Practical application indicates the system runs stably and reliably, whose installation and maintenance are simple and convenient .So the system offers a better choice for water power supply monitoring system.
Keywords:network electric instrument, Modbus communication protocol,RS485 interface, power supply system
1. 緒論
在水廠生產中,維持恒壓供水至關重要。而要實現恒壓供水,控制水泵轉速意義重大, 水泵轉速與供電系統有關,因此加強對供電系統監控,尤為必要。傳統的的供電監控都是在變配電室安排專人檢查,實行三班倒即輪流值班工作制度,一天二十四小時不離人,既浪費人力,又不安全。新的輸配電系統期望在無人或少人值班的情況下,能自動記錄電力參數的變異,掌握電力運轉的品質。當事故發生時,可以迅速掌握故障所在,減少查詢時間,加速恢復正常供電。基于上述目的,本文研究應用江陰長江斯菲爾公司生產的網絡電力儀表構成供電監控系統,通過電壓互感器和電流互感器監測三相電壓、三相電流、有功功率、無功功率、頻率和四象電能等電量。該監控系統主機外接RS485接口,采用MODBUS RTU通訊協議,通過屏蔽雙絞線以總線方式與網絡電力儀表相聯系。如果上位機不帶RS485接口,而只有RS232接口,可通過RS232/485轉換器連接。合肥供水集團公司巢湖水源廠安裝了該監控系統,運行一年來,沒有發生過一次故障,實時性好,可靠性高,既節省了人力,提高了工作效率;又減少了事故發生的可能性,提高了生產安全性。
2. MODBUS RTU通信協議
ModBus RTU通訊協議是Modicon公司的注冊商標, 采用主從問答方式工作,是目前國際智能化儀表普遍采用的主流通訊協議之一[1]。ModBus RTU通訊協議有兩種傳輸模式,分為RTU模式和ASCII模式,其中RTU模式信息幀中的8位數據包括兩個4位16進制字符,相對于ASCII模式,RTU模式表達相同的信息需要較少的位數,且在相同通訊速率下具有更大的數據流量。因此通常情況下,一般工業智能儀器儀表都是采用RTU模式。江陰長江斯菲爾公司生產的電力儀表大都采用MODBUS RTU通訊協議,允許一臺主機和多臺從機之間進行數據通信,在其生產的CD194E系列儀表通訊系統中,主機是微機(PC、工控機或PLC),從機是CD194E型儀表。在該分散通訊系統中,允許總線掛接儀表多達128塊,通訊距離可達到1千200米。通訊方式采用主機請求,從機應答,即:主機提出命令請求,從機接收數據后作數據分析,如果數據滿足通訊規約,從機作數據響應。
主從機間的通訊約定:主機發送的每一幀數據由四個部分組成,分別為從機地址、命令字、信息字、校驗碼。從機地址(1個字節)是從機設備號,主機利用從機地址來識別進行通訊的從機設備,表明用戶設置地址的從機將接收主機發送來的信息。每個從機都必須有唯一的地址碼,并且只有符合地址碼的從機才能響應回送。命令字(1個字節)是主機發送的功能碼,告訴從機執行什么任務。信息字(N個字節)包括進行兩機通訊中各種數據地址、數據長度、數據信息。校驗碼(2個字節)用于檢測數據通訊錯誤,采用循環冗余碼CRC16。主機利用通訊命令,可以進行讀取點(保持寄存器)或返回值(輸入寄存器)的操作。保持寄存器和輸入寄存器都是16位(2字節,即1個字)值,并且高位在前,這樣寄存器中相同數據區域可以是字地址表示,也可以是字節地址表示。若是字地址,主機就必須以字方式(通過WORD地址)發送命令給寄存器;若是字節地址,主機就必須以字節方式(通過BYTE地址)發送命令給寄存器。在上述兩種方式下,若通訊正常,則從機返回相同的數據。但若字地址與字節地址搞反將會得到錯誤結果或得不到從機響應。MODBUS通訊系統中以字節方式通訊為主。CD194E型儀表支持這兩種方式。
使用CD194E型網絡電力儀表時,首先要進行通訊參數的設置:通過儀表上的編程鍵盤對儀表進行通訊參數設置:(1)儀表地址:設置通訊網絡中從機(儀表)地址號,可以設置為1~247。(2)通訊速度:設置通訊網絡中通訊速度,可選擇通訊速度(波特率)為4800或9600。下位機與上位機的通信波特率一般可自由設定,但必須保證上下機的通信波特率對應匹配。(3)數據格式:設置通訊網絡中數據格式:1個起始位,8個數據位,1個停止位,可選擇無校驗位、奇校驗位、偶校驗位。(4)通訊協議:可選擇字通訊或字節通訊。網絡連接如圖1所示。連接好儀表上通訊線(RS485:A+,B-)。連接線建議采用雙絞屏蔽線,同時雙絞屏蔽線的兩端都接地,以減少現場干擾。增加終端電阻Z0=120Ω可減少反射干擾,建議在通訊速度快(9600)或通訊距離較遠的情況下(>700m)的情況下連接。

圖1 網絡連接
3.應用Modbus實現電量監測
電力測量包括高壓電力計量和低壓電量計量,其中高壓部分包括進線相電壓,相電流,全廠有功功率,無功功率及電度。低壓包括各主要電氣設備的電壓、電流和功耗。由于電量監控點較多,而且分布較廣,因此單獨布線不僅增加了工程量,而且對于資源也是浪費,如果所選用的電力儀表具有通訊功能,不僅可以獲得更完整的信息,而且節省了大量的布線。原設計采用了點對點的連接,全部的電量監測量大約為24個數字量,42個模擬量,需要2個16路DI,3個16路AI,不僅占用大量有限資源,而且信息無法滿足監測的需要。在改進中,決定采用總線通訊方式,利用雙絞線來取代大量的點對點接線工作,通過RS485通訊接口,按照Modbus協議進行數據交換,既可以得到更詳盡的信息,又降低了生產成本,同時遠程調度打下了基礎。
4.應用
合肥市巢湖水源廠低壓配電房安裝了7臺型號為CD194E-2S4型電力儀表,通過RS485口,用雙屏蔽通訊線將它們與上位機連接起來,上位機選用的是研華工控機。上位機的通信軟件采用VB6.0的開發環境。一般用VB開發串行通信程序有兩種方法:一是利用Windows的通信API函數;另一種是采用VB標準控件Mscomm來實現[2]。利用API編寫串口通信程序較為復雜,需要掌握大量通信知識,其優點是可實現的功能更豐富、應用面更廣泛,更適合于編寫較為復雜的低層次通信程序。VB通信控件Mscomm提供了功能完善的串口數據的發送和接收功能,Mscomm控件具有兩種處理方式:1。事件驅動方式:由Mscomm控件的OnComm事件捕獲并處理通信錯誤及事件;2。查詢方式:通過檢查CommEvent屬性的值來判斷事件和錯誤。Mscomm控件的通信功能實現,實際上是調用了API函數,而API函數是由Comm.drv解釋并傳給設備驅動程序執行的,對于VB程序開發者只需知道Mscomm控件的屬性和事件的用法即可以實現串口的操作。不論采用哪種方法編寫的串行端口通信程序,一般都可分為以下幾個過程:
(1)初始化串行端口[3]
在初始化程序中,需要設定好整個幀結構的命令數組、傳輸波特率、奇偶校驗、停止位,開辟數據緩沖區,完成一些必須的串口初始化設定。
(2)數據傳輸
讀寫串行端口可分四種方式:查詢方式、同步I/O、異步(后臺)I/O和事件驅動I/O。命令字的發送應該嚴格按照Modbus規約所設計的幀格式和上下位機在該規約基礎上所定義的通信協議來編程。
(3)超時控制
為了防止意外情況使串口讀寫無休止地等待,必須在程序中設置超時控制。
(4)CRC校驗的實現
目前儀表類比較普遍采用的是CRC16校驗碼。其生成多項式為X16+X15+X2+1。在算法實現上,可以先預置一個16位的寄存器FFFF(全1),然后把8位的2進制數據(一個字節)與16位的CRC寄存器低8位異或,并把結果放回CRC寄存器同時寄存器內容右移,MSB補0,并檢查移出的LSB。如果LSB為0則繼續右移動,為1則CRC寄存器與多項式異或。重復上面操作到一個8bit字節完成,再繼續對下一個數據進行相同處理,直到所有數據結束。這個時候CRC寄存器中的數據就是我們所要的CRC碼了。
下位機一般是使用固化好通信協議及工作指令的單片機。因為測控系統多采用的是單發多收的通信機制[4],所以在下位機要允許用戶預先設定本機的地址碼,并且保證不能重復。此外,要注意通信波特率必須與上位機的波特率相匹配。在下位機軟件開發中,要遵循Modbus規約的通信幀結構對上位機傳輸的命令進行解析:非呼叫對象應能及時重新恢復等待接受狀態;響應呼叫的下位機要解析命令代碼并進行相應的功能處理,對非法的命令操作要能回送報錯信息。在具體的工程開發中,下位機多是采用各個廠家出產的基于Modbus規約的智能儀表。這樣雖然簡化了我們開發的工作量,但是下位機的合理安排與設計能降低系統誤碼率、提高可靠性。因此是每個工業系統設計人員所不應該忽略的重要部分。在工業控制中,因為各種干擾源的存在且一般下位機數量較大,要對RS-485芯片選型有很認真的考慮。條件許可的話盡量選用抗電擊和有較大級連驅動能力的芯片。理論上485芯片的級連能力至少32門,目前很多芯片廠家都能使工業級的級連數達到128以上。在實際應用中應該讓系統具有一定的富余度,一般級連數不能超過該器件滿載的70%。在選配RS232到RS485轉換頭的時候也應該盡量選用有源的轉換器,以提高驅動能力和穩定性。此外,工業現場的降噪、隔離、布線、屏蔽等等措施的合理與否也會對最后系統的穩定產生影響。
該套系統在合肥市供水集團巢湖水源廠投入運行后,工作人員對系統運行狀況能隨時監控,減輕了勞動強度,同時,提供了故障情況下實時在線分析的功能,使故障報警到排除故障時間大為縮短,實現了配電管理自動化的預期目的。到目前為止,使用已有一年多時間,總體來說,該系統實時性好,可靠性高,故障率低,維護簡單方便。
5. 結論
本文創新點在于:在水廠供電系統中應用Modbus通訊協議組建電量監測系統,比使用傳統儀表有了較大改善,主要表現在以下幾個方面:(1)使配電系統融入企業的綜合管理系統中,能對企業的配電進行實時的動態管理。(2)工作效率大大提高,巡檢時間大為減少。(3)因人為因素所造成的損失大幅降低。(3)接線簡單,穩定性好,可靠性高,易于維護。因此,值得進一步研究開發,推廣使用。
參考文獻
【1】潘洪躍. 基于Modbus 協議通訊的設計和實現.計量技術,2002.4
【2】范逸之等 利用Visual Basic實現串并行通訊技術.清華大學出版社,2001.3
【3】Mark Nelson. 串行通訊開發指南.中國水利水電出版社,2000.9
【4】蔣勇英. 遠程監控系統的設計.微計算機信息,2005.10 (1)
作者簡介:吳 杰 (1970-) 男,漢族,合肥供水集團技術處, 碩士,工程師,研究方向:計算機智能系統。