三菱FX3G和8台三菱D700变频器ModbusRTU串口通信 点击:2389 | 回复:5



关育谋

    
  • [版主]
  • 精华:5帖
  • 求助:22帖
  • 帖子:738帖 | 5640回
  • 年度积分:68
  • 历史总积分:84034
  • 注册:2004年5月28日
发表于:2020-04-27 14:31:05
楼主

三菱FX3G和8台三菱D700变频器Modbus RTU串口通信

一、通信实现目的:
1、三菱FX3G扩展FX3U-485ADP-MB模块和8台三菱D700系列变频器实现Modbus RTU串口通信;
2、组态王组态软件和三菱FX3G编程口实现编程口协议通信,可在组态王监控界面上对8台变频器实现启动、停止、给定频率等操作,并可监视变频器输出电压、电流、频率。
二、PLC和变频器通信参数约定:

1、PLC之FX3U-485ADP-MB模块通信参数
数据位:8位
校验位:偶校验
停止位:1位
波特率:9600bps
2、8台三菱D700变频器通信参数
数据位:8位
校验位:偶校验
停止位:1位
波特率:9600bps
站号:依次为1、2、3、4、5、6、7、8
三、组态王和PLC通信参数
1、组态王通信参数
数据位:7位
校验位:偶校验
停止位:1位
波特率:9600bps
使用端口:COM1
2、PLC编程口通信参数
数据位:7位
校验位:偶校验
停止位:1位
波特率:9600bps
站号:0
四、通信硬件连接:
1、组态王组态软件通过SC09电缆连接至PLC编程口;

2、PLC之485ADP-MB模块连接至变频器通信口。
五、变频器通信参数设置

首先恢复出厂设置,然后再依次设置如下参数:(先设定P79为4,然后再将Pr.CL设置为1即可恢复出厂设置)

P160:设置为0

P77:设置为2

P79:设置为2

P340:设置为1

P338:设置为0

P339:设置为0

P551:设置为9999

P117:8台变频器依次设置为1、2、3、4、5、6、7、8

P118:设置为96

P120:设置为2

P122:设置为9999

P343:设置为0

P502:设置为0

P549:设置为1

设置好上述参数后,断电再上电,设置的参数才会有效

六、PLC编程详解:
程序中所用寄存器含义如下所示:

1、标志位分配:
M0:写启动标志位
M1:写停止标志位
M2:写频率标志位
M10:读输出电压标志位
M11:读输出电流标志位
M12:读输出频率标志位
M20:初始化标志位
M21:写辅助标志位
M22:写执行标志位
2、从站地址分配

D0保存的即为8个从站站地址,依次为1、2、3、4、5、6、7、8
3、写操作寄存器分配:
D20:地址码
D24:功能码
D28:寄存器起始地址
D32:寄存器数目
D36:预写的寄存器数据起始地址
D68:上位机写频率值
4、读输出电压寄存器分配:
D80:地址码
D84:功能码
D88:寄存器起始地址
D92:寄存器数目
D96:读出的寄存器数据起始地址
5、读输出电流寄存器分配:
D140:地址码
D144:功能码
D148:寄存器起始地址
D152:寄存器数目
D156:读出的寄存器数据起始地址
6、读输出频率寄存器分配:
D200:地址码
D204:功能码
D208:寄存器起始地址
D212:寄存器数目
D216:读出的寄存器数据起始地址
7、输出电压暂存寄存器分配:
D300保存1#变频器输出电压值;
D302保存2#变频器输出电压值;
D304保存3#变频器输出电压值;
D306保存4#变频器输出电压值;
D308保存5#变频器输出电压值;
D310保存6#变频器输出电压值;
D312保存7#变频器输出电压值;
D314保存8#变频器输出电压值;
8、输出电流暂存寄存器分配:
D400保存1#变频器输出电流值;
D402保存2#变频器输出电流值;
D404保存3#变频器输出电流值;
D406保存4#变频器输出电流值;
D408保存5#变频器输出电流值;
D410保存6#变频器输出电流值;
D412保存7#变频器输出电流值;
D414保存8#变频器输出电流值;
9、输出频率暂存寄存器分配:
D500保存1#变频器输出频率值;
D502保存2#变频器输出频率值;
D504保存3#变频器输出频率值;
D506保存4#变频器输出频率值;
D508保存5#变频器输出频率值;
D510保存6#变频器输出频率值;
D512保存7#变频器输出频率值;
D514保存8#变频器输出频率值;
10、程序详解:
标志位初始化复位:
001.png
通信参数设置:
002.png
从站地址赋值:
003.png
正转启动变频器命令段:
004.png
停止变频器命令段:
005.png
给定频率命令段:
006.png
写操作命令执行程序:
007.png
读操作初始化:

延时程序命令段:
010.png
读输出电压程序命令段:

读输出电流程序命令段:

读输出频率程序命令段:频率读完成后地址做加1操作,轮询读取下一个从站

ADPRW指令详解:

ADPRW  S·  S1·  S2·  S3·  S4·/D·

S·、S1·、S2·、S3·、S4·中的S代表这里使用的软元件作为数据的来源(Source)

D·的D代表这里使用的软元件作为数据的目标(Destination)

数据的来源是我们给定的,数据的目标则是指令执行后得到的结果。

S·代表从站的站号,例如要与1号站通信,S·的位置就填写H1。

S1·是MODBUS的命令代码。

S2·是MODBUS软元件的地址。

S3·是设置从S2·设置的MODBUS软元件地址开始的几个地址。

    S1·如果使用写的命令代码,就代表从S2·地址开始写入S3·个地址;

    S1·如果使用读的命令代码,就代表从S2·地址开始读取S3·个地址。

S4·/D·:S1·如果使用写的命令代码,标记S4·,表示把S4·设置的软元件的数据写给从站;如果使用读的命令代码,标记D·,表示把从站的数据读到D·设置的软元件中。

七、组态王组态详解:
设备组态如下:
01.png

变量组态如下:
05.png
06.png
画面组态如下:
07.png
八、调试:
在设置好变频器通信参数之基础上,硬件连接完成后,依次给8台变频器上电,下载PLC程序、运行组态王,即可在组态王上对8台变频器实现启动、停止、给定频率、读取参数等操作。
九、扩展:

写操作寄存器分配:
D20:地址码
D24:功能码
D28:寄存器起始地址
D32:寄存器数目
D36:预写的寄存器数据起始地址
D68:上位机写频率值
读输出电压寄存器分配:
D80:地址码
D84:功能码
D88:寄存器起始地址
D92:寄存器数目
D96:读出的寄存器数据起始地址
读输出电流寄存器分配:
D140:地址码
D144:功能码
D148:寄存器起始地址
D152:寄存器数目
D156:读出的寄存器数据起始地址
读输出频率寄存器分配:
D200:地址码
D204:功能码
D208:寄存器起始地址
D212:寄存器数目
D216:读出的寄存器数据起始地址
上述寄存器起始地址以及写操作时寄存器内容稍微修改即可实现PLC和其他品牌型号变频器Modbus通信。
十、程序高清截图提供下载:

正在下载,请等待……
下载附件需0积分!



楼主最近还看过



fighting2020

  • [管理员]
  • 精华:4帖
  • 求助:4帖
  • 帖子:1023帖 | 7244回
  • 年度积分:1284
  • 历史总积分:18892
  • 注册:2008年11月11日
发表于:2020-04-27 15:13:42
1楼

感谢关工的分享

关育谋

  • [版主]
  • 精华:5帖
  • 求助:22帖
  • 帖子:738帖 | 5640回
  • 年度积分:68
  • 历史总积分:84034
  • 注册:2004年5月28日
发表于:2020-04-27 15:43:01
2楼


引用 fighting2020 的回复内容: 感谢关工的分享

-------------------------

此贴为论坛活动参与帖,支持论坛!

chen协1989

  • 精华:0帖
  • 求助:3帖
  • 帖子:5帖 | 26回
  • 年度积分:10
  • 历史总积分:256
  • 注册:2020年6月01日
发表于:2020-06-03 16:08:13
3楼

谢谢关工分享

Y。

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 96回
  • 年度积分:0
  • 历史总积分:53
  • 注册:2020年3月18日
发表于:2020-06-03 16:43:33
4楼

感谢关工的分享

wenjian1

  • 精华:1帖
  • 求助:0帖
  • 帖子:10帖 | 600回
  • 年度积分:15
  • 历史总积分:1083
  • 注册:2006年11月14日
发表于:2021-07-07 21:30:40
5楼

感谢关工的分享


热门招聘
相关主题

官方公众号

智造工程师