引言 現(xiàn)代工業(yè)自動(dòng)控制系統(tǒng)朝智能化,、網(wǎng)絡(luò)化和開(kāi)放式結(jié)構(gòu)的方向發(fā)展。利用現(xiàn)場(chǎng)總線技術(shù),,將符合同一標(biāo)準(zhǔn)的各種智能設(shè)備統(tǒng)一起來(lái),,徹底實(shí)現(xiàn)整個(gè)監(jiān)測(cè)系統(tǒng)的分散控制,將提高系統(tǒng)集成度和數(shù)據(jù)傳輸效率,、延長(zhǎng)有效控制距離,,并有利于提高系統(tǒng)抗干擾性能和擴(kuò)展系統(tǒng)功能。在運(yùn)動(dòng)控制中,伺服電機(jī)以其響應(yīng)速度快,,控制精準(zhǔn)等優(yōu)點(diǎn)以被更多的客戶所選用,。如果把總線通信與伺服控制技術(shù)統(tǒng)一起來(lái),將推動(dòng)運(yùn)動(dòng)控制技術(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的伺服電機(jī)運(yùn)動(dò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è)備通過(guò)異步串行總線連接起來(lái),,只允許一個(gè)控制器作為主站,,其余智能設(shè)備作為從站。采用命令/應(yīng)答的通信方式,,主站發(fā)出請(qǐng)求,,從站應(yīng)答請(qǐng)求并送回?cái)?shù)據(jù)或狀態(tài)信息,從站不能夠自己發(fā)送信息,。MODBUS協(xié)議定義的各種信息幀格式,,描述了主站控制器訪問(wèn)從站設(shè)備的過(guò)程,規(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)開(kāi)發(fā)成本低,,簡(jiǎn)單易用,并且現(xiàn)在已有很多工控器,、PLC,、顯示屏等都具有MODBUS通信接口,所以它已經(jīng)成為一種公認(rèn)的通信標(biāo)準(zhǔn),。通過(guò)MODBUS總線,,可以很方便地將不同廠商生產(chǎn)的控制設(shè)備連成工業(yè)網(wǎng)絡(luò),,進(jìn)行集中監(jiān)控。
MODBUS最初為PLC通信而設(shè)計(jì),,它通過(guò)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”),。可見(jiàn),,發(fā)送同樣的數(shù)據(jù)時(shí),,RTU模式的效率大約為ASCII模式的兩倍。一般來(lái)說(shuō),,數(shù)據(jù)量少而且主要是文本時(shí)采用ASCII,;通信數(shù)據(jù)量大而且是二進(jìn)制數(shù)值時(shí),多采用RTU模式,。
主站一次可向一個(gè)或所有從站發(fā)送通信請(qǐng)求(或指令),,主設(shè)備通過(guò)消息幀的地址域來(lái)選通從設(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)容。
MODBUS部分功能碼
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)過(guò)程如下:將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為零,則無(wú)需進(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è)停止位,,沒(méi)有奇偶校驗(yàn)位,。通信數(shù)據(jù)安全由控制參數(shù)CRC-16碼保證。RTU接收設(shè)備依靠接收字符間經(jīng)過(guò)的時(shí)間判斷一幀的開(kāi)始,,如果經(jīng)過(guò)3個(gè)半的字符時(shí)間后仍然沒(méi)有新的字符或者沒(méi)有完成幀,,接收設(shè)備就會(huì)放棄該幀,并設(shè)下一個(gè)字符為新一幀的開(kāi)始,。
2 松下PLC MODBUS控制的實(shí)現(xiàn)
松下PLC支持modbus協(xié)議,,只需要在選項(xiàng)、PLC系統(tǒng)寄存器設(shè)置,、COM1口設(shè)置中站號(hào)設(shè)成1,,通訊模式設(shè)為MODBUS RTU,通訊速率和通訊格式與05驅(qū)動(dòng)器的設(shè)置保持一致,。設(shè)置完成后可通過(guò)F145 SEND指令實(shí)現(xiàn)與05的通訊,。
例:
F0 MV , H2 ,,DT10 (發(fā)送2個(gè)字節(jié))
F0 MV ,, H1002 ,DT11 (通過(guò)1號(hào)COM口向2號(hào)站發(fā)數(shù)據(jù))
F145 SEND,, DT10 ,,DT4 ,DT0 ,,K1282
(把DT4,,DT5的兩個(gè)字節(jié)通過(guò)COM1發(fā)送到2號(hào)站的K1282地址)
3 施耐德05A伺服驅(qū)動(dòng)器的配置
首先過(guò)驅(qū)動(dòng)器的HMI面板把控制方式設(shè)為modbus模式,把波特率,、通訊格式設(shè)置成與PLC一致,。
|
|
來(lái)自: 我的4S > 《我的圖書(shū)館》