1 引言
工業控制已從單機控制走向集中監控、集散控制,如今已進入網絡集約制造時代。工業控制器連網也為網絡管理提供了方便。Modbus就是工業控制器的網絡協議中的一種。Modbus協議是應用于電子控制器上的一種通訊約規。通過此協議,控制器相互之間、控制器經由網絡(例如以太網)和其它設備之間可以通信。它已經成為主流的工業標準之一。對符合Modbus協議的不同廠商生產的控制設備可以連成工業網絡,進行集中監控。
2、 Modbus RTU協議在S7-200中的應用原理
2.1 、Modbus RTU協議與S7-200相互關系簡介
西門子專門為 Modbus RTU 通信開發了指令庫,極大地簡化了Modbus RTU 通信的開發,以便于快速實現相關應用。通過 Modbus RTU指令庫,使得 S7-200 可作為 Modbus RTU 中的主從站設備集成到 Modbus 網絡中,以實現Modbus設備間的通信。下圖為Micro/WIN的Modbus RTU指令庫。
圖1 指令樹中的庫指令
2.2、Modbus RTU主站協議指令
西門子 Modbus 主站協議庫包括兩條指令:MBUS_CTRL 指令和MBUS_MSG 指令。
MBUS_CTRL 指令用于初始化主站通信,MBUS_MSG 指令用于啟動對Modbus從站的請求并處理應答。
MBUS_MSG 指令用于啟動對Modbus從站的請求并處理應答。
3、HD700系列變頻器Modbus RTU通信介紹
(1)通訊接口
HD700 變頻器集成標準RS485 串行通訊接口:標準8 針RJ45 端口;485 協議通訊端子A(RS485+)、B(RS485?)。二者可以并用。可以組成單主機/單從機或單主機/多從機的控制系統,變頻器只能作為從機。
(2)通訊方式
HD700 變頻器通訊協議為Modbus 協議,RTU 報文傳輸方式,支持常用的寄存器讀寫。其幀格式如圖
圖2 Modbus RTU 協議格式
Modbus RTU 采用“big-endian”編碼表示地址和數據項(屬于“little-endian”的CRC 除外),先發送高字節,然后是低字節。
(3) 命令碼Modbus RTU 協議支持下表的操作。
表1 命令碼
命令碼(16 進制表示)
|
含義
|
03H
|
讀取多個寄存器的內容
|
06H
|
修改單個寄存器的內容,變頻器掉電后,修改的值不保存
|
10H
|
修改多個寄存器的內容,變頻器掉電后,修改的值不保存
|
17H
|
讀取和修改多個寄存器的內容,變頻器掉電后,修改的值不保存
|
(3)參數功能碼與HD700 內部Modbus 寄存器的映射關系
HD700變頻器的參數功能碼被映射為Modbus 的讀寫寄存器。映射的規則是:
參數功能碼×100=M×256+N+1 十進制表示,其中0≤N≤255
高字節低字節 寄存器地址
例如:
求參數P02.07 的Modbus 寄存器地址
2.07×100=0×256+206+1,那么M=0,N=206,轉換為十六進制為高字節00H,
低字節CEH,即寄存器地址為00CEH。詳細信息請參閱HD700用戶手冊。
(4)HD700 變頻器的通訊參數
HD700變頻器與主機進行通訊時,需要設定相關的通訊參數,見下表2。
表2 HD700變頻器與通訊相關的參數
參數ID
|
參數名稱
|
參數設定范圍
|
默認值
|
更改方式
|
Modbus地址
|
P00.03
(P10.07)
|
控制方式
|
0:鍵盤控制
1:端子控制
2:通訊控制
|
0
|
Stop Only
|
0002H(03EEH)
|
P00.04
(P01.01)
|
給定通道
|
0:鍵盤調節
1:UP、DOWN端子調節
2:多段速給定
3:AI1模擬
4:AI2模擬
5:串行口通訊給定
6:DI7端子脈沖給定
7:總線給定
8:自定義給定
|
0
|
Run&Stop
|
0003H(0064H)
|
P03.27
|
通訊控制字
|
0~65535
|
0
|
Run&Stop
|
0146H
|
P03.28
|
通訊控制字使能
|
0~1
|
0
|
Run&Stop
|
0147H
|
P10.02
|
本機地址
|
0~247
|
1
|
Run&Stop
|
03E9H
|
P10.03
|
通訊波特率
|
0:2.4KBPS
1:4.8KBPS
2:9.6KBPS
3:19.2KBPS
4:38.4KBPS
5:57.6KBPS
|
3
|
Run&Stop
|
03EAH
|
P10.04
|
通訊配置
|
0:1-8-1,RTU,無校驗
1:1-8-2,RTU,無校驗
2:1-8-1,RTU,奇校驗
3:1-8-1,RTU,偶校驗
|
1
|
Run&Stop
|
03EBH
|
P10.05
|
本機應答延時
|
0ms~250ms
|
2
|
Run&Stop
|
03ECH
|
P10.14
|
變頻器狀態字
|
0~65535
|
實際檢測值
|
Actual
|
03F5H
|
上表中,設定:
P00.03(P10.07)=2 通訊控制變頻器。
P00.04(P01.01)=5 給定通道選擇串口通訊,此時上位機通過改變參數P04.01的值調節給定頻率。
P03.28=1 使能通訊控制字
P10.03=3通訊波特率19.2KBPS
P10.04=0 通訊配置1-8-1,RTU,無校驗
P03.27 通訊控制字。
該參數的每一位的含義見下表。
表3 通訊控制字P03.27的含義
位
|
位功能
|
0
|
變頻器禁止
|
1
|
運行
|
2
|
三線模式使能
|
3
|
正轉運行
|
4
|
反轉運行
|
5
|
正轉/反轉
|
6
|
正轉點動
|
7
|
反轉點動
|
8
|
故障復位
|
9
|
保存參數
|
10
|
故障記錄清零
|
11
|
使能串口更改功能選擇參數
|
12
|
保留
|
13
|
保留
|
14
|
保留
|
15
|
保留
|
查閱HD700用戶手冊,控制字的命令地址為H0146。由控制字定義,控制變頻器正轉寫入H0008,反轉H0010,停止H0000。寫入頻率時,對應的寄存器地址H0190(參數P04.01),頻率的標定為1:100。
4、 HD700變頻器與S7-200 PLC通信接線
圖3HD700變頻器與S7-200 PLC接線圖
5、 HD700變頻器與S7-200 Modbus RTU通信程序設計
功能: HD700七喜變頻器與西門子S7-200通訊例程(讀與寫);
適用:西門子S7-200P LC,在CPU 224XP上驗證通過;
功能詳解:本程序是HD700變頻器與S7-200P LC通訊進行變頻器運行、停止控制以及用通訊改寫變頻器的設定頻率和讀取其運行頻率的例程。I0.0到I0.4均為按鈕,其中:
I0.0為變頻器的正轉控制
I0.1為變頻器的反轉控制
I0.2為變頻器的停止控制
I0.3為變頻器加速
I0.4為變頻器減速
本程序的通訊格式:波特率19200,1-8-1,RTU,無校驗。