利用MODBUS提高多CPU協同開發效率
在電力系統微機綜合保護和自控裝置以及其它工業自動化控制領域,微控制器的應用越來越廣泛,其裝置的復雜性也越來越高。為了解決其開發對象實時多任務性的要求,單CPU、單入開發的模式下在被多個、多類型CPU和多人協同開發的模式所代替。在這新的開發模式中,面臨一個新問題——在實施信息交互的過程中如何將實現CPU之間信息交互的軟硬件標準化,這是關系到該模式能否成功實施的關鍵。在眾多的通信方式中,基于UART的RS-485串行通信模式以其連線簡捷、可靠性高和可帶動多CPU、多設備級連的能力而被廣泛采用。在軟件通信協議的選擇上,MODBUS協議由于其通用、成熟的第三方標準測試軟件,為用戶使用提供了諸多優勢。因此,在開發新型電動機綜合保護裝置TH21-4M的過程中,采用RS-485串行通信方式和MODBUS通信協議,實現了多CPU之間的數據和控制命令的信息交互。為了增強串行通信的高效、協調性,筆者在通信機制的軟硬件結構上采取了很多措施,并取得了很好的效果。在調試系統通信階段,使用了各CPU模塊先與MODBUS標準測試軟件通信,之后再互相聯調的方法,大大提高了協同開發的效率。實踐證明,該設計思想簡化了系統的結構,大大提高了裝置的運行效率和可靠性。本文將結合TH21-4M的設計思路,從硬件設計和軟件規劃兩方面,介紹如何利用MODBUS通信協議,實現多CPU結構的協同開發。
1 TH21-4M電動機綜合保護裝置的特點
TH21-4M電動機綜合保護裝置綜合保護功能以外,兼有測量、遠動和通信的功能;大屏幕的漢字液晶顯示,可以實現友好的人機界面;利用CAN總線,與監控主機進行通信,從而構成分級分散式的變電站綜合自動化系統的子系統。
在設計上,由于裝置需要實現多任務,為了優化系統功能,采用了多CPU的系統結構。其中一個CPU負責定時采樣脈沖發送;主CPU模塊負責數據處理、電量計算、故障判斷和開關操作;而板模塊上CPU負責人機交互,并實現與主保護模塊和監控主機的通信任務。各個CPU模塊有明確的任務分工,研制時也容易實現多人協同開發。在整個構成中,串行通信溝通了主CPU和面板CPU,使人機交互成為可能,因而點有重要的地位。建立合理的通信機制則是串行通信部分的核心的所在,它決定著通信的協調性和系統開發后期調試的效率。
2 通信機制介紹
2.1 通信機制硬件設計原理
本系統通信機制的提出以高效、可靠為目的。RS-485為半雙工結構,現場中比全雙工往往更接近于實用,在此采用只有2條信號線的最簡型連接。系統接口電路圖由圖1所示。主保護模塊上的80C196單片機輸出的TTL邏輯電平通過光電隔離后,由MAX485芯片轉換為RS-495電平,再由面板模塊上的MAX485芯片轉換為TTL邏輯電平,由80C31單片機讀取;以之亦然。在80C196單片機一側,使用并行輸入輸出口2(IO_PORT2)的一位P2.7對MAX輸入使能端RE、輸出使能端DE進行控制。由圖1可知,當P2.7輸出高電平時,RE使能,單片機一側接收數據;當P2.7輸出低電平時,DE使能,單片機一側發送數據。這樣,避免了盲目發送造成的數據疊加丟失現象,通信質量高,通信速度也能得到保證。
2.2 通信協議介紹
為了保證保護裝置中兩個模塊之間能夠正確地傳遞數據,必須有一套關于信息傳輸的模式、數據格式和內容等的規定,即規約[1]或通信協議。雖然保護裝置內部的通信相對簡單,兩具模塊之間傳遞的數據也不是很多,但是自定義內部通信協議的弊端是很明顯的。首先,自定義通信協議很難在時序、任務的協調上配合得很好,數據傳送的可靠性也難以保證;首次,由于沒有現成的較成熟的調試軟件,主CPU模塊基本是黑匣子,系統聯調時的困難較多且難以克服。因此,采用了當前流行的MODBUS通信協議,并結合本裝置的特點加以簡化,從而實現了模塊間的通信,事實證明效果很好。
MODBUS的通信方式為主從方式[2]。主方首先向從方發送通信請求指令,從方根據請求指令中的功能碼向主方發回數據。每個從方都有自己獨立的地址。主方所發的請求幀和從方所發的應答幀都是以從方地址開頭的。從方只讀發給自己的指令,對以其他從方地址開頭的報文不作應答。這種一問一答的通信模式,大大提高了通信的正確率。但對于微機保護來說,該主從方式也存在著弊端,即當保護主模塊進行保護動作后,無法立刻向上位機傳送故障信息,只能由上位機不斷向保護主模塊詢問保護是否動作,若有,則再進一步要求具體故障信息。
MODBUS有RTU(Remote Terminal Unit)和ASCII兩種傳送方式。為了保證較高的通信速度,采用了RTU方式,數據字節無奇偶校驗位,加上起始、終止位后字節長度為10bit,數據間隔在24bit以內,采用循環冗余檢驗方式對報文進行校驗。
MODBUS典型的報文格式如下:
一個通信報文的具體內容取決于該指令字符串的功能碼,MODBUS中定義的標準功能碼如表1所示。
評論