知識|ABB變頻器與三菱PLC間的Modbus-RTU協(xié)議通信
時間:2012年4月21日 來源:互聯(lián)網(wǎng) 關(guān)鍵詞: Modbus-RTU 三菱 PLC ABB 變頻器 ABB變頻器
0 引言 Modbus協(xié)議是由美國MODICON(莫迪康)公司于20世紀80年代末開發(fā),有Modbus-RTU、Modbus-ASCII和Modbus-TCP 3種通信方式,其中Modbus-RTU、Modbus-ASCII使用RS-232、RS-422和RS-485串行接口進行傳輸。 Modbus協(xié)議具有良好兼容性和開放性,為各產(chǎn)商生產(chǎn)的工業(yè)控制器(如工控機、PLC、變頻器和各種智能儀器儀表等)所采用,用于控制器相互之間、控制器(經(jīng)網(wǎng)絡(luò))與其它設(shè)備之間的通信。常用的變頻器品牌如ABB、三菱、海利普、東芝、LS、臺達和安邦信等都兼容Modbus-RTU通信協(xié)議,這為變頻器使用功能的擴展提供了空間,也為以電動機為重要執(zhí)行元件的工業(yè)自動化控制系統(tǒng)的進一步發(fā)展提供了有力支持?! ? Modbus-RTU協(xié)議信息幀 1.1 Modbus-RTU協(xié)議信息幀格式 Modbus-RTU協(xié)議常用功能信息幀格式如下: Modbus協(xié)議通

信采用主從通信技術(shù),允許主機與一臺或多臺從機通信。每次通信均由主機通過信息幀發(fā)出請求信息,從機收到正確無誤的請求信息后,通過響應(yīng)信息幀返回相應(yīng)的數(shù)據(jù)或狀態(tài)信息以響應(yīng)主機請求。信息幀是主機與從機之間進行Modbus-RTU協(xié)議通信的基礎(chǔ),由地址信息、功能信息、數(shù)據(jù)信息和錯誤校驗信息4個部分按一定順序組成,各信息數(shù)據(jù)分別存放在8位十六進制字節(jié)中。 從機地址是從機唯一的通信地址,可設(shè)定值為1~247,0為主機對全部從機進行廣播,從機不響應(yīng)。功能代碼是主機對從機的要求,從機根據(jù)要求執(zhí)行相關(guān)動作。Modbus-RTU協(xié)議支持技術(shù)規(guī)范中規(guī)定從零開始尋址空間,所以在設(shè)定從機Modbus-RTU協(xié)議分配的保持寄存器開始地址時,實際的地址是設(shè)定開始地址的數(shù)值加上1?! ?.2 出錯校驗CRC碼 Modbus-RTU協(xié)議為保證主機和從機之間的通信信息完整正確,在信息幀中加入出錯校驗CRC碼。出錯校驗CRC碼使用16位循環(huán)冗余的方法,占用2個字節(jié),包含了一個16位的二進制值。CRC值由主機計算出來附加到信息幀上,從機在接收信息時重新計算CRC值,然后與接收到的CRC值進行比較,如果這兩個值不相等,說明信息幀有錯誤。在自動控制系統(tǒng)中,各種通信信息在傳輸中經(jīng)常受到電噪聲、電磁干擾以及其它干擾,數(shù)據(jù)和控制指令可能會發(fā)生一些改變,使控制系統(tǒng)產(chǎn)生異常。Modbus-RTU通信協(xié)議在信息幀中加入出錯校驗CRC碼,能夠保證從機不去響應(yīng)或執(zhí)行在傳輸過程中發(fā)生改變的數(shù)據(jù)和指令信息,大大提高了系統(tǒng)的安全性和效率。生成16位循環(huán)冗余出錯校驗CRC碼的步驟如下: (1)設(shè)置一個值為H0FFFF(即全部位均為1)的16位寄存器,稱之為CRC寄存器。 (2)把第一個8位字節(jié)與CRC寄存器低位進行異或運算。將運算結(jié)果儲存在CRC寄存器中?! ?3)把CRC寄存器中的位向右(低位方向)移一位,最高位用0填補,檢查最低位的值?! ?4)如果最低位的值是0,則重復(fù)第(3)步;如果最低位的值是1,則將CRC寄存器與多項式HA001(1010000000000001)進行異或運算。 (5)重復(fù)上述第(3)步和第(4)步,直至CRC寄存器共向右移8位,這時一個8位字節(jié)的數(shù)據(jù)處理完成?! ?6)重復(fù)上述第(2)步到第(5)步,進行下一個8位字節(jié)的處理?! ?7)重復(fù)上述第(2)步到第(6)步,直到將信息幀所有字節(jié)均與這個CRC寄存器進行過異或運算?! ?8)最后這個16位CRC寄存器中的值即為2個字節(jié)CRC校驗碼?! ∪釬X1N系列PLC生成CRC碼的程序如圖1所示?!?/p>

圖1 生成出錯校驗CRC碼的PLC程序 2 Modbus協(xié)議通信系統(tǒng)組成 Modbus-RTU協(xié)議通信系統(tǒng)組成如圖2所示,由ABB ACS510系列變頻器、三菱FX1N系列PLC和三菱FX1N-485-BD通信板組成。PLC通過RS-485通信板用屏蔽雙絞線連接到變頻器內(nèi)置RS-485接口上,構(gòu)成Modbus-RTU協(xié)議通信的傳輸通道。根據(jù)控制系統(tǒng)的作用和目的,在變頻器上設(shè)定好Modbus-RTU協(xié)議通信參數(shù)和其它相關(guān)參數(shù),并向PLC中輸入已編寫好的包含Modbus-RTU協(xié)議通信程序在內(nèi)的控制程序后,PLC和變頻器之間就可以進行Modbus-RTU協(xié)議通信?! odbus-RTU協(xié)議通信使用專用的信息幀,在主機PLC與從機變頻器之間進行串行通信。PLC發(fā)出查詢信息幀,變頻器接收到正確的查詢信息后向PLC返回發(fā)送響應(yīng)信息幀,并執(zhí)行查詢信息幀所要求的功能。當(dāng)變頻器接收到異常的查詢信息時,就返回錯誤響應(yīng)信息幀或者不返回響應(yīng)信息幀,同時不執(zhí)行查詢信息要求的功能。信息幀具有讀取數(shù)據(jù)和寫入數(shù)據(jù)的功能,使PLC不僅能夠?qū)懭牖蜃x取變頻器的參數(shù),還可以對變頻器發(fā)出控制指令并確認其運行狀態(tài),這樣PLC就可以全方位監(jiān)控變頻器的運行?!?/p>

圖2 變頻器與PLC間Modbus協(xié)議通信組成 3 ABB變頻器通信參數(shù)設(shè)置 為確保ABB變頻器與PLC之間的Modbus-RTU協(xié)議通信正常暢通,需要對變頻器的相關(guān)參數(shù)進行設(shè)定,如表1所示。ABB ACS510系列變頻器需要設(shè)置與Modbus-RTU協(xié)議通信相關(guān)參數(shù)組:Group98可選件,激活Modbus-RTU協(xié)議RS-485串行傳輸通信;Group53內(nèi)置通信協(xié)議,定義內(nèi)置現(xiàn)場總線(EFB)通信協(xié)議的配置;Group16系統(tǒng)控制,定義系列系統(tǒng)控制參數(shù)(如鎖定、復(fù)位和使能控制等);Group14繼電器輸出,設(shè)定每個輸出繼電器動作條件;Group13模擬輸入,設(shè)定模擬輸入的限幅值和濾波時間;Group11給定選擇,選擇、設(shè)定外部給定1、2的來源和性質(zhì);Group10輸入指令,定義控制起動、停止和方向的外部控制源,電機方向鎖定或允許電機正反轉(zhuǎn)。其它變頻器參數(shù)根據(jù)電機的工作環(huán)境、使用用途等因素進行設(shè)定?! ”? 變頻器Modbus-RTU協(xié)議通信參數(shù)設(shè)定值

4 PLC程序設(shè)計 三菱FX系列PLC通過RS-485串行通信傳輸方式與變頻器進行Modbus-RTU協(xié)議通信,RS串行數(shù)據(jù)傳送功能指令是FX系列PLC進行發(fā)送和接收串行數(shù)據(jù)的功能指令。在RS功能指令驅(qū)動前,要對RS功能指令通信數(shù)據(jù)傳送格式的特殊數(shù)據(jù)寄存器D8120進行設(shè)定。設(shè)定值是與ABB ACS510系列變頻器的通信參數(shù)設(shè)定相對應(yīng)的H0C99,即RS-485接口,無起始符和終止符,傳送速度19200bps,2位停止位,無奇偶性,數(shù)據(jù)長度為8位。Modbus-RTU協(xié)議通信信息幀中的信息和數(shù)據(jù)是以8位字節(jié)形式傳送的,要使PLC中的8位處理模式特殊輔助繼電器M8161保持常通?! ∶看斡肦S功能指令發(fā)送數(shù)據(jù)的同時,要用脈沖指令置位串行通信發(fā)送標(biāo)志特殊輔助繼電器M8122,發(fā)送結(jié)束后M8122將自動復(fù)位。在串行通信接收完成標(biāo)志特殊輔助繼電器M8123觸點動作前,先要將RS功能指令接收的數(shù)據(jù)傳送到其它的PLC數(shù)據(jù)寄存器中,再對接收完成標(biāo)志M8122進行復(fù)位。PLC通過RS功能指令接收到從變頻器返回來的數(shù)據(jù),分別存放在高、低位數(shù)據(jù)寄存器中,因此要對接收到的數(shù)據(jù)進行合成處理,并將其傳送到另外的數(shù)據(jù)寄存器中存放。ABB ACS系列變頻器還支持H17(或者23)讀/寫多個保持寄存器功能碼指令,即由H3(或者3)讀保持寄存器功能碼指令和H10(或者16)寫多個保持寄存器功能碼指令合成的一個復(fù)合功能碼指令。在編寫與ABB變頻器的Modbus-RTU協(xié)議通信程序時,采用H17(或者23)讀/寫多個保持寄存器功能碼指令,可以大大簡化通信程序,提高編程效率?! ?結(jié)語 變頻器與PLC之間的Modbus-RTU協(xié)議通信,改變了以往變頻器單純接受PLC發(fā)出的開關(guān)指令和模擬信號的模式,使變頻器幾乎所有輸入控制信息和數(shù)據(jù)均可來自現(xiàn)場總線。同時,變頻器根據(jù)PLC的要求,將當(dāng)前運行數(shù)據(jù)和狀態(tài)傳回給PLC,并通過PLC上傳到自動控制系統(tǒng)中的顯示終端、上位機,或者由PLC通過網(wǎng)絡(luò)上傳到中央控制系統(tǒng)。這為工業(yè)控制從單機控制走向集中監(jiān)控、集散控制,以及工業(yè)控制器聯(lián)網(wǎng)進行網(wǎng)絡(luò)化監(jiān)控管理提供了進一步的支持?! ⒖嘉墨I [1] ABB公司. ACS510用戶手冊.2007 [2] 三菱公司.FX1N系列微型可編程控制器使用手冊.1999 [3] 廖常初.PLC編程及應(yīng)用[M].北京: 機械工業(yè)出版社, 2002
微信聯(lián)盟:三菱PLC微信群、Modbus-RTU協(xié)議通信微信群,各細分行業(yè)微信群:點擊這里進入。
鴻達安視:水文水利在線監(jiān)測儀器、智慧農(nóng)業(yè)在線監(jiān)測儀器 查看各品牌在細分領(lǐng)域的定位宣傳語


評論排行