S7-200与ABB ACS510的变频器利用modbus协议进行通讯,为什么先给PLC上电,后给变频器上电就可以启动,同时给PLC和变频器上电就启动不了???
最佳答案
ABB变频器 通讯
modbus通讯
1. ACS510变频器参数设置:
9802=1 modbus
5302=1 站号 5303=9.6kbit/s 波特率 5304=1 校验方式为8N2 5305为0 1001=10 由modbus控制变频器启停
1102=0 由modbus控制变频器给定速度(0-20000对应0-50Hz)
1103=8
2.控制变频器起停
a.初始化,即向modbus寄存器40001中写入1142(16进制数为476)并延时100毫秒;
b.停止电机,即向modbus寄存器40001中写入1143(16进制数为477);
c.启动电机,即向Amodbus寄存器40001中写入1151(16进制数为47F)'
例:通讯初始化:发出【02 06 00 00 04 76 CRC校验码】,延时100毫秒;
启动电机:发出【02 06 00 00 04 7F CRC校验码】
停止电机:发出【02 06 00 00 04 77 CRC校验码】
3.用modbus修改给定频率的方法
主机向通讯给定1(modbus寄存器40002)中写入设定的频率数值(范围=0~+20000(换算到0~1105给定1最大),或-20000~0(换算到1105给定1最大~0));
例如:若1105=50.00Hz;发出【01 06 00 01 27 10 CRC校验码】表示修改频率为25.00Hz。
4.用modbus修改加速时间的方法
向modbus寄存器42202中写入设定的加速时间数值由参数的分辨率和范围决定;
例:发出【01 06 08 99 02 58 CRC校验码】表示修改加速时间为60.0S。
附:
功能01:读线圈状态:
发送:01 01 00 20 00 03(站号 功能 开始 个数)
响应:01 01 01 06(站号 功能 字节数 字节1 字节2 …)
功能02:读离散功能输入状态:
发送:01 02 00 20 00 03(站号 功能 开始 个数)
响应:01 02 01 05(站号 功能 字节数 字节1 字节2 …)
功能03:读多个保持寄存器
发送:01 03 00 65 00 03(站号 功能 开始 个数)
响应:01 03 06 02 EE 00 FA 00 00(站号 功能 字节数 字节1 字节2 …)
功能04:读多个输入寄存器:
发送:01 04 00 00 00 02(站号 功能 开始 个数)
响应:01 04 04 00 01 01 F1(站号 功能 字节数 字节1 字节2 …)
功能06:写单个保持寄存器:
发送:01 06 08 99 02 58(站号 功能 寄存器号 数值)
响应:01 06 08 99 02 58(站号 功能 寄存器号 数值)
功能10:写多个保持寄存器:
发送:01 10 08 99 00 02 02 01 f4(站号 功能 开始 个数 字节数 字节1 字节2 …)
响应:01 10 08 99 00 02(站号 功能 开始 个数)
以上调试程序对ABB 其它交流变频器都同样适用, 如ACS600, ACS800,ACS143,ACS400,ACS510,ACS550同样适用.,不过对于ACS600,ACS800变频器需要增加modbus扩展模块.
对照以上提示,估计你没做初始化吧?
提问者对于答案的评价:
谢谢啦,参考一下!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc317839.html