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