李強(qiáng)
【摘 要】針對(duì)機(jī)電專業(yè)學(xué)生對(duì)三菱PLC的控制的變頻器可以Modbust通信協(xié)議來(lái)控制分析比較困難,我從什么是ModBus通信協(xié)議和ModBus通信協(xié)議有兩種傳送方式進(jìn)行了分析和講解,對(duì)怎樣控制變頻器還例舉了例題,對(duì)機(jī)電專業(yè)學(xué)生以后進(jìn)一步用Modbust協(xié)議編寫三菱PLC的控制的變頻器梯形圖有關(guān)鍵的引導(dǎo)作用。
【關(guān)鍵詞】ModBus通信協(xié)議 兩種傳送方式 編程分析 舉例
Modbust是現(xiàn)在Modbus是由Modicon(現(xiàn)為施耐德電氣公司的一個(gè)品牌)在1979年發(fā)明的,是全球第一個(gè)真正用于工業(yè)現(xiàn)場(chǎng)的總線協(xié)議。ModBus網(wǎng)絡(luò)是一個(gè)工業(yè)通信系統(tǒng),由帶智能終端的可編程序控制器和計(jì)算機(jī)通過(guò)公用線路或局部專用線路連接而成。其系統(tǒng)結(jié)構(gòu)既包括硬件、亦包括軟件。它可應(yīng)用于各種數(shù)據(jù)采集和過(guò)程監(jiān)控。ModBus網(wǎng)絡(luò)只有一個(gè)主機(jī),所有通信都由他發(fā)出。網(wǎng)絡(luò)可支持247個(gè)之多的遠(yuǎn)程從屬控制器,但實(shí)際所支持的從機(jī)數(shù)要由所用通信設(shè)備決定。采用這個(gè)系統(tǒng),各PC可以和中心主機(jī)交換信息而不影響各PC執(zhí)行本身的控制任務(wù)。
三菱PLC的控制的變頻器可以Modbust通信協(xié)議控制,Modbust是現(xiàn)在應(yīng)用廣泛串行通訊協(xié)議,其物理量采用RS232、RS485等異步串行標(biāo)準(zhǔn),由于開放性而被大量的PLC及RTU廠家采用。
ModBus通信方式采用主從方式的查詢一相應(yīng)機(jī)制,只有主站發(fā)出查詢時(shí),從站才能給出響應(yīng),從站不能主動(dòng)發(fā)出發(fā)送數(shù)據(jù),主站可以向某一個(gè)從站發(fā)出查詢,也可以向所有從站廣播消息,從站只響應(yīng),單獨(dú)發(fā)給它的查詢,而不能響應(yīng)廣播消息。
ModBus通信協(xié)議有兩種傳送方式:ASCII方式和RTU方式。
ASCII模式特點(diǎn):每個(gè)8-bit信息由兩個(gè)ASCII字符所組成。例如一個(gè)字節(jié)的“64H”,以ASCII碼表示分為兩個(gè)字節(jié),第一個(gè)是“6”轉(zhuǎn)化為ASCII碼為(36H),第一個(gè)是“4” 轉(zhuǎn)化為ASCII碼為(34H),占2個(gè)數(shù)據(jù)寄存器。
RTU模式特點(diǎn),每一個(gè)8-bitx信息由兩個(gè)4-bit十六進(jìn)制的數(shù)組成。例如:64H只點(diǎn)一個(gè)數(shù)據(jù)字存器。6轉(zhuǎn)化為ASCII碼是(36H),4轉(zhuǎn)化為ASCII碼是(34H),ASCII模式采用LRC(Longitudinal Rcdudancey Check)偵誤值。LRC)偵誤值。LRC偵誤值是將ADR1至最后一個(gè)資料內(nèi)容加總和,得到的結(jié)果保留低8位(例如得到的結(jié)果為16進(jìn)制位128H,則只取28H,)然后取和的補(bǔ)碼(就是取反加一),即為L(zhǎng)RC偵誤值。例如,從地址為01H的交流電機(jī)驅(qū)動(dòng)器0.401H地址中讀取一個(gè)字 01H+03H+04H001H+00H001H=0AH OAH的補(bǔ)碼為F6H RTU模式采用CRC(Cyclical Redundancy Check)偵誤值。
生成一個(gè)CRC的流程為:(1)預(yù)置一個(gè)16位寄存器為(FFFFH),全部為“1”,稱為CRC寄存器。(2)把數(shù)據(jù)的第一個(gè)字節(jié)的8位與CRC寄存器中的低字節(jié)進(jìn)行異或運(yùn)算,結(jié)果存回CRC寄存器。(3)把CRC寄存器向右移一位,最高位填以“0”,最低位異或運(yùn)算,結(jié)果存回CRC寄存器。(4)如果最低位為“0”,重復(fù)第三步(下一次移位),如果最位為“1”,將CRC 寄存器與一個(gè)預(yù)設(shè)的固定的(AOO1H)進(jìn)行異或運(yùn)算。(5)重復(fù)第二步和第四步直到8次移位,這樣就處理了一個(gè)完整的八位。(6)重復(fù)第二步和第五步步驟處理下一個(gè)8位直到所有的字節(jié)處理結(jié)束。(7)最最終CRC寄存器的值就是CRC的值。
例題:三菱PLC通過(guò)Modbust通信協(xié)議ASCII模式控制臺(tái)達(dá)變頻器正轉(zhuǎn),反轉(zhuǎn),停止,和調(diào)速。分析根據(jù)指令信息協(xié)議,套用Modbust指令信息的格式表1所示:
STX 是報(bào)文開始,轉(zhuǎn)化為ASCII碼03H是固定的,ADR1和ADR0是變頻器的賬號(hào),設(shè)定ADR1是“0”,ADR0是“1”。CMD1和CMD0是指令代碼,是做什么的操作,由于PLC正轉(zhuǎn),反轉(zhuǎn),停止是放在一個(gè)寄存器中,調(diào)速是放在另一個(gè)寄存器中,兩個(gè)都是數(shù)據(jù)的寫入操作,因此CMD0是指令代碼選H06的操作,選重啟始資料地址,在資料數(shù)中運(yùn)行,最后得到兩個(gè)校驗(yàn)碼LRC CHK1和 LRC CHK0和有兩個(gè)結(jié)束符號(hào)END1和END0,三菱PLC通過(guò)Modbust通信協(xié)議ASCII模式控制變頻器的梯形圖就按這用套用編程。代碼功能表2所示:
表2 代碼功能
表3所示,是臺(tái)達(dá)變頻器的參數(shù)手冊(cè)的一部分,它的參數(shù)地址正常參數(shù)是用00nn來(lái)表示,nn代表參數(shù)號(hào),如變頻器的參數(shù)號(hào)P100由16進(jìn)制0064H來(lái)表示,反過(guò)來(lái)對(duì)啟動(dòng)器的指令0064H來(lái)表示參數(shù)P100,對(duì)驅(qū)動(dòng)器的指令是2000H,它有16位,0-1位是控制運(yùn)行的,01B是停止,10B是啟動(dòng),2-3位是保留,4-5位是控制運(yùn)行方向,01B是正轉(zhuǎn),10B是反轉(zhuǎn),6-15位是保留不用??刂谱冾l器正轉(zhuǎn),反轉(zhuǎn)和停止,就是對(duì)參數(shù)2000H寫數(shù)字,如對(duì)變頻器正轉(zhuǎn)啟動(dòng)操作的16進(jìn)制數(shù)位000000000010010轉(zhuǎn)化為ASCII碼是0012H,對(duì)變頻器反轉(zhuǎn)啟動(dòng)操作的16進(jìn)制數(shù)位000000000100010轉(zhuǎn)化為ASCII碼是0022H,對(duì)變頻器停止操作的16進(jìn)制數(shù)位000000000000001轉(zhuǎn)化為ASCII碼是0001H,變頻器正轉(zhuǎn)啟動(dòng)時(shí)在2000H中寫入0012H,變頻器反轉(zhuǎn)啟動(dòng)時(shí)在2000H中寫入0022H,變頻器停止時(shí)在變頻器參數(shù)2000H中寫入0001H,運(yùn)行后得得到兩個(gè)校驗(yàn)碼LRC CHK1和 LRC CHK0。調(diào)速在變頻器參數(shù)2001H中改變數(shù)據(jù),變頻器頻率就會(huì)改變。
表3 變頻器通信協(xié)定協(xié)議的參數(shù)地址及定義
參考文獻(xiàn):
[1] 程子華.PLC原理與編程實(shí)例分析[M],國(guó)防工業(yè)出版社,2006-07-15.
[2] 李江全.三菱PLC通信與控制應(yīng)用編程實(shí)例[M].中國(guó)電力出版社,2010-10-12.
[3] 李江全.西門子PLC通信與控制應(yīng)用編程實(shí)例[M].中國(guó)電力出版社,2012-06-10.