ModBus的通訊總線在電量監(jiān)測中的應(yīng)用
合肥市巢湖水源廠低壓配電房安裝了7臺(tái)型號(hào)為CD194E-2S4型電力儀表,通過RS485口,用雙屏蔽通訊線將它們與上位機(jī)連接起來,上位機(jī)選用的是研華工控機(jī)。上位機(jī)的通信軟件采用VB6.0的開發(fā)環(huán)境。一般用VB開發(fā)串行通信程序有兩種方法:一是利用bbbbbbs的通信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è)定。
(2)數(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é)議來編程。
(3)超時(shí)控制
為了防止意外情況使串口讀寫無休止地等待,必須在程序中設(shè)置超時(shí)控制。
(4)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控系統(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ī)約的智能儀表。這樣雖然簡化了我們開發(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)場的降噪、隔離、布線、屏蔽等等措施的合理與否也會(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ù)簡單方便。
在水廠生產(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)期望在無人或少人值班的情況下,能自動(dòng)記錄電力參數(shù)的變異,掌握電力運(yùn)轉(zhuǎn)的品質(zhì)。當(dāng)事故發(fā)生時(shí),可以迅速掌握故障所在,減少查詢時(shí)間,加速恢復(fù)正常供電?;谏鲜瞿康模疚难芯繎?yīng)用江陰長江斯菲爾公司生產(chǎn)的網(wǎng)絡(luò)電力儀表構(gòu)成供電監(jiān)控系統(tǒng),通過電壓互感器和電流互感器監(jiān)測三相電壓、三相電流、有功功率、無功功率、頻率和四象電能等電量。該監(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)安全性。
(1)初始化串行端口[3]
在初始化程序中,需要設(shè)定好整個(gè)幀結(jié)構(gòu)的命令數(shù)組、傳輸波特率、奇偶校驗(yàn)、停止位,開辟數(shù)據(jù)緩沖區(qū),完成一些必須的串口初始化設(shè)定。
(2)數(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é)議來編程。
(3)超時(shí)控制
為了防止意外情況使串口讀寫無休止地等待,必須在程序中設(shè)置超時(shí)控制。
(4)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控系統(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ī)約的智能儀表。這樣雖然簡化了我們開發(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)場的降噪、隔離、布線、屏蔽等等措施的合理與否也會(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ù)簡單方便。
在水廠生產(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)期望在無人或少人值班的情況下,能自動(dòng)記錄電力參數(shù)的變異,掌握電力運(yùn)轉(zhuǎn)的品質(zhì)。當(dāng)事故發(fā)生時(shí),可以迅速掌握故障所在,減少查詢時(shí)間,加速恢復(fù)正常供電?;谏鲜瞿康模疚难芯繎?yīng)用江陰長江斯菲爾公司生產(chǎn)的網(wǎng)絡(luò)電力儀表構(gòu)成供電監(jiān)控系統(tǒng),通過電壓互感器和電流互感器監(jiān)測三相電壓、三相電流、有功功率、無功功率、頻率和四象電能等電量。該監(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)安全性。
本文標(biāo)簽:ModBus的通訊總線在電量監(jiān)測中的應(yīng)用
* 由于無法獲得聯(lián)系方式等原因,本網(wǎng)使用的文字及圖片的作品報(bào)酬未能及時(shí)支付,在此深表歉意,請(qǐng)《ModBus的通訊總線在電量監(jiān)測中的應(yīng)用》相關(guān)權(quán)利人與機(jī)電之家網(wǎng)取得聯(lián)系。
關(guān)于“ModBus的通訊總線在電量監(jiān)測中的應(yīng)用”的更多資訊










