02_ACS550变频器RS485Modbus通信-通信命令
2017-10-27 14:43
288 查看
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
总结
本文只介绍了控制字的部分功能,当我们进行数据读取的时候,可能需要用到状态字,根据我们对控制字的分析,结合用户手册查找对应的状态字各个位对应的功能,即可方便发送我们需要的指令,就不再对状态字即其他寄存器进行赘述了。相关文章推荐
- 03_ACS550变频器RS485Modbus通信-CRC校验
- SCOM PowerShell 命令使用指南 - 02 (ManagementGroup)
- 02_01_Linux操作系统及常用命令
- iOS开发 - 第04篇 - 网络 - 02 - JSON解析 & 请求 & 黑酷例子 & HTTP通信
- 遵循Modbus协议通过Usb(Ch375)通信的上位机传输问题
- LPC2387 RS485通信
- 基于modbus的UART通信1
- 通过命令管道,在进程之间进行通信的简单例子
- Git命令家底儿及Git数据通信原理详解
- Git命令家底儿及Git数据通信原理详解
- Modbus串行通信
- [鸟哥linux视频教程整理]03_02_Linux文件管理类命令及bash特性详解
- linux下用户间通信命令wall
- linux常用命令—— 网络通信(十)
- PC和单片机通过MODBUS RTU通信
- wall, write...通信命令
- <02>Linux基本命令及常用命令
- 【每天一个Linux命令】02. Linux中shell数据重定向(输入重定向与输出重定向)
- Linux常用命令02 cd
- iptables命令使用基础(02)