02_ACS550变频器RS485Modbus通信-通信命令

来源:互联网 发布:netflix ribbon源码 编辑:程序博客网 时间:2024/05/19 22:50

ACS550变频器Modbus寻址

当我们能正确进行通信的时候,即可开始对变频器进行控制。

Modbus功能代码比较多,其中我们在对ACS550进行控制的时候,用的比较多的为03和06。

03:读取4x寄存器。

06:写单个4x寄存器。

因为03和06直接映射为4x对应的寄存器,因此我们在进行控制的时候,比较简单,例如:

0000对应的为40001寄存器,0001对应的为40002寄存器,00032对应的为40033寄存器。

ACS550变频器Modbus控制字

Modbus控制字即40001对应的寄存器的值,我们通过往该寄存器写值,根据每一位的不同控制其实现不同的功能。

控制字有16位。以ABB传动为例。

0(关断1控制):

位0为关断1控制,当取值为1时标识进入准备运行状态,取0时表示紧急关断。

当该位为1,且1、2位为1(关断1、2不激活)的时候,且为3为允许运行的时候,变频器即可运行。

1/2(关断1/2控制):

位1和2分别为关断1和关断2。当取值为1的时候,为不激活。

关断0/1/2为互锁状态,即其中一个激活的时候,另两个应该为不激活。

3(禁止运行):

当位3取0的时候为禁止运行,取1为允许运行。

4(积分输出置零):

该位在ABB传动简装版中未使用。

在ABB传动完整版中,1表示加速允许,0表示置积分函数发生器为0,传动器停车。

5(积分保持):

1表示积分允许,即加速允许,0表示积分输出保持,停止积分,积分函数发生器输出保持。

6(积分输出置0):

1表示积分输入允许,正常运行,进入运行状态。0表示积分输入置0,将积分函数发生器输入置0。

注:个人理解,当我们需要变频器加速的时候,需要给他一个目标值,距离目标值越远,加速越快,当积分函数发生器保持为某一个值的时候,变频器恒速运行,当积分输入置0的时候,停止运行。

7(复位):

该位为0表示正常运行,如果出现故障,该位有0变为1,进行故障复位。

8/9:

未使用。

10:

ABB传动简装版中未使用。

ABB传动完整版中1表示现场总线控制允许。

11(外部控制本地):

1外部2选择,0为外部1选择。

12~15:未使用。

注:当我们进行指令发送的时候,尽量以ABB传动完整版的指令进行控制和发送,例如第10位,不管是简装版还是完整版,都将其置1,这样即使我们从简装版切换为完整版,也能保证指令能够正常运行。

ACS550变频器控制

/** * 变频器控制 * ======================================================================== * ACS550的通讯启动过程: * 变频器上电以后(状态为不具备合闸条件(Not Ready To Switch On)),则需要逐个进行6次成功的 * 通讯才可以启动完毕(每次通讯变频器的回应应与PLC所发内容相同) * 1.使变频器具备合闸条件(Ready To Switch On) *      01 06 00 00 00 06 09 C8             (09C8为CRC校验码) * 2.使变频器给定1的值清0(Clear The Text REF1) *      01 06 00 01 00 00 D8 A0 * 3.使变频器状态为准备就绪(Ready To Operate) *      01 06 00 00 00 07 C8 08 * 4.使变频器状态为允许运行(Operation Enabled) *      01 06 00 00 00 0F C9 CE * 5.使变频器状态为允许加速(ACCELERATOR ENABLED) *      01 06 00 00 00 2F C8 16 * 6.使变频器状态为运行(Operating) *      01 06 00 00 00 6F C9 E6 *======================================================================= * 要停止正在运行的变频器,应发停止命令(不应以0速命令代替停止命令) * 停止命令有三种: *      急停1(变频器按照减速时间1(参数2203)减速停止) *      急停2(变频器按照减速惯性减速停止) *      急停3(变频器按照减速时间2(参数2205)减速停止) * 一般可使用急停1(变频器回应应与PLC所发内容相同) *      01 06 00 00 00 6D 48 27 *======================================================================= * 改变运行速度命令 * 正在运行的变频器可以接收变速命令,即通讯给定。 * 写入给定1保持寄存器的值0~20000对应变频器输出速度0~EXT REF1 MAX = 50.0HZ * 欲使变频器输出10.0HZ,应写入20000/5 = 4000 即 0F A0 * 变频器的回应应与PLC相同 *      01 06 00 01 00 00 D8 0A *      (注意:CRC校验字的放置顺序应为先低字节后高字节) *======================================================================= * 读变频器数据参数 * 可以经通讯读变频器参数如输出速度,电流,转矩,功率等参数,若所读参数在变频器寄存器地址上连续, * 还可以用一条命令读取多个参数,如读取输出电流: *      01 03 00 67 00 01 35 D5 * 变频器的回应: *      01 03 01 电流H 电流L CRCL CRCH * * 若要读取输出频率,电流,转矩,功率连续四个参数: *      01 03 00 66 00 04 A4 16 * 变频器的回应: *      01 03 04 频率H 频率L 电流H 电流L 转矩H 转矩L 功率H 功率L CRCL CRCH * * 若读回的电流字(电流H,电流L) 为 01 A5,则实际电流数值为 01 A5 = 42.1A * */

变频器发送的例子如上所示,例如我们要控制其他功能,例如修改变频器加速时间,即对应的参数为2202,则2202对应的地址为2201,16进制值为0x0899,修改加速时间为60.0s,则设置其值为600,对应的二进制为0x0258,则我们发送的指令应为:

    01 06 08 99 02 58 CRCH CRCL

总结

本文只介绍了控制字的部分功能,当我们进行数据读取的时候,可能需要用到状态字,根据我们对控制字的分析,结合用户手册查找对应的状态字各个位对应的功能,即可方便发送我们需要的指令,就不再对状态字即其他寄存器进行赘述了。

原创粉丝点击