其实你可以找ABB的供应商要通信库,我这里只有355的库
ABB可以用标准的MODBUS和ACS510通信的,并且很简单的。很多年前做过,翻看下以前的文档,对应地址如下:
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.启动电机,即向Modbus寄存器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(站号 功能 开始 个数)