摘要:本文對(duì)MODBUS總線在變頻調(diào)速控制系統(tǒng)中的應(yīng)用進(jìn)行了探討。介紹了MODBUS通信協(xié)議的基本規(guī)范,簡(jiǎn)述了電機(jī)控制系統(tǒng)中的變頻調(diào)速技術(shù)。以安川VS606-V7變頻器和單片機(jī)89S52為基礎(chǔ),開發(fā)了基于MODBUS通信的變頻調(diào)速系統(tǒng),并說明了該系統(tǒng)的硬件組成和相關(guān)軟件開發(fā)。
關(guān)鍵詞:MODBUS 變頻調(diào)速 控制系統(tǒng)
引言
現(xiàn)代工業(yè)自動(dòng)控制系統(tǒng)朝智能化、網(wǎng)絡(luò)化和開放式結(jié)構(gòu)的方向發(fā)展。利用現(xiàn)場(chǎng)總線技術(shù),將符合同一標(biāo)準(zhǔn)的各種智能設(shè)備統(tǒng)一起來,徹底實(shí)現(xiàn)整個(gè)監(jiān)測(cè)系統(tǒng)的分散控制,將提高系統(tǒng)集成度和數(shù)據(jù)傳輸效率、延長(zhǎng)有效控制距離,并有利于提高系統(tǒng)抗干擾性能和擴(kuò)展系統(tǒng)功能。在設(shè)備的底層控制中,變頻調(diào)速已成為現(xiàn)代電機(jī)控制技術(shù)的重要發(fā)展方向。如果把總線通信與變頻控制技術(shù)統(tǒng)一起來,將推動(dòng)交流電機(jī)群控技術(shù)以及設(shè)備遠(yuǎn)程監(jiān)控技術(shù)的發(fā)展。MODBUS作為一種通用的現(xiàn)場(chǎng)總線,已經(jīng)得到很廣泛的應(yīng)用,很多廠商的工控器、PLC、變頻器、智能I/O與A/D模塊具備MODBUS通訊接口。本文在闡述MODBUS通信協(xié)議的基礎(chǔ)上,構(gòu)建了基于MODBUS的變頻調(diào)速控制系統(tǒng),并探討了該系統(tǒng)在月餅自動(dòng)包陷生產(chǎn)線上的應(yīng)用。
1 MODBUS總線控系統(tǒng)的技術(shù)特征
MODBUS通訊協(xié)議是一種工業(yè)現(xiàn)場(chǎng)總線通訊協(xié)議,它定義的是一種設(shè)備控制器可以識(shí)別和使用的信息幀結(jié)構(gòu),獨(dú)立于物理層介質(zhì),可以承載于多種網(wǎng)絡(luò)類型中。MODBUS協(xié)議把通信參與者規(guī)定為“主站”(Master)和“從站”(Slave),數(shù)據(jù)和信息的通信遵從主/從模式,當(dāng)它應(yīng)用于標(biāo)準(zhǔn)MODBUS網(wǎng)絡(luò)時(shí),信息被直接傳送。MODBUS總線網(wǎng)絡(luò)中的各個(gè)智能設(shè)備通過異步串行總線連接起來,只允許一個(gè)控制器作為主站,其余智能設(shè)備作為從站。采用命令/應(yīng)答的通信方式,主站發(fā)出請(qǐng)求,從站應(yīng)答請(qǐng)求并送回?cái)?shù)據(jù)或狀態(tài)信息,從站不能夠自己發(fā)送信息。MODBUS協(xié)議定義的各種信息幀格式,描述了主站控制器訪問從站設(shè)備的過程,規(guī)定從站怎樣做出應(yīng)答響應(yīng),以及檢查和報(bào)告?zhèn)鬏斿e(cuò)誤等。網(wǎng)絡(luò)中的每個(gè)從設(shè)備都必須分配給一個(gè)唯一的地址,只有符合地址要求的從設(shè)備才會(huì)響應(yīng)主設(shè)備發(fā)出的命令。
由于MODBUS總線系統(tǒng)開發(fā)成本低,簡(jiǎn)單易用,并且現(xiàn)在已有很多工控器、PLC、變頻器、顯示屏等都具有MODBUS通信接口,所以它已經(jīng)成為一種公認(rèn)的通信標(biāo)準(zhǔn)。通過MODBUS總線,可以很方便地將不同廠商生產(chǎn)的控制設(shè)備連成工業(yè)網(wǎng)絡(luò),進(jìn)行集中監(jiān)控。
MODBUS最初為PLC通信而設(shè)計(jì),它通過24種總線命令實(shí)現(xiàn)PLC與外界的信息交換。這些總線命令對(duì)應(yīng)的通信功能主要包括AI/AO、DI/DO的數(shù)據(jù)傳送。但不是很多MODBUS設(shè)備的控制只使用其中的幾條命令,對(duì)其余命令不做反應(yīng)。
1.1 MODBUS通信格式
MODBUS協(xié)議定義了兩種傳輸模式,即RTU(Remote Terminal Unit)和ASCII。在RTU模式中,1字節(jié)的信息作為一個(gè)8位字符被發(fā)送,而在ASCII模式中則作為兩個(gè)ASCII字符被發(fā)送,如發(fā)送字符“20”時(shí),采用RTU模式時(shí)為“00100000”,然而采用ASCII模式則成為“00110010”+“00110000”(ASCII字符的“2”和“0”)??梢?,發(fā)送同樣的數(shù)據(jù)時(shí),RTU模式的效率大約為ASCII模式的兩倍。一般來說,數(shù)據(jù)量少而且主要是文本時(shí)采用ASCII;通信數(shù)據(jù)量大而且是二進(jìn)制數(shù)值時(shí),多采用RTU模式。
主站一次可向一個(gè)或所有從站發(fā)送通信請(qǐng)求(或指令),主設(shè)備通過消息幀的地址域來選通從設(shè)備。主站發(fā)送的消息幀的內(nèi)容和順序?yàn)椋簭恼镜刂?、功能碼、數(shù)據(jù)域(數(shù)據(jù)起始地址、數(shù)據(jù)量、數(shù)據(jù)內(nèi)容)、CRC校驗(yàn)碼;從站應(yīng)答的信息內(nèi)容和順序與主站信息幀基本相同。MODBUS除了定義通信功能碼之外,同時(shí)還定義了出錯(cuò)碼,標(biāo)志出錯(cuò)信息。主站接收到錯(cuò)誤碼后,根據(jù)錯(cuò)誤的原因采取相應(yīng)的措施。從站應(yīng)答的數(shù)據(jù)內(nèi)容依據(jù)功能碼進(jìn)行響應(yīng),例如功能代碼03要求讀取從站設(shè)備中保持寄存器的內(nèi)容。
1.2 CRC校驗(yàn)的實(shí)現(xiàn)
MODBUS通信的RTU模式中,規(guī)定信息幀的最后兩個(gè)字節(jié)用于傳遞CRC(Cyclic Redundancy Check,循環(huán)冗余校驗(yàn))碼。發(fā)送方將信息幀中地址域、功能碼、數(shù)據(jù)域的所有字節(jié)按規(guī)定的方式進(jìn)行位移并進(jìn)行XOR(異或)計(jì)算,即可得到2字節(jié)的CRC碼,并把包含CRC校驗(yàn)碼的信息幀作為一連續(xù)的流進(jìn)行傳輸。接收方在收到該信息幀時(shí)按同樣的方式進(jìn)行計(jì)算,并將結(jié)果同收到的CRC碼的雙字節(jié)比較,如果一致就認(rèn)為通信正確,否則認(rèn)為通信有誤,從站將發(fā)送CRC錯(cuò)誤應(yīng)答。
RTU模式一般采用CRC-16冗余校驗(yàn)方法,CRC-16的校驗(yàn)碼為16位(2字節(jié)),其中低字節(jié)在前,高字節(jié)在后。實(shí)現(xiàn)CRC校驗(yàn)有兩種方法:根據(jù)CRC校驗(yàn)的定義公式進(jìn)行計(jì)算,或者在程序中建立CRC校驗(yàn)值表。在程序中使用前者更容易實(shí)現(xiàn),這里需要使用CRC生成多項(xiàng)式X16+X15+X2+1。該多項(xiàng)式對(duì)應(yīng)的碼組系數(shù)為18005H(16進(jìn)制),去除最高位,對(duì)應(yīng)的16位余數(shù)為8005H,即為CRC-16常數(shù)。CRC-16校驗(yàn)過程如下:將CRC寄存器的每一位預(yù)置為1;把該寄存器值與8bit的信息幀數(shù)據(jù)進(jìn)行異或,結(jié)果存于該寄存器;對(duì)CRC寄存器從高到低進(jìn)行移位,在最高位(MSB)的位置補(bǔ)零,而最低位(LSB,移位后已經(jīng)被移出CRC寄存器)如果為1,則把寄存器與CRC-16常數(shù)進(jìn)行異或,否則如果LSB為零,則無需進(jìn)行異或。重復(fù)上述的由高至低的移位8次,第一個(gè)8bit數(shù)據(jù)處理完畢,用此時(shí)寄存器的值與下一個(gè)8bit數(shù)據(jù)異或并進(jìn)行如前一樣的8次移位。所有的字符處理完成后CRC寄存器內(nèi)的值即為最終的CRC值。CRC添加到消息中時(shí),先加入低字節(jié),然后高字節(jié)。
1.3 鏈路特征
MODBUS標(biāo)準(zhǔn)的物理層可以采用RS-232串行通信方式,但在長(zhǎng)距離通信中常采用RS-422或RS-485代替。在多點(diǎn)通信情況下只采用RS-485方式,所以RTU模式下的MODBUS系統(tǒng)采用屏蔽雙絞線,通信距離可達(dá)1000m。一條總線上最多可配置31個(gè)從站設(shè)備。傳輸線上的信息交換是半雙工的,即同時(shí)只能有一臺(tái)設(shè)備允許發(fā)送信息,主站在發(fā)送下一條指令之前等待從站回應(yīng),從而避免了線路的沖突。
RTU模式的傳輸格式是1個(gè)數(shù)據(jù)位,2個(gè)停止位,沒有奇偶校驗(yàn)位。通信數(shù)據(jù)安全由控制參數(shù)CRC-16碼保證。RTU接收設(shè)備依靠接收字符間經(jīng)過的時(shí)間判斷一幀的開始,如果經(jīng)過3個(gè)半的字符時(shí)間后仍然沒有新的字符或者沒有完成幀,接收設(shè)備就會(huì)放棄該幀,并設(shè)下一個(gè)字符為新一幀的開始。
1.4 MODBUS總線通信的數(shù)據(jù)流程
在采用MODBUS總線構(gòu)建的SCADA系統(tǒng)中,主站和從站中的控制設(shè)備上都要實(shí)現(xiàn)MODBUS通信協(xié)議。主站控制器的通信協(xié)議實(shí)現(xiàn)過程可以表示為圖1。

2 變頻控制的基本原理
根據(jù)電機(jī)學(xué)原理,交流電動(dòng)機(jī)轉(zhuǎn)速公式為:
n= (1-s) n0 =60f(1-s) /p
式中:n為電動(dòng)機(jī)轉(zhuǎn)速;n0為同步轉(zhuǎn)速;f為電源頻率;p為電動(dòng)機(jī)磁極對(duì)數(shù);s為轉(zhuǎn)差率。
由上式可知,當(dāng)p和轉(zhuǎn)差率s不變時(shí),電動(dòng)機(jī)轉(zhuǎn)子轉(zhuǎn)速n與定子電源頻率f成正比,連續(xù)改變異步電機(jī)供電電源的頻率,則可連續(xù)平滑地調(diào)節(jié)電動(dòng)機(jī)的轉(zhuǎn)速。這即是變頻器的工作原理。
通用型變頻器基本上采用V/F控制方式,即變頻器輸出電壓的頻率F 和輸出電壓幅值U同時(shí)得到控制,并保證V/F的值恒定。工作時(shí),變頻器主電路實(shí)現(xiàn)交流-直流-交流的變換過程,內(nèi)部微控制器根據(jù)現(xiàn)場(chǎng)設(shè)定信號(hào)調(diào)節(jié)PWM輸出頻率,它控制了MOSFET管的導(dǎo)通時(shí)間,改變主電路的輸出頻率,實(shí)現(xiàn)調(diào)節(jié)電機(jī)的輸出轉(zhuǎn)速的目的。
變頻器自帶有完善的保護(hù)功能,如過流、過壓、欠壓、過熱、過載等功能。當(dāng)電機(jī)發(fā)生堵轉(zhuǎn)等故障時(shí),變頻器應(yīng)可靠跳閘,以保護(hù)電機(jī)。變頻器每次故障都有故障記憶,可將最新的故障記憶下來,以便運(yùn)行人員進(jìn)行故障分析?,F(xiàn)在很多變頻器都帶有PID功能,接受速度傳感器信號(hào),在變頻器內(nèi)部完成閉環(huán)控制功能。
變頻器輸出的電源頻率可通過操作面板的手動(dòng)旋鈕調(diào)節(jié),也可在頻率設(shè)置輸入端上接入控制信號(hào)(電壓、電流、頻率或者數(shù)字量)實(shí)現(xiàn)遠(yuǎn)程控制模式。變頻器的遠(yuǎn)程控制方法包括:(1)0~10V電壓輸入;(2)4~20mA 電流輸入;(3)脈沖頻率控制;(4)總線通信控制,現(xiàn)在多數(shù)變頻器支持Modbus、Profibus等總線控制。變頻器還可實(shí)現(xiàn)手動(dòng)/自動(dòng)工作模式的自由切換,在自動(dòng)模式下,上述模擬量或數(shù)字量的輸入需要控制器來實(shí)現(xiàn);切換到手動(dòng)方式時(shí),通過調(diào)節(jié)外部電位器對(duì)本身基準(zhǔn)電壓進(jìn)行分壓,即可獲得0~10V的控制電壓。
3 基于MODBUS的變頻調(diào)速系統(tǒng)實(shí)現(xiàn)
3.1 系統(tǒng)構(gòu)成
選用自帶MODBUS總線接口的變頻器,整合PLC、單片機(jī)或者PC機(jī)作為主站的控制器,可以組建生產(chǎn)線自動(dòng)控制系統(tǒng),發(fā)揮MODBUS總線控制和變頻調(diào)速的優(yōu)良性能,實(shí)現(xiàn)設(shè)備的集中式控制。系統(tǒng)的組成原理見圖2,在總線的兩個(gè)終端需配置120歐姆電阻。安川(YAKAZAWA)VS606 V7交流變頻器,除了電壓、電流、脈沖輸入和旋鈕控制外,還支持點(diǎn)到點(diǎn)的MODBUS 協(xié)議通信,其硬件接口采用RS422/485串行方式;軟件接口協(xié)議采用MODBUS RTU模式,消息幀中的每個(gè)8Bit字節(jié)包含兩個(gè)4Bit的十六進(jìn)制數(shù)字字符。

圖2中的微控制器AT89S52擴(kuò)展了2個(gè)通訊口,一個(gè)是RS232串口預(yù)留備用,另外通過芯片MAX485擴(kuò)展RS485接口。AT89S52作為主站微控制器,它通過RS485總線方式,將多臺(tái)V7變頻器和具備MODBUS RTU接口的智能型從站組成一個(gè)數(shù)字通信控制網(wǎng)絡(luò)。AT89S52可以向從站變頻器發(fā)送參數(shù)設(shè)置、啟停、數(shù)據(jù)查詢等指令,而變頻器則根據(jù)指令要求控制電機(jī)系統(tǒng)運(yùn)行,并返回信息。該系統(tǒng)不僅可以實(shí)現(xiàn)對(duì)交流電機(jī)的遠(yuǎn)程控制,而且還可以通過89S52與人機(jī)界面連接,完成整個(gè)生產(chǎn)線的啟動(dòng)、升速、降速停車等操作和監(jiān)控(模擬圖顯示、參數(shù)設(shè)置和只要?dú)v史記錄數(shù)據(jù)瀏覽)。該系統(tǒng)的優(yōu)點(diǎn)在于:(1)89S52直接利用MODBUS協(xié)議對(duì)交流變頻器讀寫,無需使用其它附件進(jìn)行組態(tài),簡(jiǎn)化了硬件,并可實(shí)時(shí)獲取各變頻器的工作狀態(tài),包括運(yùn)行狀態(tài)、運(yùn)行參數(shù)、故障報(bào)警等。(2)主站控制器與從站變頻器之間的連接只有兩根通信線,極大較少了線路連接的復(fù)雜性,提高了系統(tǒng)可靠性;(3)延長(zhǎng)了系統(tǒng)的控制距離;(4)采集電機(jī)各運(yùn)行參數(shù)并顯示在LCD上,不需要各種現(xiàn)場(chǎng)智能儀表,極大地較少了線路連接的復(fù)雜性;(5)能與高精度網(wǎng)絡(luò)方便地進(jìn)行交換信息,從而實(shí)現(xiàn)工廠高度自動(dòng)化。通過主站控制器的設(shè)置按鈕,可以對(duì)系統(tǒng)操作參數(shù)進(jìn)行設(shè)計(jì),對(duì)于一些重要的參數(shù)直接存儲(chǔ)在32K字節(jié)的EEPROM芯片AT24C32中。通過設(shè)置變頻器參數(shù),可實(shí)現(xiàn)系統(tǒng)運(yùn)行在手動(dòng)或程序自動(dòng)控制模式下,并可自由切換。

3.2 系統(tǒng)軟件設(shè)計(jì)
單片機(jī)程序使用C51語言編寫,采用自上而下的模塊化設(shè)計(jì)方法,整個(gè)程序包括系統(tǒng)初始化、串口發(fā)送、串口中斷接收、485通訊、LCD顯示、鍵盤接收、報(bào)警等功能子模塊。應(yīng)用程序中,MODBUS協(xié)議通信由通訊子模塊實(shí)現(xiàn),包含CRC-16計(jì)算與驗(yàn)證、信息幀的編制和分解。
每一條指令可以對(duì)指定地址的變頻器進(jìn)行操作;信息幀中包括數(shù)據(jù)的字節(jié)數(shù)、起始地址等。V7變頻器只使用3個(gè)功能碼:03H、08H、10H,分別實(shí)現(xiàn)數(shù)據(jù)讀出、回路反饋測(cè)試和數(shù)據(jù)寫入的功能,其描述如表1所示。為了實(shí)現(xiàn)MODBUS總線控制,需要預(yù)先設(shè)置變頻器的操作參數(shù):n003=2(設(shè)備啟停通過總線方式控制),n004=6(輸出頻率由總線通信方式控制),n151~n157中完成通信參數(shù)的設(shè)置。本系統(tǒng)中,將變頻器設(shè)置為無超時(shí)檢測(cè)、頻率指令單位為O.01HZ、通信波特率為9600bps、無奇偶校驗(yàn)、8位數(shù)據(jù)位、1位停止位、RS控制,而變頻器地址可以設(shè)為0~32。設(shè)置好變頻器參數(shù)之后,控制器可以通過RS485總線發(fā)送通信指令,通信流程可以由圖3表示,單片機(jī)的主站指令與變頻器/智能設(shè)備的響應(yīng)信號(hào)之間具有一定的時(shí)間間隔,在程序中需要通過循環(huán)延時(shí)語句實(shí)現(xiàn)。
4 結(jié)語
我們將本文開發(fā)的MODBUS總線控制變頻調(diào)速系統(tǒng)應(yīng)用于月餅自動(dòng)包陷生產(chǎn)線中。在該生產(chǎn)線上,以單片機(jī)為核心的控制器通過MODBUS總線控制4臺(tái)V7變頻器,這4臺(tái)變頻器通過變速機(jī)構(gòu)和電機(jī)分別控制一個(gè)月餅的外陷量、內(nèi)陷量、皮量和刀盤的收口頻率。實(shí)踐表明,MODBUS總線通信、變頻調(diào)速和液晶顯示技術(shù)的應(yīng)用,減少了控制系統(tǒng)的布線數(shù)量,提高了系統(tǒng)集成度和可靠性,月餅成分可在大范圍內(nèi)隨意調(diào)整,其良好的用戶界面大大改善了設(shè)備的操作性能,提升了產(chǎn)品的市場(chǎng)競(jìng)爭(zhēng)力。因此,直接利用MODBUS協(xié)議對(duì)其組網(wǎng)監(jiān)控,是機(jī)械設(shè)備控制系統(tǒng)獲得低成本、高性能的好途徑。
參考文獻(xiàn):
1. 閻文生, 楊煒, 陳世權(quán)等.變頻調(diào)速器在給粉機(jī)轉(zhuǎn)速控制系統(tǒng)改造中的應(yīng)用.電力學(xué)報(bào),2000(2).
2. 章紹東.通用變頻器的原理與設(shè)計(jì).電子質(zhì)量,2003(12).
3. 盧文俊,冷杉,楊建軍.基于MODBUS協(xié)議的控制器遠(yuǎn)程監(jiān)控系統(tǒng). 電力自動(dòng)化設(shè)備,2003,23(6).
4. 徐濤,閆科,趙景林. 基于MODBUS協(xié)議的串行接口實(shí)現(xiàn)與DCS通訊.工業(yè)控制計(jì)算機(jī),2002,15(3).
5. 潘洪躍. 基于MODBUS 協(xié)議通信的設(shè)計(jì)與實(shí)現(xiàn).計(jì)量技術(shù),2002,(4).
6. 王有慶,田涌濤,李從心. Modbus RTU 模式下工控機(jī)與變頻器的通訊.機(jī)床與液壓,2002,(6).
7. 梁偉.采用C51 編寫智能設(shè)備的Modbus 協(xié)議通訊軟件. 化工自動(dòng)化及儀表,2004,31 (1).