上一節内容我們介紹了Modbus通訊的前提内容包括協定、接線、變頻器參數設定、資料格式、變頻器通訊位址。今天我們使用電腦上的序列槽通訊助手軟體向變頻器發送控制指令,主要有硬體連接配接、通訊設定、指令講解、現場示範驗證。使用到的硬體、軟體如下:
- PC(電腦)一台
- 英威騰GD200A變頻器一台
- 三相異步電機一台
- USB轉RS485轉換器一台
- 序列槽通訊助手軟體
硬體連接配接
由于筆記本電腦沒有序列槽,是以需要一個USB轉序列槽的工具與變頻器的RS485接口進行連接配接,這個轉換器在網上就可以購買到,變頻器驅動一台三相異步電機,控制其進行正反轉的運作、調頻以及運作狀态的監控,具體連接配接實物圖如下:
變頻器使用的英威騰GD200A系列的,序列槽通訊助手最好下載下傳帶有校驗碼計算的友善我們計算CRC與LRC數值,轉換器的A+與變頻器的485+連接配接,B-與變頻器的485-連接配接,負載是一台普通三相電機,所有的控制都通過通訊來完成,電氣原理圖如下:
通訊設定
按照上一節的參數設定進行變頻器調節,頻率指令與運作指令都由Modbus通訊控制,具體參數設定如下表:
參數 | 名稱 | 參數說明 |
P00.01 | 運作指令通道 | 2:通訊運作指令 |
P00.06 | 頻率指令選擇 | 8:MODBUS通訊設定 |
P14.00 | 本機通訊位址 | 1:站号設定01 |
P14.01 | 波特率 | 3:9600BPS |
P14.02 | 資料為校驗 | 3:無校驗(N,8,2)for RTU 15:無校驗(N,8,2)for ASCII |
根據變頻器參數的設定,序列槽助手軟體的通訊設定與變頻器一緻包括波特率、資料位、校驗位和停止位,序列槽設定如下圖所示,設定完成後點選“打開序列槽”在左下角回顯示序列槽的通訊參數。
端口号可通過電腦上的裝置管理器進行查詢如下圖示注:
指令講解
3.1 RTU資料格式
參照上節内容我們需要給變頻器發送的指令有:
- 電機正轉控制
- 電機反轉控制
- 電機停止控制
- 頻率設定控制(50Hz、30Hz、10Hz)
- 運作頻率讀取
- 輸出電壓讀取
- 輸出電流讀取
首先我們再來回顧下變頻器的通訊位址:
控制功能 | 位址定義 | 資料說明 | 讀寫特性 |
正轉指令 | 2000H | 0001H | W/R |
反轉指令 | 2000H | 0002H | W/R |
停止指令 | 2000H | 0001H | W/R |
頻率設定 | 2001H | 0~Fmax(位:0.01Hz) | |
運作頻率 | 3000H | 設定範圍:0.00Hz~P00.03 | R |
輸出電壓 | 3003H | 設定範圍:0~1200V | R |
輸出電流 | 3004H | 設定範圍:0.0~5000.0A | R |
按照RTU資料幀與變頻器的通訊位址列出與之相對應的指令:
1頻率設定
指令功能 | 指令内容 |
設定頻率10Hz | 01 06 20 01 03 E8 D3 74 |
設定頻率30Hz | 01 06 20 01 0B B8 D4 88 |
設定頻率50Hz | 01 06 20 01 13 88 DE 9C |
我們以第一個指令說明:
變頻器位址 寫指令 參數位址 發送資料 CRC
01代表變頻器的站号,06代表寫入功能,2001代表變頻器設定頻率的位址(分高低8位依次發送),03E8是10.00Hz(1000的16進制數),D374代表CRC校驗碼。
2運作控制
指令功能 | 指令内容 |
電機正轉 | 01 06 20 00 00 01 43 CA |
電機反轉 | 01 06 20 00 00 02 03 CB |
電機停止 | 01 06 20 00 00 05 42 09 |
3狀态讀取
指令功能 | 指令内容 |
運作頻率 | 01 03 30 00 00 01 8B 0A |
輸出電壓 | 01 03 30 03 00 01 7B 0A |
輸出電流 | 01 03 30 04 00 01 CA CB |
對于讀取指令來講,01代表變頻器的站号,03代表讀取功能,3000代表變頻器設定頻率的位址(分高低8位依次發送),0001是表示讀取資料個數,8B 0A代表CRC校驗碼。
3.2 ASCII資料格式
1頻率設定
指令功能 | 指令内容 |
設定頻率10Hz | 01 06 20 01 03 E8 ED ASCII:3A 30 31 30 36 32 30 30 31 30 33 45 38 45 44 0D 0A |
設定頻率30Hz | 01 06 20 01 0B B8 15 ASCII:3A 30 31 30 36 32 30 30 31 30 42 42 38 31 35 0D 0A |
設定頻率50Hz | 01 06 20 01 13 88 3D ASCII:3A 30 31 30 36 32 30 30 31 31 33 38 38 33 44 0D 0A |
我們看下第一條指令,按照ASCII的資料格式,字元0 1 0 6 2 0 0 1 0 3 E 8 E D轉換為ASCII就是3A 30 31 30 36 32 30 30 31 30 33 45 38 45 44 0D 0A,其中最前的3A是起始符,後面的0D和0A是結束符。
2運作控制
指令功能 | 指令内容 |
電機正轉 | 01 06 20 00 00 01 D8 ASCII:3A 30 31 30 36 32 30 30 30 30 30 30 31 44 38 0D 0A |
電機反轉 | 01 06 20 00 00 02 D7 ASCII:3A 30 31 30 36 32 30 30 30 30 30 30 32 44 37 0D 0A |
電機停止 | 01 06 20 00 00 05 D4 ASCII:3A 30 31 30 36 32 30 30 30 30 30 30 35 44 34 0D 0A |
3狀态讀取
指令功能 | 指令内容 |
運作頻率 | 01 03 30 00 00 01 CB ASCII:3A 30 31 30 33 33 30 30 30 30 30 30 31 43 42 0D 0A |
輸出電壓 | 01 03 30 03 00 01 C8 ASCII:3A 30 31 30 33 33 30 30 33 30 30 30 31 43 38 0D 0A |
輸出電流 | 01 03 30 04 00 01 C7 ASCII:3A 30 31 30 33 33 30 30 34 30 30 30 31 43 37 0D 0A |
現場示範
先介紹下序列槽助手界面,左上方是序列槽通訊設定,左下方是接收和發送設定包括資料顯示方式是字元(ASCII)和16進制(HEX)、換行顯示、資料儲存等,右上方黑色背景的是指令接收框,黃色箭頭向右的表示發送資料,黃色箭頭向左的表示接收資料,右側最下方就是指令輸入的地方。
下面我們分别列舉幾個指令發送的界面
50Hz頻率寫入(RTU)
正轉運作(RTU)
運作電壓監控(RTU)
寫入操作中序列槽助手向變頻器發送的指令與變頻器傳回的指令是一樣的,而讀取操作中是不一緻的,例如上圖中的輸出電壓,傳回的指令是01 03 02 01 7A 38 37,其中01代表站号,03代表讀取功能,02代表資料個數,017A的十六進制數轉換十進制就是378代表輸出電壓是378V,後兩位是CRC校驗碼。
30Hz頻率寫入(ASCII)
反轉運作(ASCII)
運作頻率監控(ASCII)
需要注意的是與RTU格式相比,ASCII碼傳回的資料需要反向轉換,例如上圖中的輸出電壓31 33 38 38先轉換為1388的16進制數然後再轉為10進制的5000,由于其機關是0.01Hz,是以最後的運作頻率就是50.00Hz。
在ASCII格式中序列槽通訊助手除了選擇16進制資料外,還可以直接發送ASCII的字元,此時不需要發送結束符OD和0A,如果使用字元輸入切記不能輸入空格,第一個字元是":",兩種輸入方式效果是一樣的如下圖所示:
通過序列槽助手軟體的示範,我們可以清楚的觀察到變頻器Modbus通訊時指令的發送過程及傳回,能夠很好的了解它的通訊格式、資料内容的轉換。
通過這節内容的學習,我們掌握了Modbus通訊需要哪些資料,資料與指令之間是如何互相轉換的,下一節内容在此次學習的基礎上使用PLC來完成對變頻器的Modbus通信。