文 方, 歐陽嵩
(江西現代職業技術學院,江西南昌 330095)
變頻器作為節能應用與速度工藝控制中越來越重要的自動化設備,變頻調速已成為現代電機控制技術的重要發展方向。如果把總線通信與變頻控制技術統一起來,將推動交流電機群控技術以及設備遠程監控技術的發展。Modbus作為一種通用的現場總線,已經得到了廣泛應用,很多廠商的工控器、可編程邏輯控制器(Programmable Logic Controller,PLC)、變頻器、智能 I/O 與 A/D模塊都具備Modbus通信接口。通過Modbus總線,可以很方便地將不同廠商生產的控制設備連成工業網絡,進行集中監控。
Modbus協議是MODICON公司開發的一種開放式現場總線通信協議,由于其功能完善而且使用簡單,數據易于處理,因此在各種智能設備中被廣泛采用。尤其適用于小型控制系統或單機控制系統,可實現低成本、高性能的主從式計算機網絡監控。Modbus只定義了通信消息的結構。一個Modbus信息幀包括從機地址、功能碼、數據區、數據校驗碼,對端口沒有具體規定。Modbus的數據通信采用主/從方式,主設備可以單獨和從設備通信,也可以通過廣播方式和所有從設備通信。單獨通信時,從設備需要返回一消息作為回應;以廣播方式查詢的,則不作任何回應。由于Modbus協議所具有的良好的適用性,已經得到了諸如GE、SIMENS等大公司的應用,并把它作為一種標準的通信接口提供給用戶。
Modbus協議定義了兩種傳輸模式,即RTU和ASCII。在RTU模式中,1字節的信息作為一個8位字符被發送,而在ASCII模式中則作為兩個ASCII字符被發送。發送同樣的數據時,RTU模式的效率約為ASCII模式的2倍。一般來說,數據量少且主要是文本時采用ASCII;數據量大且是二進制數值時,多采用RTU模式。主站一次可向一個或所有從站發送通信請求(或指令),主設備通過消息幀的地址域來選通從設備。主站發送的消息幀的內容和順序為從站地址、功能碼、數據域(數據起始地址、數據量、數據內容)、CRC校驗碼;從站應答的信息內容和順序與主站信息幀基本相同。Modbus除了定義通信功能秒之外,同時還定義了出錯碼,標志出錯信息。主站接收到錯誤碼后,根據錯誤的原因采取相應的措施,從站應答的數據內容依據功能碼進行響應。
Modbus通信的RTU模式中,規定信息幀的最后兩個字節用于傳遞CRC(循環冗余校驗)碼。發送方將信息幀中地址域、功能碼、數據域的所有字節按規定的方式進行位移并進行異或計算,得到2字節的CRC碼,把包含CRC校驗碼的信息幀作為一連續的流進行傳輸。接收方在收到該信息幀時按同樣的方式進行計算,并將結果與收到的CRC碼的雙字節比較,如果一致就認為通信正確,否則認為通信有誤,從站將發送CRC錯誤應答。
RTU模式一般采用CRC-16冗余校驗方法,CRC-16的校驗碼為16位(2字節)。實現CRC校驗有兩種方法:根據CRC校驗的定義公式進行計算,或者在程序中建立CRC校驗值表。在程序中使用前者更容易實現,這里需要使用CRC生成多項式X16+X15+X2+1。該多項式對應的碼組系數為18005H(16進制),去除最高位,對應的16位余數為8005H,即為CRC-16常數。
CRC-16校驗過程如下:將CRC寄存器的每一位預置為1;把該寄存器值與8 bit的信息幀數據進行異或,結果存于該寄存器;對CRC寄存器從高到低進行移位,在最高位(MSB)的位置補零,而最低位(LSB)如果為1,則把寄存器與CRC-16常數進行異或,否則如果LSB為零,則無需進行異或。重復上述的由高至低的移位8次,第一個8 bit數據處理完畢,用此時寄存器的值與下一個8 bit數據異或并進行如前一樣的8次移位。所有的字符處理完成后CRC寄存器內的值即為最終的CRC值。CRC添加到消息中時,先加入低字節,然后高字節。
Modbus標準的物理層可以采用RS-232串行通信方式,但在長距離通信中常采用RS-422或RS-485代替。在多點通信情況下只采用RS-485方式,所以RTU模式下的Modbus系統采用屏蔽雙絞線,通信距離可達1 000 m。一條總線上最多可配置31個從站設備。傳輸線上的信息交換是半雙工的,避免了線路的沖突。
RTU模式的傳輸格式是1個數據位,2個停止位,沒有奇偶校驗位。通信數據安全由控制參數CRC-16碼保證。RTU接收設備依靠接收字符間經過的時間判斷一幀的開始,如果經過3個半的字符時間后仍然沒有新的字符或者沒有完成幀,接收設備就會放棄該幀,并設下一個字符為新一幀的開始。
在采用Modbus總線構建的數據采集與監控系統中,主站和從站中的控制設備上都要實現Modbus通信協議。主站控制器的通信協議實現過程流程圖如圖1所示。

圖1 通信協議實現過程流程圖
選用自帶Modbus總線接口的變頻器,整合PLC、單片機或者PC機作為主站的控制器,可以組建生產線自動控制系統,發揮Modbus總線控制和變頻調速的優良性能,實現設備的集中式控制,系統的組成原理圖如圖2所示。一般變頻器除電壓、電流、脈沖輸入和旋鈕控制外,均支持點到點的Modbus協議通信,硬件接口采用RS-422/485串行方式;軟件接口協議采用Modbus RTU模式,消息幀中的每個8 bit字節包含2個4 bit的十六進制數字字符。

圖2 Modbus控制系統組成原理圖
圖2中的微控制器AT89C51擴展了2個通信口,一個是RS-232串口預留備用,另外通過芯片MAX485擴展RS-485接口。AT89C51作為主站微控制器,它通過RS-485總線方式,將多臺變頻器和具備Modbus RTU接口的智能型從站組成一個數字通信控制網絡。AT89C51可以向從站變頻器發送參數設置、起停、數據查詢等指令,而變頻器則根據指令要求控制電機系統運行,并返回信息。該系統不僅可以實現對交流電機的遠程控制,還可以通過單片機與人機界面連接,完成整個生產線的起動、升速、降速停車等操作和監控。通過主站控制器的設置按鈕,可以對系統操作參數進行設計,對于一些重要的參數直接存儲在32 K字節的EEPROM芯片AT24C32中。通過設置變頻器參數,可自由切換系統運行在手動或自動控制模式下。該系統的優點在于:(1)AT89C51直接利用Modbus協議對交流變頻器讀寫,無需使用其他附件進行組態,簡化了硬件,并可實時獲取各變頻器的工作狀態,包括運行狀態、運行參數、故障報警等;(2)主站控制器與從站變頻器之間的連接只有兩根通信線,極大地減少了線路連接的復雜性,提高了系統可靠性;(3)延長了系統的控制距離;(4)采集電機各運行參數并通過LCD顯示,不需要各種現場智能儀表,極大地減少了線路連接的復雜性;(5)能與高精度網絡方便地進行交換信息,從而實現工廠高度自動化。
單片機程序使用C語言編寫,采用自上而下的模塊化設計方法,整個程序包括系統初始化、串口發送、串口中斷接收、485通信、LCD顯示、鍵盤接收、報警等功能子模塊。應用程序中,Modbus協議通信由通信子模塊實現,包含CRC-16計算與驗證、信息幀的編制和分解。每一條指令可以對指定地址的變頻器進行操作;信息幀中包括數據的字節數、起始地址等。一般變頻器只使用3個功能碼,例:03H、08H、10H,分別實現數據讀出、回路反饋測試和數據寫入的功能。為了實現Modbus總線控制,需要預先設置變頻器的操作參數:n003=2(設備起停通過總線方式控制),n004=6(輸出頻率由總線通信方式控制),n151~n157中完成通信參數的設置。設計中,可將變頻器設置為無超時檢測、頻率指令單位為0.01 Hz、通信波特率為 9 600 bps、無奇偶校驗、8位數據位、1位停止位、RS控制,而變頻器地址可設為0~32。設置好變頻器參數后,控制器可以通過RS-485總線發送通信指令,通信流程如圖3所示,單片機的主站指令與變頻器/智能設備的響應信號之間具有一定的時間間隔,在程序中可通過循環延時語句實現[2]。

圖3 Modbus總線通信流程圖
開發的Modbus總線控制變頻調速系統應用于水泥配料生產中。在該生產線上,以單片機為核心的控制器通過Modbus總線控制4臺調速秤配料機的變頻器,這4臺變頻器通過變速機構和電機分別控制各變頻器的頻率。實踐表明,Modbus總線通信、變頻調速和液晶顯示技術的應用,減少了控制系統的布線數量,提高了系統集成度和可靠性,水泥配料成分可在大范圍內隨意調控,其良好的用戶界面大大改善了設備的操作性能,降低了成本,提升了產品的市場競爭力。
[1]徐濤,閆科,趙景林.基于MODBUS協議的串行接口實現與DCS通訊[J].工業控制計算機,2002,15(3):56-57.
[2]潘洪躍.基于MODBUS協議通信的設計與實現[J].計量技術,2002(4):35-36.