摘 要:本文以預(yù)縮整理機(jī)為基礎(chǔ),闡述了Modbus協(xié)議在丹佛斯VLT2900系列變頻器中的應(yīng)用
關(guān)鍵詞:Modbus PLC 變頻器
Abstract: Based on pre-shrink machine, this article introduces application of Modbus protocol in Danfoss VLT2900 inverter.
Key words: Modbus PLC inverter
1、預(yù)縮機(jī)原理簡(jiǎn)述
預(yù)縮機(jī)是印染行業(yè)中織物后整理的最后一道工序,它是將織物經(jīng)過(guò)機(jī)械物理預(yù)縮(橡膠毯)的方法,使其預(yù)縮率降低,手感改善?;九渲糜伤膫€(gè)單元組成:給濕單元、橡膠毯預(yù)縮單元、呢毯整理單元和出布單元。給濕單元完成預(yù)縮前的給濕準(zhǔn)備,以使織物擁有一定的含濕量,便于織物預(yù)縮。其拖動(dòng)部分為一只糙皮輥。由一個(gè)2.2KW電機(jī)拖動(dòng)。橡膠毯預(yù)縮單元是本機(jī)的核心,主要是通過(guò)橡膠毯擠壓以使織物經(jīng)向產(chǎn)生收縮。擠壓由一個(gè)φ616mm的輥筒和另一個(gè)輥筒的相對(duì)運(yùn)動(dòng)完成,拖動(dòng)由一個(gè)15KW的電機(jī)完成。呢毯整理單元主要用以烘干織物和改善手感,由一個(gè)3KW的電機(jī)拖動(dòng)一個(gè)φ2000mm的大滾筒完成。出布單元由一個(gè)1.5KW的電機(jī)拖動(dòng)擺布斗完成。其工藝流程如下:
進(jìn)布單元-橡膠毯預(yù)縮單元-呢毯整理單元-落布單元
2、系統(tǒng)配置方案
在本方案中,觸摸屏采用日本Proface公司生產(chǎn)的GP系列,PLC采用西門(mén)子公司S7-226系列,變頻器采用丹佛斯VLT2900系列,由于該系列變頻器內(nèi)已經(jīng)內(nèi)置了RS485接口且支持modbus協(xié)議,故這使該系統(tǒng)性?xún)r(jià)比非常高。S7-226系列的CPU內(nèi)置了兩個(gè)通信口,這兩個(gè)通信口都為RS485接口,均可在三種方式下工作,即PPI方式、MPI方式及自由通信口方式。PPI是point-to-point的縮寫(xiě),即點(diǎn)對(duì)點(diǎn)方式,是西門(mén)子公司專(zhuān)為S7-200系列開(kāi)發(fā)的一個(gè)通信協(xié)議,在本案中,我們可把其中的一個(gè)通信口設(shè)置為該方式,用以連接HMI,進(jìn)而做人機(jī)交換信息用。而第二個(gè)通信口我們把它設(shè)置成自由口通信方式。自由口通信方式是S7-200系列非常有特色的功能。在該方式下,依據(jù)和他通信的其他設(shè)備的公開(kāi)的通信協(xié)議來(lái)編程S7-200的通信。我們?cè)诒痉桨钢杏盟B接變頻器以實(shí)現(xiàn)它們之間的相互通信。相關(guān)系統(tǒng)框圖如下圖所示:(基于本文闡述的重點(diǎn),其它的如變頻器和電機(jī)組成的自反饋系統(tǒng)不再畫(huà)出和贅述。)
3、自由口通信和Modbus協(xié)議在S7-226和丹佛斯VLT2900系列變頻器的應(yīng)用
A. 通訊協(xié)議及其在PLC和變頻器上的基本設(shè)置
既然雙方控制器要建立通信,它們必將共同遵循一定的規(guī)約,這即稱(chēng)之為協(xié)議。本系統(tǒng)中,PLC建立的通訊規(guī)約將依從于變頻器的規(guī)約,即Modbus協(xié)議,這是因?yàn)镾7-200支持自由口通信模式。
l 自由口通信模式:
CPU串行通信口可由用戶(hù)程序控制,這種操作模式稱(chēng)作自由口通信模式。在該模式下,用戶(hù)程序可以使用接受中斷、發(fā)送中斷、發(fā)送指令(XMT)和接受指令(RCV)來(lái)進(jìn)行通信操作。利用該模式,PLC可以和任意第三方串口進(jìn)行通信。SMB30(用于端口0)和SMB130(用于端口1)用于選擇波特率、奇偶校驗(yàn)、數(shù)據(jù)位數(shù)和通信協(xié)議。
l Modbus通信協(xié)議
a.Modbus通信是一種被用于在智能設(shè)備間建立主從方式的通信,它可以通過(guò)如RS232C、RS485等多種傳輸方式進(jìn)行傳播。它分為兩種串行傳輸方式:ASCII和RTU(Remote Terminal Unit,遠(yuǎn)程測(cè)控中斷)。它們定義了數(shù)據(jù)如何打包、解碼的不同方式。丹佛斯VLT2900系列支持的是RTU方式,其格式是:
其中奇偶校驗(yàn)和停止位可以是0.即可以沒(méi)有。
Modbus由一個(gè)主站(PLC)和最多31個(gè)從站(本系統(tǒng)中為4個(gè))組成。主站負(fù)責(zé)發(fā)送指令,從站則是響應(yīng)指令。在某一時(shí)刻,只能有一個(gè)從站能和主站進(jìn)行連接。
b.丹佛斯VLT2900系列變頻器內(nèi)置了RS485物理接口,且同時(shí)支持Modbus協(xié)議。其相關(guān)的參數(shù)如站地址、波特率、校驗(yàn)等在561#、500#、570#及501#參數(shù)組內(nèi)設(shè)置。
B. PLC和變頻器通信的信號(hào)格式
l 丹佛斯VLT2900系列變頻器支持標(biāo)準(zhǔn)的Modbus-RTU信號(hào),其格式如下:
驅(qū)動(dòng)器地址:本文為變頻器地址。值為0~32.若設(shè)定為0,即為廣播方式,則從PLC同時(shí)向所有的變頻器傳送指令信號(hào),而變頻器不反饋?lái)憫?yīng)信號(hào)。
功能碼:丹佛斯VLT2900系列支持以下幾種功能碼(16進(jìn)制)。

數(shù)據(jù):存儲(chǔ)寄存器地址和數(shù)據(jù)組合構(gòu)成一組數(shù)據(jù)。因指令的內(nèi)容不同數(shù)據(jù)長(zhǎng)度不同。
故障檢查:對(duì)于RTU方式,一般采用CRC-16的方式進(jìn)行,后面我們將做進(jìn)一步的說(shuō)明
l 丹佛斯VLT2900系列變頻器編址
既然PLC與變頻器通信時(shí)操作對(duì)象是存儲(chǔ)器,故變頻器內(nèi)部必須有PLC能識(shí)別的存儲(chǔ)器地址相對(duì)應(yīng)。變頻器生產(chǎn)廠家不同會(huì)導(dǎo)致其編址方法的不同。丹佛斯VLT2900系列變頻器編址和你在其說(shuō)明書(shū)上看到的參數(shù)號(hào)是遵從一等式的,即參數(shù)地址(HEX)=[(參數(shù)號(hào)×10)-1>(DEC)。
l Modbus信號(hào)舉例
a) 通過(guò)重寫(xiě)控制字與參考值的方式,啟動(dòng)電機(jī)并使之運(yùn)行在50%的轉(zhuǎn)速下。
指令信號(hào):[01> [0F> [00> [00> [00> [20> [04> [7C> [04> [00> [20> [9D> [01>
該指令中
[01>為驅(qū)動(dòng)器地址
[0F>為功能碼,是指本命令為寫(xiě)多個(gè)位存儲(chǔ)器指令;
[00> [00>指出將要寫(xiě)入數(shù)據(jù)的起始地址為位存儲(chǔ)器的首地址。
[00> [20>為寫(xiě)入長(zhǎng)度,20HX=32DEC位數(shù)據(jù)。
[04>為要寫(xiě)入位的總字節(jié)數(shù)為4個(gè)。
[7C> [04> 047C是啟動(dòng)電機(jī)的控制字內(nèi)容,在實(shí)際傳輸中為低位前置。
[00> [20>為電機(jī)運(yùn)行的參考值,在實(shí)際傳輸中低位前置。
[9D> [01>為計(jì)算出的CRC-16值
正常時(shí)其響應(yīng)信號(hào)應(yīng)為:
[01> [0F> [00> [00> [00> [20> [54> [13>
b) 按頻率指令60.0HZ傳送到1#變頻器(地址為01),
指令信號(hào):[01>[06>[04>[0F>[00>[3C>[B8>[E8>
正常時(shí)響應(yīng)信號(hào)為: [01>[06>[04>[0F>[00>[3C>[B8>[E8>
C. 信號(hào)的發(fā)送和接受指令:
當(dāng)信號(hào)格式被確定后,我們所要做的是從PLC如何把它們發(fā)送出去和如何接收變頻器的響應(yīng)信號(hào)了,在自由口模式當(dāng)中,信號(hào)可以用XMT命令發(fā)送,用RCV命令接收,另外我們還可以利用SMB2(接收緩沖字節(jié))配合其它如MOV指令等來(lái)實(shí)現(xiàn)字符的接收。在S7-200系統(tǒng)中,設(shè)計(jì)了諸如發(fā)送完成、接收完成等中斷事件,我們將很方便的通過(guò)它們來(lái)控制整個(gè)程序的運(yùn)行。
4、 PLC程序的設(shè)計(jì)
a) 數(shù)學(xué)模型:由于各個(gè)單元間是采用線(xiàn)性比例同步的,所以構(gòu)建其數(shù)學(xué)模型非常簡(jiǎn)單,只要使某單元的轉(zhuǎn)速和其相鄰上一級(jí)單元遵循數(shù)學(xué)公式V1=k×V2即可。為了調(diào)節(jié)兩單元之間的張力,我們只需調(diào)節(jié)兩單元間比例k即可。這里需提醒注意的是:某一單元的轉(zhuǎn)速必須以上一級(jí)為基礎(chǔ)進(jìn)行比例調(diào)節(jié),這樣才不至于在調(diào)節(jié)單元的速度時(shí),影響其它單元間的張力。
b) 程序框圖

c) 程序結(jié)構(gòu)
程序結(jié)構(gòu)包括主程序、初始化子程序、停車(chē)子程序、開(kāi)車(chē)子程序、比例設(shè)定子程序和速度計(jì)算子程序。其中與通信有關(guān)的程序有CRC-16校驗(yàn)程序、發(fā)送中斷程序、接收中斷程序等。下面主要介紹一下CRC-16校驗(yàn)程序。
CRC是 “Cyclical Rendundancy Check” (循環(huán)冗余碼校驗(yàn))的英文簡(jiǎn)稱(chēng)。 CRC碼為2個(gè)字節(jié),16位的二進(jìn)制值。故又叫CRC-16。由發(fā)送設(shè)備計(jì)算CRC值,并把它附到信息中去。接收設(shè)備在接收信息過(guò)程中再次計(jì)算CRC值并與CRC的實(shí)際值進(jìn)行比較,若二者不一致,亦產(chǎn)生一個(gè)錯(cuò)誤,校驗(yàn)開(kāi)始時(shí),把16位寄存器的各位都置為“1”,然后把信息中的相鄰2個(gè)8位字節(jié)數(shù)據(jù)放到當(dāng)前寄存器中處理,只有每個(gè)字符的8位數(shù)據(jù)用于CRC處理。起始位,停止位和校驗(yàn)位不參與CRC計(jì)算。 CRC校驗(yàn)時(shí),每個(gè)8位數(shù)據(jù)與該寄存器的低位內(nèi)容進(jìn)行異或運(yùn)算,然后向最低有效位(LSB)方向移位,同時(shí)用零填入最高有效位(MSB)后,再對(duì)LSB檢查,若LSB=1,則寄存器與生成多項(xiàng)式(16#A001)異或,若LSB=0,不作異或運(yùn)算。重復(fù)上述處理過(guò)程,直至移位8次,最后一次(第8次)移位后,下一個(gè)8位字節(jié)數(shù)據(jù)與寄存器的當(dāng)前值異或,再重復(fù)上述過(guò)程。全部處理完信息中的數(shù)據(jù)字節(jié)后,最終得到的寄存器值為CRC值。 在程序編制時(shí),可以使用FOR/NEXT指令,并使用一次嵌套。在發(fā)送時(shí),CRC值附加到信息時(shí),低位在先,高位在后。
總結(jié):通過(guò)實(shí)踐證明,該方案使得系統(tǒng)布線(xiàn)變得簡(jiǎn)單,使系統(tǒng)的抗干擾性明顯增強(qiáng)。為該設(shè)備的系統(tǒng)升級(jí)作出了應(yīng)有的貢獻(xiàn)。