通过Modbus RTU控制丹佛斯FC系列变频器 点击:2423 | 回复:1



青岛黄工

    
  • [版主]
  • 精华:3帖
  • 求助:54帖
  • 帖子:108帖 | 4776回
  • 年度积分:0
  • 历史总积分:24297
  • 注册:2007年4月02日
发表于:2012-02-09 16:47:05
楼主
  • FC系列变频器通过内置的RS485接口,以Modbus RTU格式进行通讯。参数设置如表

参数号

设置数值

内容

8-30

2Modbus 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

  •  数据字段,是由几组字节两个十六进制数字(00FF)构成,根据不同的功能代码,数据字段包含的位长、作用不一,针对常用的功能代码,举例如下:
  • 1、功能代码=1,读取线圈状态

Byte1

Byte2

Byte3

Byte4

Byte5

Byte6

Byte7

Byte8

站址

01

位起始地址

位个数

CRC16

  •  2、功能代码=5,写入单个线圈数值

Byte1

Byte2

Byte3

Byte4

Byte5

Byte6

Byte7

Byte8

站址

05

位起始地址

位的值

CRC16

  •  3、功能代码=F,写入多个线圈数值

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            将变化的参数写入变频器的RAMEEPROM


  • 例如,使电机启动并运转在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秒。
  • 寄存器5000050010和线圈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协议规定的。5000050010因为不是连续的地址,不能使用写入多寄存器的功能码,只能使用单寄存器写入的功能码。


 

 



楼主最近还看过



Henryw

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:61
  • 注册:2020年4月26日
发表于:2020-04-26 23:23:51
1楼

黄工,您好!

请教一下:

PLC与丹佛斯变频器通过Modbus RTU通讯,刚开始正常,大约一个月通讯停止,对变频器关电送电,通讯恢复正常。周而复始,周期大概一个月,请问问题出在哪里?如何解决?


热门招聘
相关主题

官方公众号

智造工程师