基于Modbus通訊協(xié)議的RS-485總線(xiàn)在配電自動(dòng)化控制系統中的應用
引言
隨著(zhù)輸配電自動(dòng)化程度越來(lái)越高,傳統的輸配電操作和控制方式已不再適應當今的發(fā)展要求,自動(dòng)化控制系統得到越來(lái)越多的運用。RS-485因硬件設計簡(jiǎn)單、控制方便、成本低廉等優(yōu)點(diǎn)廣泛應用于工廠(chǎng)自動(dòng)化、工業(yè)控制等領(lǐng)域。因此針對當前輸配電行業(yè)的設備現狀和發(fā)展需要,本文將介紹一種基于Modbus通訊協(xié)議的RS-485總線(xiàn)技術(shù)進(jìn)行通信的智能斷路器控制系統。
控制系統整體結構
基于RS-485總線(xiàn)的配電自動(dòng)化控制系統由智能斷路器、監控計算機和RS-485控制網(wǎng)絡(luò )3部分構成。
智能斷路器是直接面向運行現場(chǎng)的智能節點(diǎn),其核心控制器件智能控制器主要功能是采集現場(chǎng)電流、電壓、頻率及功率因素等數值,按照一定的控算方法對配電控制回路的斷路器進(jìn)行控制操作;將現場(chǎng)檢測到的電流、電壓、斷路器分合閘狀態(tài)等信息通過(guò)RS-485總線(xiàn)通信網(wǎng)絡(luò )傳送至監控機,并實(shí)時(shí)處理監控機下傳的遙控分/合閘等各種命令。
監控計算機的主要功能是對現場(chǎng)智能節點(diǎn)的運行參數進(jìn)行實(shí)時(shí)檢測,獲得現場(chǎng)運行數據,監測系統狀態(tài)異常,并根據故障信息發(fā)出相應的報警信號;以友好的圖形界面直觀(guān)指示當前各智能斷路器的運行狀況及參數信息;實(shí)現故障記錄管理,并實(shí)現遠程控制智能斷路器分/合閘功能。
RS-485控制網(wǎng)絡(luò )部分主要由RS-485通信接口、通信介質(zhì)、接口電路、Modbus通訊協(xié)議及相應的通信軟件組成。RS-485通信接口實(shí)現智能節點(diǎn)與監控計算機之間的串行連接;Modbus通訊協(xié)議制定了消息域格局和內容的公共格式,為智能節點(diǎn)與監控計算機之間提供通信規約;通信介質(zhì)為雙絞線(xiàn),負載連接在A(yíng)、B線(xiàn)之間。
為了深入說(shuō)明RS-485總線(xiàn)接口在輸配電自動(dòng)化系統中的應用,本文以浙江正泰電器股份公司生產(chǎn)的NST1-H智能控制器為例,簡(jiǎn)要介紹該智能控制器的總體設計,并給出實(shí)現RS-485通信的硬件電路和軟件。
圖1 智能控制器結構框圖
圖2 智能控制器RS-485通信接口電路
現場(chǎng)智能節點(diǎn)
智能控制器在自動(dòng)控制系統中需完成現場(chǎng)數據采集和處理、控制器各執行器件的控制及與遠程監控計算機之間的通信等主要工作,因此智能控制器的設計是整個(gè)系統的關(guān)鍵部分。其結構框圖如圖1所示。
考慮到可靠性、性?xún)r(jià)比等因素,智能控制器CPU采用三菱系列單片機M30201。智能控制器設計采用結構化設計方法,包括四大部分:RS-485通信接口電路部分、電源管理部分、信號輸出執行部分、I/O接口部分。其中I/O接口部分包括現場(chǎng)數據采集、鍵盤(pán)輸入與顯示和執行器的控制信號輸出等工作。
在某些工業(yè)控制領(lǐng)域,由于現場(chǎng)情況十分復雜,各個(gè)節點(diǎn)之間存在很高的共模電壓。雖然RS-485接口采用的是差分傳輸方式,具有一定的抗共模干擾的能力,但當共模電壓超過(guò)RS-485接收器的極限接收電壓,即大于+12V或小于-7V時(shí),接收器就無(wú)法正常工作,嚴重時(shí)甚至會(huì )燒毀芯片和儀器設備。為消除此問(wèn)題,增強智能控制器在通信中的抗干擾能力,本設計采用二次集成芯片MAX1480進(jìn)行信號隔離,接口電路如圖2所示。
本設計的異步通信數據以字節的方式傳送,在每一個(gè)字節傳送之前,先要通過(guò)一個(gè)低電平起始位實(shí)現握手。為防止干擾信號誤觸發(fā)RO(接收器輸出)產(chǎn)生負跳變,使接收端MCU進(jìn)入接收狀態(tài),在RO引腳外接3k繳俠繾?;P3.4與DE引腳之間通過(guò)74HC86實(shí)現反相控制,以防止MCU上電時(shí)對總線(xiàn)的干擾。
圖3 CRC校驗碼生成流程圖
Modbus通訊協(xié)議及編程
本設計采用Modbus通信協(xié)議的RTU通訊模式,消息發(fā)送至少要以3.5個(gè)字符時(shí)間的停頓間隔開(kāi)始。網(wǎng)絡(luò )設備不斷偵測網(wǎng)絡(luò )總線(xiàn),包括停頓間隔時(shí)間內。當第一個(gè)域(地址域)接收到,每個(gè)設備都進(jìn)行解碼以判斷是否發(fā)往自己的。一個(gè)典型的消息幀為:起始位 設備地址 功能代碼 數據 CRC校驗 結束符。監控計算機通過(guò)將要聯(lián)絡(luò )的智能控制器的地址放入消息中的地址域來(lái)選通智能控制器。當智能控制器發(fā)送回應消息時(shí),它把自己的地址放入回應的地址域中,以便監控計算機知道是哪一個(gè)設備做出回應。地址0是用作廣播地址,以使所有的智能控制器都能認識。當消息從監控計算機發(fā)往智能控制器時(shí),功能代碼域將告之智能控制器需要執行哪些行為。在這里主要使用到2種功能碼,03H:讀寄存器數據;06H:寫(xiě)寄存器數據。讀寄存器的內容包括開(kāi)關(guān)分/合閘狀態(tài)、當前電流值、電壓值、故障記錄值等。智能控制器回應時(shí),它使用功能代碼域來(lái)指示是正?;貞?無(wú)誤)還是有某種錯誤發(fā)生(稱(chēng)作異議回應)。對正?;貞?智能控制器僅回應相應的功能代碼。對異議回應,智能控制器返回一等同于正常代碼的代碼,并將功能代碼首位置為邏輯1。例如:一從監控計算機發(fā)往智能控制器的消息要求讀一組保持寄存器,將產(chǎn)生如下功能代碼:0 0 0 0 0 0 1 1對正?;貞?智能控制器僅回應同樣的功能代碼。對異議回應,它返回: 1 0 0 0 0 0 1 1除功能代碼因異議錯誤作了修改外,智能控制器將一獨特的代碼放到回應消息的數據域中,監控計算機應用程序得到異議的回應后重發(fā)信息,直到智能控制器能夠正確響應;通過(guò)寫(xiě)寄存器可實(shí)現開(kāi)關(guān)遙控分/合閘控制及更改智能控制器系統參數等功能。在最后一個(gè)傳輸字符之后,一個(gè)至少3.5個(gè)字符時(shí)間的停頓標定了消息的結束,一個(gè)新的消息可在此停頓后開(kāi)始,如果停頓時(shí)間小于3.5個(gè)字符時(shí)就會(huì )引起CRC校驗錯誤。在程序中設置一個(gè)幀計時(shí)器,當線(xiàn)路上有數據時(shí)就刷新該計時(shí)器,線(xiàn)路空閑時(shí)則停止刷新,計時(shí)時(shí)間達到3.5幀時(shí)計時(shí)器被軟件清除,而下一幀則為地址幀。
由于Modbus編程主要需處理好CRC校驗碼的生成及數據包開(kāi)始標志的測試,圖3給出CRC校驗碼的生成流程。
結語(yǔ)
Modbus協(xié)議是目前得到廣泛應用的通信協(xié)議,而其構筑的硬件平臺RS-485總線(xiàn)具有硬件設計簡(jiǎn)單、控制方便、成本低廉等優(yōu)點(diǎn),在工控自動(dòng)化系統中將得到越來(lái)越多的應用。
評論