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
总结
本文只介绍了控制字的部分功能,当我们进行数据读取的时候,可能需要用到状态字,根据我们对控制字的分析,结合用户手册查找对应的状态字各个位对应的功能,即可方便发送我们需要的指令,就不再对状态字即其他寄存器进行赘述了。
- 02_ACS550变频器RS485Modbus通信-通信命令
- 01_ACS550变频器RS485Modbus通信-通讯连接
- 03_ACS550变频器RS485Modbus通信-CRC校验
- 混频器与变频器在射频通信中的区别
- PLC编程全科班+人机界面编程+电机+变频器通信培训
- 网络通信命令详解
- Linux网络通信命令
- Linux网络通信命令
- 网络通信命令详解
- 串口通信命令解析
- 移动通信AT命令
- 解析通信字符串命令
- 通信
- 通信
- 通信
- 通信
- 通信
- 通信
- JPA和Spring-Data-JPA简介
- c++字符串的插入与删除操作
- Android7.0 init.rc流程分析
- 局部变量、 全局变量、 堆、 堆栈、 静态和全局
- log4j2 个性化日志名
- 02_ACS550变频器RS485Modbus通信-通信命令
- JavaWeb学习心得之JSP原理
- spark streaming 使用socket数据来源
- linux学习---进程控制(fork,vfork,popen,exec,system)
- MindManager2018中文版发布,新版新发现!
- 图解phpstorm常用快捷键
- char * 与 string 类型相互转换方法--C/C++
- matlab函数bsxfun、crossvalind、ismember,kmean
- Java并发编程:volatile关键字解析