摘 要:本文主要介紹了Modbus的通信功能, 以及ModBus的通訊總線在水廠生產(chǎn)過程中對(duì)電量監(jiān)測(cè)的應(yīng)用。Modbus通訊協(xié)議在水廠中應(yīng)用既節(jié)省人力,降低生產(chǎn)成本;又能減少事故發(fā)生可能性,提高工作效率和生產(chǎn)安全性。實(shí)際應(yīng)用表明,該系統(tǒng)運(yùn)行穩(wěn)定可靠,安裝維護(hù)簡(jiǎn)單方便,為水廠供電監(jiān)測(cè)系統(tǒng)提供了一種較好的選擇方案。
關(guān)鍵詞:網(wǎng)絡(luò)電力儀表,Modbus通訊協(xié)議,RS485接口,供電系統(tǒng)
[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. 緒論
在水廠生產(chǎn)中,維持恒壓供水至關(guān)重要。而要實(shí)現(xiàn)恒壓供水,控制水泵轉(zhuǎn)速意義重大, 水泵轉(zhuǎn)速與供電系統(tǒng)有關(guān),因此加強(qiáng)對(duì)供電系統(tǒng)監(jiān)控,尤為必要。傳統(tǒng)的的供電監(jiān)控都是在變配電室安排專人檢查,實(shí)行三班倒即輪流值班工作制度,一天二十四小時(shí)不離人,既浪費(fèi)人力,又不安全。新的輸配電系統(tǒng)期望在無(wú)人或少人值班的情況下,能自動(dòng)記錄電力參數(shù)的變異,掌握電力運(yùn)轉(zhuǎn)的品質(zhì)。當(dāng)事故發(fā)生時(shí),可以迅速掌握故障所在,減少查詢時(shí)間,加速恢復(fù)正常供電。基于上述目的,本文研究應(yīng)用江陰長(zhǎng)江斯菲爾公司生產(chǎn)的網(wǎng)絡(luò)電力儀表構(gòu)成供電監(jiān)控系統(tǒng),通過電壓互感器和電流互感器監(jiān)測(cè)三相電壓、三相電流、有功功率、無(wú)功功率、頻率和四象電能等電量。該監(jiān)控系統(tǒng)主機(jī)外接RS485接口,采用MODBUS RTU通訊協(xié)議,通過屏蔽雙絞線以總線方式與網(wǎng)絡(luò)電力儀表相聯(lián)系。如果上位機(jī)不帶RS485接口,而只有RS232接口,可通過RS232/485轉(zhuǎn)換器連接。合肥供水集團(tuán)公司巢湖水源廠安裝了該監(jiān)控系統(tǒng),運(yùn)行一年來,沒有發(fā)生過一次故障,實(shí)時(shí)性好,可靠性高,既節(jié)省了人力,提高了工作效率;又減少了事故發(fā)生的可能性,提高了生產(chǎn)安全性。
2. MODBUS RTU通信協(xié)議
ModBus RTU通訊協(xié)議是Modicon公司的注冊(cè)商標(biāo), 采用主從問答方式工作,是目前國(guó)際智能化儀表普遍采用的主流通訊協(xié)議之一[1]。ModBus RTU通訊協(xié)議有兩種傳輸模式,分為RTU模式和ASCII模式,其中RTU模式信息幀中的8位數(shù)據(jù)包括兩個(gè)4位16進(jìn)制字符,相對(duì)于ASCII模式,RTU模式表達(dá)相同的信息需要較少的位數(shù),且在相同通訊速率下具有更大的數(shù)據(jù)流量。因此通常情況下,一般工業(yè)智能儀器儀表都是采用RTU模式。江陰長(zhǎng)江斯菲爾公司生產(chǎn)的電力儀表大都采用MODBUS RTU通訊協(xié)議,允許一臺(tái)主機(jī)和多臺(tái)從機(jī)之間進(jìn)行數(shù)據(jù)通信,在其生產(chǎn)的CD194E系列儀表通訊系統(tǒng)中,主機(jī)是微機(jī)(PC、工控機(jī)或PLC),從機(jī)是CD194E型儀表。在該分散通訊系統(tǒng)中,允許總線掛接儀表多達(dá)128塊,通訊距離可達(dá)到1千200米。通訊方式采用主機(jī)請(qǐng)求,從機(jī)應(yīng)答,即:主機(jī)提出命令請(qǐng)求,從機(jī)接收數(shù)據(jù)后作數(shù)據(jù)分析,如果數(shù)據(jù)滿足通訊規(guī)約,從機(jī)作數(shù)據(jù)響應(yīng)。
主從機(jī)間的通訊約定:主機(jī)發(fā)送的每一幀數(shù)據(jù)由四個(gè)部分組成,分別為從機(jī)地址、命令字、信息字、校驗(yàn)碼。從機(jī)地址(1個(gè)字節(jié))是從機(jī)設(shè)備號(hào),主機(jī)利用從機(jī)地址來識(shí)別進(jìn)行通訊的從機(jī)設(shè)備,表明用戶設(shè)置地址的從機(jī)將接收主機(jī)發(fā)送來的信息。每個(gè)從機(jī)都必須有唯一的地址碼,并且只有符合地址碼的從機(jī)才能響應(yīng)回送。命令字(1個(gè)字節(jié))是主機(jī)發(fā)送的功能碼,告訴從機(jī)執(zhí)行什么任務(wù)。信息字(N個(gè)字節(jié))包括進(jìn)行兩機(jī)通訊中各種數(shù)據(jù)地址、數(shù)據(jù)長(zhǎng)度、數(shù)據(jù)信息。校驗(yàn)碼(2個(gè)字節(jié))用于檢測(cè)數(shù)據(jù)通訊錯(cuò)誤,采用循環(huán)冗余碼CRC16。主機(jī)利用通訊命令,可以進(jìn)行讀取點(diǎn)(保持寄存器)或返回值(輸入寄存器)的操作。保持寄存器和輸入寄存器都是16位(2字節(jié),即1個(gè)字)值,并且高位在前,這樣寄存器中相同數(shù)據(jù)區(qū)域可以是字地址表示,也可以是字節(jié)地址表示。若是字地址,主機(jī)就必須以字方式(通過WORD地址)發(fā)送命令給寄存器;若是字節(jié)地址,主機(jī)就必須以字節(jié)方式(通過BYTE地址)發(fā)送命令給寄存器。在上述兩種方式下,若通訊正常,則從機(jī)返回相同的數(shù)據(jù)。但若字地址與字節(jié)地址搞反將會(huì)得到錯(cuò)誤結(jié)果或得不到從機(jī)響應(yīng)。MODBUS通訊系統(tǒng)中以字節(jié)方式通訊為主。CD194E型儀表支持這兩種方式。
使用CD194E型網(wǎng)絡(luò)電力儀表時(shí),首先要進(jìn)行通訊參數(shù)的設(shè)置:通過儀表上的編程鍵盤對(duì)儀表進(jìn)行通訊參數(shù)設(shè)置:(1)儀表地址:設(shè)置通訊網(wǎng)絡(luò)中從機(jī)(儀表)地址號(hào),可以設(shè)置為1~247。(2)通訊速度:設(shè)置通訊網(wǎng)絡(luò)中通訊速度,可選擇通訊速度(波特率)為4800或9600。下位機(jī)與上位機(jī)的通信波特率一般可自由設(shè)定,但必須保證上下機(jī)的通信波特率對(duì)應(yīng)匹配。(3)數(shù)據(jù)格式:設(shè)置通訊網(wǎng)絡(luò)中數(shù)據(jù)格式:1個(gè)起始位,8個(gè)數(shù)據(jù)位,1個(gè)停止位,可選擇無(wú)校驗(yàn)位、奇校驗(yàn)位、偶校驗(yàn)位。(4)通訊協(xié)議:可選擇字通訊或字節(jié)通訊。網(wǎng)絡(luò)連接如圖1所示。連接好儀表上通訊線(RS485:A+,B-)。連接線建議采用雙絞屏蔽線,同時(shí)雙絞屏蔽線的兩端都接地,以減少現(xiàn)場(chǎng)干擾。增加終端電阻Z0=120Ω可減少反射干擾,建議在通訊速度快(9600)或通訊距離較遠(yuǎn)的情況下(>700m)的情況下連接。

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