zulong
级别: 正式会员
精华主题: 0
发帖数量: 7 个
工控威望: 99 点
下载积分: 605 分
在线时间: 7(小时)
注册时间: 2015-09-05
最后登录: 2024-09-16
查看zulong的 主题 / 回贴
楼主  发表于: 2017-09-16 18:48
图片:
图片:
请教大神如何用FX-2N   读取H3400变频器的转速.频率、电流    控制变频的正转  写入频率
zhangqi_1234
级别: 略有小成
精华主题: 0
发帖数量: 342 个
工控威望: 493 点
下载积分: 4015 分
在线时间: 250(小时)
注册时间: 2013-03-22
最后登录: 2024-11-27
查看zhangqi_1234的 主题 / 回贴
1楼  发表于: 2017-09-16 22:07
使能MODBUS-RTU通信时,使用功能码H03,读取指定地址的寄存器数据,然后经计算得出单位为rpm的转速值,单位为Hz的频率等。你给的资料不全,带R表示只读,存储变频器的工作状态。带W表示可写入,用于控制变频器的工作状态。没有看到带R的用于存储转速、频率和电流的寄存器。
如果地址为5的寄存器,存储转速值,变频器的站号为1,指令格式:[RS D100 K8 D200 K8],D100存储站号H01。D101存储功能码H03。D102存储H00,D103存储H05(转速地址)。D104存储H00,D105存储H01(读取的寄存器个数)。D106-D107存储CRC校验码。D200-D207存储接收的数据。有关MODBUS-RTU的编程,可查阅李金诚的教材。
楼主留言:
请您帮忙看下我写的程序有什么问题
zhangqi_1234
级别: 略有小成
精华主题: 0
发帖数量: 342 个
工控威望: 493 点
下载积分: 4015 分
在线时间: 250(小时)
注册时间: 2013-03-22
最后登录: 2024-11-27
查看zhangqi_1234的 主题 / 回贴
2楼  发表于: 2017-09-17 10:10
1、D8120参数的高8位必须是H0C,你的是H1C。查阅FX2N的通信手册,就知道为什么是H0C。
2、PLC与变频器的通信协议、通信速率、奇偶校验、停止位等必须一致。
3、PLC与变频器是MODBUS-RTU通信,而不是MODBUS-ASCII通信。因而不会用CCD、ASCII指令,需要编写CRC校验码计算程序。
4、MODBUS-RTU通信协议下,PLC发送数据都是8个字节,而不是15个字节。
5、发送数据之前,把发送的数据先保存在数据缓冲区,调用子程序计算出CRC校验码。先执行RS指令且一直保持有效,然后在一个扫描周期内,把数据缓冲区的数据存入收发数据缓冲区中。传送数据完毕后,使M8122为ON持续一个扫描周期,执行发送数据请求。
6、再强调一下,你一定要去看李金诚编写的《PLC模拟量与通信控制应用实践》。先把基础知识学好,再实践!
7、最后一点强调:使用485通信时,应采用四线制的连接方式。由于RS指令是同时执行数据的收发工作,导致二线制连接方式容易收到反射回来的发送数据,既使加上终端电阻也不能防止这种情况发生。
zhangqi_1234
级别: 略有小成
精华主题: 0
发帖数量: 342 个
工控威望: 493 点
下载积分: 4015 分
在线时间: 250(小时)
注册时间: 2013-03-22
最后登录: 2024-11-27
查看zhangqi_1234的 主题 / 回贴
3楼  发表于: 2017-09-17 10:29
PLC错误指示灯闪烁,就查看M8063是否为ON,如果是,读取D8063的错误代码信息,再看手册上该错误代码代表是哪种错误。
zhangqi_1234
级别: 略有小成
精华主题: 0
发帖数量: 342 个
工控威望: 493 点
下载积分: 4015 分
在线时间: 250(小时)
注册时间: 2013-03-22
最后登录: 2024-11-27
查看zhangqi_1234的 主题 / 回贴
4楼  发表于: 2017-09-17 13:14
我曾经做过FX2N+FX2N-485BD与三菱变频器E740的MODBUS-RTU通信,期间经历了很多波折,最终实现了通信。FX3如果使用FX3U-ADP-MB卡,要简单一些,不用去专门编写CRC校验码程序。这里有个规律:编程复杂的,硬件成本要低一些,编程简单的,硬件成本要高一些。另外更正一下,如果PLC出错指示灯闪烁,要先看D8004的内容,如果内容是8063,再看D8063的内容。