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,无校验。