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