摘要:本文以預縮整理機為基礎,闡述了Modbus協議在丹佛斯VLT2900系列變頻器中的應用
關鍵詞: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、預縮機原理簡述
預縮機是印染行業中織物后整理的最后一道工序,它是將織物經過機械物理預縮(橡膠毯)的方法,使其預縮率降低,手感改善。基本配置由四個單元組成:給濕單元、橡膠毯預縮單元、呢毯整理單元和出布單元。給濕單元完成預縮前的給濕準備,以使織物擁有一定的含濕量,便于織物預縮。其拖動部分為一只糙皮輥。由一個2.2KW電機拖動。橡膠毯預縮單元是本機的核心,主要是通過橡膠毯擠壓以使織物經向產生收縮。擠壓由一個φ616mm的輥筒和另一個輥筒的相對運動完成,拖動由一個15KW的電機完成。呢毯整理單元主要用以烘干織物和改善手感,由一個3KW的電機拖動一個φ2000mm的大滾筒完成。出布單元由一個1.5KW的電機拖動擺布斗完成。其工藝流程如下:
進布單元-橡膠毯預縮單元-呢毯整理單元-落布單元
2、系統配置方案
在本方案中,觸摸屏采用日本Proface公司生產的GP系列,PLC采用西門子公司S7-226系列,變頻器采用丹佛斯VLT2900系列,由于該系列變頻器內已經內置了RS485接口且支持modbus協議,故這使該系統性價比非常高。S7-226系列的CPU內置了兩個通信口,這兩個通信口都為RS485接口,均可在三種方式下工作,即PPI方式、MPI方式及自由通信口方式。PPI是point-to-point的縮寫,即點對點方式,是西門子公司專為S7-200系列開發的一個通信協議,在本案中,我們可把其中的一個通信口設置為該方式,用以連接HMI,進而做人機交換信息用。而第二個通信口我們把它設置成自由口通信方式。自由口通信方式是S7-200系列非常有特色的功能。在該方式下,依據和他通信的其他設備的公開的通信協議來編程S7-200的通信。我們在本方案中用它連接變頻器以實現它們之間的相互通信。相關系統框圖如下圖所示:(基于本文闡述的重點,其它的如變頻器和電機組成的自反饋系統不再畫出和贅述。)
3、 自由口通信和Modbus協議在S7-226和丹佛斯VLT2900系列變頻器的應用
A. 通訊協議及其在PLC和變頻器上的基本設置
既然雙方控制器要建立通信,它們必將共同遵循一定的規約,這即稱之為協議。本系統中,PLC建立的通訊規約將依從于變頻器的規約,即Modbus協議,這是因為S7-200支持自由口通信模式。
l 自由口通信模式:
CPU串行通信口可由用戶程序控制,這種操作模式稱作自由口通信模式。在該模式下,用戶程序可以使用接受中斷、發送中斷、發送指令(XMT)和接受指令(RCV)來進行通信操作。利用該模式,PLC可以和任意第三方串口進行通信。SMB30(用于端口0)和SMB130(用于端口1)用于選擇波特率、奇偶校驗、數據位數和通信協議。
l Modbus通信協議
a.Modbus通信是一種被用于在智能設備間建立主從方式的通信,它可以通過如RS232C、RS485等多種傳輸方式進行傳播。它分為兩種串行傳輸方式:ASCII和RTU(Remote Terminal Unit,遠程測控中斷)。它們定義了數據如何打包、解碼的不同方式。丹佛斯VLT2900系列支持的是RTU方式,其格式是:
1起始位 |
8位數據 |
1奇/偶校驗 |
1停止位 |
其中奇偶校驗和停止位可以是0.即可以沒有。
Modbus由一個主站(PLC)和最多31個從站(本系統中為4個)組成。主站負責發送指令,從站則是響應指令。在某一時刻,只能有一個從站能和主站進行連接。
b.丹佛斯VLT2900系列變頻器內置了RS485物理接口,且同時支持Modbus協議。其相關的參數如站地址、波特率、校驗等在561#、500#、570#及501#參數組內設置。
B. PLC和變頻器通信的信號格式
l 丹佛斯VLT2900系列變頻器支持標準的Modbus-RTU信號,其格式如下:
驅動器地址 |
功能碼 |
數據 |
故障檢查 |
驅動器地址:本文為變頻器地址。值為0~32.若設定為0,即為廣播方式,則從PLC同時向所有的變頻器傳送指令信號,而變頻器不反饋響應信號。
功能碼:丹佛斯VLT2900系列支持以下幾種功能碼(16進制)。
功能碼 |
功能 |
功能碼 |
功能 |
01H |
讀位存儲器狀態 |
06H |
寫一個字存儲器 |
03H |
讀字存儲器狀態 |
0F |
寫多個位存儲器 |
05H |
寫一個位存儲器 |
10H |
寫多個字存儲器 |
數據:存儲寄存器地址和數據組合構成一組數據。因指令的內容不同數據長度不同。
故障檢查:對于RTU方式,一般采用CRC-16的方式進行,后面我們將做進一步的說明
l 丹佛斯VLT2900系列變頻器編址
既然PLC與變頻器通信時操作對象是存儲器,故變頻器內部必須有PLC能識別的存儲器地址相對應。變頻器生產廠家不同會導致其編址方法的不同。丹佛斯VLT2900系列變頻器編址和你在其說明書上看到的參數號是遵從一等式的,即參數地址(HEX)=[(參數號×10)-1>(DEC)。
l Modbus信號舉例
a) 通過重寫控制字與參考值的方式,啟動電機并使之運行在50%的轉速下。
指令信號:[01> [0F> [00> [00> [00> [20> [04> [7C> [04> [00> [20> [9D> [01>
該指令中
[01>為驅動器地址
[0F>為功能碼,是指本命令為寫多個位存儲器指令;
[00> [00>指出將要寫入數據的起始地址為位存儲器的首地址。
[00> [20>為寫入長度,20HX=32DEC位數據。
[04>為要寫入位的總字節數為4個。
[7C> [04> 047C是啟動電機的控制字內容,在實際傳輸中為低位前置。
[00> [20>為電機運行的參考值,在實際傳輸中低位前置。
[9D> [01>為計算出的CRC-16值
正常時其響應信號應為:
[01> [0F> [00> [00> [00> [20> [54> [13>
b) 按頻率指令60.0HZ傳送到1#變頻器(地址為01),
指令信號:[01>[06>[04>[0F>[00>[3C>[B8>[E8>
正常時響應信號為: [01>[06>[04>[0F>[00>[3C>[B8>[E8>
C. 信號的發送和接受指令:
當信號格式被確定后,我們所要做的是從PLC如何把它們發送出去和如何接收變頻器的響應信號了,在自由口模式當中,信號可以用XMT命令發送,用RCV命令接收,另外我們還可以利用SMB2(接收緩沖字節)配合其它如MOV指令等來實現字符的接收。在S7-200系統中,設計了諸如發送完成、接收完成等中斷事件,我們將很方便的通過它們來控制整個程序的運行。
4、 PLC程序的設計
a) 數學模型:由于各個單元間是采用線性比例同步的,所以構建其數學模型非常簡單,只要使某單元的轉速和其相鄰上一級單元遵循數學公式V1=k×V2即可。為了調節兩單元之間的張力,我們只需調節兩單元間比例k即可。這里需提醒注意的是:某一單元的轉速必須以上一級為基礎進行比例調節,這樣才不至于在調節單元的速度時,影響其它單元間的張力。
b) 程序框圖
c) 程序結構
程序結構包括主程序、初始化子程序、停車子程序、開車子程序、比例設定子程序和速度計算子程序。其中與通信有關的程序有CRC-16校驗程序、發送中斷程序、接收中斷程序等。下面主要介紹一下CRC-16校驗程序。
CRC是 “Cyclical Rendundancy Check” (循環冗余碼校驗)的英文簡稱。 CRC碼為2個字節,16位的二進制值。故又叫CRC-16。由發送設備計算CRC值,并把它附到信息中去。接收設備在接收信息過程中再次計算CRC值并與CRC的實際值進行比較,若二者不一致,亦產生一個錯誤,校驗開始時,把16位寄存器的各位都置為“1”,然后把信息中的相鄰2個8位字節數據放到當前寄存器中處理,只有每個字符的8位數據用于CRC處理。起始位,停止位和校驗位不參與CRC計算。 CRC校驗時,每個8位數據與該寄存器的低位內容進行異或運算,然后向最低有效位(LSB)方向移位,同時用零填入最高有效位(MSB)后,再對LSB檢查,若LSB=1,則寄存器與生成多項式(16#A001)異或,若LSB=0,不作異或運算。重復上述處理過程,直至移位8次,最后一次(第8次)移位后,下一個8位字節數據與寄存器的當前值異或,再重復上述過程。全部處理完信息中的數據字節后,最終得到的寄存器值為CRC值。 在程序編制時,可以使用FOR/NEXT指令,并使用一次嵌套。在發送時,CRC值附加到信息時,低位在先,高位在后。
總結:通過實踐證明,該方案使得系統布線變得簡單,使系統的抗干擾性明顯增強。為該設備的系統升級作出了應有的貢獻。
參考文獻
1李道霖,電氣控制與PLC原理及應用 ,電子工業出版社出版,2000
2 西門子(中國)有限公司,SIMATIC S7-200可編程序控制器系統手冊,2002
3王永華,現代電氣控制及PLC應用技術(第2版),北京航空航天大學出版社,2008
4 廖常初,PLC編程及應用,北京機械工業出版社,2002
5 吳作明,PLC開發與應用實例詳解,北京航空航天大學出版社,2007.
來源:中國自動化網