8.1 协议内容
变频器提供RS485通信接口,并支持Modbus-RTU通讯协议。用户可通过计算机或PLC实现集中控制, 通过该通讯协议设定变频器运行命令,修改或读取功能码参数,读取变频器的工作状态及故障信息等。
该串行通信协议定义了串行通信中传输的信息内容及使用格式。其中包括:主机轮询(或广播)格式;主机的编码方法,内容包括:要求动作的功能码,传输数据和错误校验等。从机的响应也是采用相同的结构,内 容包括:动作确认,返回数据和错误校验等。如果从机在接收信息时发生错误,或不能完成主机要求的动作, 它将组织一个故障信息作为响应反馈给主机。
8.1.1 应用方式
变频器接入具备RS485总线的“单主多从”PC/PLC控制网络,作为通讯从机。
8.1.2 总线结构
(1)硬件接口 自带通讯接口A+、B-接线端子。
(2)拓扑结构
单主机多从机系统。网络中每一个通讯设备都有一个唯一的从站地址,其中有一个设备作为通讯主机(PC上位机、PLC、HMI等),主机发动通讯,对从机进行参数读或写操作,其它设备在为通讯从机,响应主机对 本机的询问或通讯操作。在同一时刻只能有一个设备发送数据,而其他设备处于接收状态。从机地址的设定范围为1~247,0为广播通信地址。网络中的从机地址必须是唯一的。
(3)通讯传输方式
异步串行,半双工传输方式。数据在串行异步通信过程中,是以报文的形式,一次发送一帧数据, MODBUS-RTU协议中约定,当通讯数据线上无数据的空闲时间大于3.5Byte的传输时间,表示新的一个通讯帧 的起始。
变频器内置的通信协议是Modbus-RTU从机通信协议,可响应主机的“查询/命令”,或根据主机的“查 询/命令”做出相应的动作,并通讯数据应答。
主机可以是指个人计算机(PC),工业控制设备或可编程逻辑控制器(PLC)等,主机既能对某个从机 单独进行通信,也能对所有下位从机发布广播信息。对于主机的单独访问“查询/命令”,被访问从机要返 回一个应答帧频;对于主机发出的广播信息,从机无需反馈响应给主机。
8.1.3 通讯资料结构
Modbus协议通讯数据格式如下,变频器只支持Word型参数的读或写。对应的通讯读操作命令为0x03; 写操作命令为0x06,不支持字节或位的读写操作: 理论上,上位机可以一次读取连续的几个功能码(即其中n最大可达12个),但要注意不能跨过本功能码组 最后一个功能码,否则会答复出错。 若从机检测到通讯帧错误,或其他原因导致的读写不成功,会答复错误帧。
8.1.4 数据帧字段说明
项目 | 说明 |
---|---|
帧头START | 大于3.5个字符传输时间的空闲 |
从机地址ADR | 通讯地址范围:1~247;0=广播地址 |
命令码CMD | 03:读从机参数;06:写从机参数 |
功能码地址H | 变频器内部的参数地址,16进制表示;分为功能码型和非功能码型(如 运行状态参数、运行命令等)参数等,详见地址定义。传送时,高字节在前,低字节在后 |
功能码地址L | 同上 |
功能码个数H | 本帧读取的功能码个数,若为1表示读取1个功能码。传送时,高字节在前,低字节在后。 本协议一次只能改写1个功能码,没有该字段。 |
功能码个数L | 同上 |
数据H | 应答的数据,或特写入的数据,传送时,高字节在前,低字节在后。 |
数据L | 同上 |
CRCCHK高位 | 检测值:CRC16校验值。传送时,高字节在前,低字节在后。 计算方法详见本节CRC校验的说明。 |
CRCCHK低位 | 同上 |
END | 3.5个字符时间 |
8.1.5 CMD检验方式
校验方式CRC校验方式:CRC(Cyclical Redundancy Check)使用RTU帧格式,消息包括了基于CRC 方法的错误检测域。CRC域检测了整个消息的内容。CRC域是两个字节,包含16位的二进制值。它由传输设备 计算后加入到消息中。接收设备重新计算收到消息CRC,并与接收到的CRC域中的值比较,如果两个CRC值不 相等,则说明传输有错误。
CRC是先存入0xFFFF,然后调用一个过程将消息中连续的8位字节与当前寄存器中的值进行处理。仅每 个字符中的8Bit数据对CRC有效,起始位和停止位以及奇偶校验位均无效。
CRC产生过程中,每个8位字符都单独和寄存器内容相异或(XOR),结果向最低有效位方向移动,最高有 效位以0填充。LSB被提取出来检测,如果LSB为1,寄存器单独和预置的值相异或,如果LSB为0,则不进行。 整个过程要重复8次。在最后一位(第8位)完成后,下一个8位字节又单独和寄存器的当前值相异或。最终寄存器中的值,是消息中所有的字节都执行之后的CRC值。 CRC添加到消息中时,低字节先加入,然后高字节。CRC简单函数如下:
unsigned int CRC16_CHK(unsigned char *data, unsigned char length)
{
int j = 0;
unsigned int crc Oxffff reg:
while(length--)
{
crc reg *data++:
for(j=0:j<8:j++)
{
if(reg crc 0x01)
{
reg_crc (reg_crc > 1) 0xa001:
}
else
{
reg_crc = reg_crc >> 1;
}
}
}
return reg_crc;
}
8.1.6功能码参数地址标示规则:
读写功能码参数(有些功能码是不能更改的,只供厂家使用或监视使用):
以功能码组号和标号为参数地址表示规则:
高位字节: PO~PF(P组) AO-AF(A组) 70~7F(U组)
低位字节: 00~FF
例如:若要范围功能码P3-12 ,则功能码的访问地址表示为F30CH
PF组:既不可读取参数,也不可更改参数;
U组:只可读取,不可更改参数.
有些参数在变频器处于运行状态时不可更改;有些参数不论变频器处于何种状态,均不可更改;更改功能码参数,还要注意参数的范围、单位及相关说明。
功能码组号 | 通讯访问地址 | 通讯修改RAM中功能码地址 |
---|---|---|
P0~PE 组 | 0xF000~0xFEFF | 0x0000~0x0EFF |
A0~AC 组 | 0xA000~0xACFF | 0x4000 ~0x4CFF |
U0组 | 0x7000 ~0x70FF | 只读,不可写 |
1、由于EEPROM频繁被存储,会减少EEPROM的使用寿命,所以,有些功能码在通讯的模式下,无须存储,只要更改RAM中的值就可以了。
2、如果为P组参数,要实现该功能,只要把该功能码地址的高位F变成0就可以实现.如果为A组参数,要实现该功能,只要把该功能码地址的高位A变成4就可以实现。
写入RAM相应功能码地址如下:
高位字节:00~0F(P组) 40~4F(A组)
低位字节:00~FF
例如:功能码 P3-12不存储到 EEPROM 中,地址表示为 030cH ;
功能码A0-05不存储到EEPROM中,地址表示为4005H ;
该地址表示只能做写RAM,不能做读的动作,读时,为无效地址.对于所有参数,也可以使用命令码07H来实现该功能.
8.1.7 停机/运行参数部分:
参数地址 | 参数描述 | 参数地址 | 参数描述 |
---|---|---|---|
1000H | 通信设定值(十进制)-10000-10000 | 1010H | PID设置 |
1001H | 运行频率 | 1011H | PID反馈 |
1002H | 母线电压 | 1012H | PLC步骤 |
1003H | 输出电压 | 1013H | 输入脉冲频率, 单位 0.01kHz |
1004H | 输出电流 | 1014H | 反馈速度,单位0.1Hz |
1005H | 输出功率 | 1015H | 剩余运行时间 |
1006H | 输出转矩 | 1016H | All校正前电压 |
1007H | 运行速度 | 1017H | AI2校正前电压 |
1008H | DI输入标志 | 1018H | AI3校正前电压 |
1009H | DO输出标志 | 1019H | 线速度 |
100AH | All电压 | 101AH | 当前上电时间 |
100BH | AI2电压 | 101BH | 当前运行时间 |
100CH | AI3电压 | 101CH | 输入脉冲频率,单位1Hz |
100DH | 计数值输入 | 101DH | 通讯设定值 |
100EH | 长度值输入 | 101EH | 实际反馈速度 |
100FH | 负载速度 | 101FH | 主频率X显示 |
1020H | 辅频率Y显示 |
1、通信设定值是相对值的百分数,10000对应100.00%, -10000对应-100.00%。
2、对频率量纲的数据,该百分比是相对最大频率(P0-10)的百分数;对转矩量纲的糠,该百分比是P2-10、A2-48、A3-48、A4-48 (转矩上限数字设定,分别对应第一、二三、四电机)
控制命令输入到变频器:(只写)
命令字地址 | 命令功能 |
---|---|
2000H | 0001:正转运行0002:反转运行0003:正转点动0004:反转点动0005:自由停机0006:减速停机0007:故障复位 |
读取变频器状态:(只读)
状态字地址 | 状态字功能 |
---|---|
3000H | 0001:正转运行0002:反转运行0003:停机 |
参数锁定密码检验:(如果返回为888H,即表示密码校验通过)
密码地址 | 输入密码的内容 |
---|---|
1F00H | ***** |
8.1.8 输出控制命令
命令字地址 | 命令内容 | 输出控制命令说明 |
---|---|---|
2001H | Bit0: DO1输出控制Bit1: DO2输出控制Bit2: RELAY1输出控制Bit3: RELAY2输出控制Bit4: FMR输出控制Bit5: VDO1Bit6: VDO2 | 数字输出端子控制:(只写) |
2002H | 0~7FFF表示0%~100% | 模拟输出AO1控制:(只写) |
2003H | 0~7FFF表示0%~100% | 模拟输出AO2控制:(只写) |
2004H | 0~7FFF表示0%~100% | 脉冲(PULSE)输出控制:(只写) |
8.1.9 变频器故障描述
变频器故障地址 | 变频器故障信息 |
---|---|
8000H | 0000:无故障 0001:保留0002:加速过电流 0003:减速过电流 0004:恒速过电流 0005:加速过电压0006:减速过电压 0007:恒速过电压0008:缓冲电阻过载故障0009:欠压故障 000A:变频器过载 000B:电机过载 000C:输入缺相 000D:输出缺相 000E:模块过热 000F:外部故障 0010:通讯异常 0011:接触器异常0012:电流检测故障 0013:电机调谐故障0014:编码器/PG卡故障0015:参数读写异常 0016:变频器硬件故障 0017:电机对地短路故障0018:保留 0019:保留001A:运行时间到达001B:用户自定义故障1 001C:用户自定义故障2001D:上电时间到达 001E:掉载001F:运行时PID反馈丢失 0028:快速限流超时故障 0029:运行时切换电机故障002A:速度偏差过大 002B:电机超速度 002D:电机过温005A:编码器线数设定错误005B:未接编码器 005C:初始位置错误 005E:速度 |
8.1.10 PD组通讯参数说明
功能码 | 名称 | 设定范围 | 出厂值 |
---|---|---|---|
Pd-00 | 波特率 | 个位:MODUBS波特率0:300BPS 1:600BPS 2:1200BPS 3:2400BPS 4:4800BPS5:9600BPS6:19200BPS 7:38400BPS 8:57600BPS 9:115200BPS | 600 |
功能码 | 名称 | 设定范围 | 出厂值 |
---|---|---|---|
Pd-01 | 数据格式 | 0:无校验:数据格式<8,N,2> 1:偶检验:数据格式<8,E,1> 2:奇校验:数据格式<8,0,1> | 0 |
功能码 | 名称 | 设定范围 | 出厂值 |
---|---|---|---|
Pd-02 | 本机地址 | 1~247,0为广播地址 | 1 |
本机地址具有唯一性(除广播地址外),这是实现上位机与变频器点对点通讯的基础。
功能码 | 名称 | 设定范围 | 出厂值 |
---|---|---|---|
Pd-03 | 应答延时 | 0~20ms | 2ms |
功能码 | 名称 | 设定范围 | 出厂值 |
---|---|---|---|
Pd-04 | 通讯超时时间 | 0.0s(无效)0.1~60.0s | 2ms |
当该功能码设置为0.0s时,通讯超时时间参数无效。
当该功能码设置成有效值时,如果一次通讯与下一次通讯的间隔时间超出通讯超时时间,系统将报通讯故障错误(Err16)。通常情况下,都将其设置成无效。如果在连续通讯的系统中,设置次参数,可以监视通讯状况。
功能码 | 名称 | 设定范围 | 出厂值 |
---|---|---|---|
Pd-05 | 0:非标准的Modbus协议; 1:标准的Modbus协议 | 0 |
功能码 | 名称 | 设定范围 | 出厂值 |
---|---|---|---|
Pd-06 | 通讯读取电流分辨率 | 0:0.01A; 1:0.1A | 0 |
探索以下文档以便了解更多内容: