参数号 |
设置数值 |
内容 |
8-30 |
【2】Modbus RTU |
选择协议 |
8-31 |
1-247 |
设置变频器地址,不能重复 |
8-32 |
2400-115200 |
设置波特率,各站速度一致 |
8-33 |
【0】奇数 |
奇偶校验,各站设置一致 |
电报结构(十六进制)
地址字段包含8位数据,有效的地址范围为0-247(十进制),0为广播模式;1-247对相应地址的从站进行寻址。
功能字段包含8位数据,有效地代码范围为1-FF,功能字段用于在主站和从站之间发送消息。当从主站向从站发送时,功能字段为主站的控制字;当从从站向主站传送时,功能字段为从站的状态字。
由主到从的控制代码 |
代码(十六进制) |
功能 |
1 |
读取线圈 |
3 |
读取保持寄存器 |
5 |
写入单个线圈 |
6 |
写入单寄存器 |
F |
写入多个线圈 |
10 |
写入多个寄存器 |
B |
获取通讯事件计数器 |
11 |
报告从站ID |
数据字段,是由几组字节两个十六进制数字(00至FF)构成,根据不同的功能代码,数据字段包含的位长、作用不一,针对常用的功能代码,举例如下:
1、功能代码=1,读取线圈状态
Byte1 |
Byte2 |
Byte3 |
Byte4 |
Byte5 |
Byte6 |
Byte7 |
Byte8 |
站址 |
01 |
位起始地址 |
位个数 |
CRC16 |
2、功能代码=5,写入单个线圈数值
Byte1 |
Byte2 |
Byte3 |
Byte4 |
Byte5 |
Byte6 |
Byte7 |
Byte8 |
站址 |
05 |
位起始地址 |
位的值 |
CRC16 |
Byte1 |
Byte2 |
Byte3 |
Byte4 |
Byte5 |
Byte6 |
Byte7 |
Byte7+n |
B8+n |
B9+n |
站址 |
0F |
位起始地址 |
位的个数 |
字节数 |
位的值 |
CRC16 |
线圈及位的意义。地址0-31为主站写入用控制位,32-63为从站返回的状态位,如下表所示:
位 |
值为0 |
值为1 |
位 |
值为0 |
值为1 |
00 |
参考值 |
外部选择低位 |
32 |
控制未就绪 |
控制就绪 |
01 |
参考值 |
外部选择高位 |
33 |
变频器未就绪 |
变频器就绪 |
02 |
直流制动 |
无直流制动 |
34 |
惯性停止 |
安全功能关闭 |
03 |
惯性停车 |
无惯性停车 |
35 |
无报警 |
报警 |
04 |
快速停止 |
无快速停止 |
36 |
未使用 |
05 |
锁定输出 |
无锁定频率 |
37 |
06 |
加减速停止 |
启动 |
38 |
07 |
无功能 |
复位 |
39 |
无警告 |
警告 |
08 |
无功能 |
点动 |
40 |
不在参考值下 |
在参考值下 |
09 |
加减速1 |
加减速2 |
41 |
手动模式 |
自动模式 |
10 |
数据无效 |
数据有效 |
42 |
超出频率范围 |
在频率范围运行下 |
11 |
关继电器1 |
开继电器1 |
43 |
已停止 |
运行中 |
12 |
关继电器2 |
开继电器2 |
44 |
未使用 |
13 |
参数设置 |
选择低位 |
45 |
无电压警告 |
电压警告 |
14 |
参数设置 |
选择高位 |
46 |
不在电流极限内 |
电流极限 |
15 |
无反向 |
反向 |
47 |
无热警告 |
热警告 |
16-31 |
参考值
0-FFFF
(-200%-200%) |
48-63
|
开环模式:变频器输出频率
闭环模式:变频器反馈信号
|
65 |
参数写入控制(由主到从)
0, 将变化的参数写入变频器的RAM
1, 将变化的参数写入变频器的RAM和EEPROM |
例如,使电机启动并运转在50%*****参考值的报文如下
站址 |
功能 |
位起始地址 |
位的个数 |
字节数 |
写入数值 |
CRC16 |
01 |
0F |
00 00 |
00 20 |
04 |
7C 04 00 20 |
9D 01 |
其中位的个数为 20H=32个位,也就是从00地址起始到31为止的位;
字节数,是指写入数值为4个字节;
写入数值 047C 对应00-16位,在传送时低位在前,因此为7C 04;
2000 对应16-31位,50%*****参考值,在传送时低位在前,因此为00 20;
4、功能代码=3,读取保持寄存器状态,保存寄存器保持2字节(即16位)
Byte1 |
Byte2 |
Byte3 |
Byte4 |
Byte5 |
Byte6 |
Byte7 |
Byte8 |
站址 |
03 |
字起始地址 |
字节个数 |
CRC16 |
5、功能代码=6,写入单个寄存器
Byte1 |
Byte2 |
Byte3 |
Byte4 |
Byte5 |
Byte6 |
Byte7 |
Byte8 |
站址 |
06 |
字起始地址 |
字的值 |
CRC16 |
6、功能代码=10,写入多个寄存器数值
Byte1 |
Byte2 |
Byte3 |
Byte4 |
Byte5 |
Byte6 |
Byte7 |
Byte7+n |
B8+n |
B9+n |
站址 |
10 |
字起始地址 |
字的个数 |
字节数 |
字的值 |
CRC16 |
寄存器列表:
例如,当要读取3-41,加速时间时,需要写的报文:
|
功能码 |
字起始地址 |
字个数 |
CRC16 |
01 |
03 |
0D 51 |
00 02 |
97 76 |
计算参数3-41的地址 3-41
→ 341*10-1=3409
→ D51(十六进制);
保持寄存器状态都为双字节,因此在字个数位置应该为 2 ;正常情况下,变频器返回的报文为,
站址 |
功能码 |
字节数 |
返回信息 |
CRC16 |
01 |
03 |
04 |
00 00 01 2C |
FA 7E |
012C 为读出的加速度时间,转换成十进制并考虑到控制单位,得到加速时间为3秒。
寄存器50000、50010和线圈00-31的作用相同,使电机启动并运转在50%*****参考值的报文,使用寄存器写入的报文为:
站址 |
功能码 |
字起始地址 |
写入信息 |
CRC16 |
01 |
06 |
C3 59 |
20 00 |
7C 5D |
地址转换 (50010-1)→ C3 59(十六进制);
写入信息 20 00 对应50%*****参考值;
站址 |
功能码 |
字起始地址 |
写入信息 |
CRC16 |
01 |
06 |
C3 4F |
04 7C |
87 78 |
地址转换 (50000-1)→ C3 4F(十六进制);写入信息 04 7C 变频器运转的控制字;
注:同传送线圈数据不同,这里写入的信息不需要 高、低字节互换,这是由modbus RTU协议规定的。50000和50010因为不是连续的地址,不能使用写入多寄存器的功能码,只能使用单寄存器写入的功能码。