EH600 通讯协议及通讯卡使用说明(版本:2.2)
EH600 通讯协议及通讯卡使用说明(版本:2.2)
本文件与深圳市西林电气技术有限公司设计之通讯卡一起配送给用户,通讯卡的使用参见第二章的说明内容。EH600的通讯协议完全兼容标准Modbus通讯协议,同时根据客户的应用需求,本协议增加了累加和校验方式,以及复合命令方式来丰富客户的编程选择。
第一章 EH600 串行通讯协议
在EH600系列变频器中,提供RS485通信接口(在主机是RS232接口时可以同时选购我公司的 RS485/232适配器来转换信号),用户可通过PC/PLC实现集中控制(设定变频器运行命令,功能码参数,读取变频器的工作状态及故障信息),以适应特定的使用要求。
1. 协议内容
该串行通信协议定义了串行通信中传输的信息内容及使用格式。其中包括:主机轮询(或广播)格式;主机的编码方法,内容包括:要求动作的功能码,传输数据和错误校验等。从机的响应也是采用相同的结构,内容包括:动作确认,返回数据和错误校验等。如果从机在接收信息时发生错误,或不能完成主机要求的动作,从机将组织一个故障信息作为响应反馈给主机。
当主机采用广播地址, 所有从机都接收主机发出的协议内容,但不对主机进行响应.
2. 应用方式
变频器接入具备RS485总线的“单主多从”PC/PLC控制网络。
3. 总线结构
(1) 接口方式
RS485硬件接口
(2) 传输方式
异步串行,半双工传输方式。在同一时刻主机和从机只能有一个发送数据而另一个只能接收数据。数据在串行异步通信过程中,是以报文的形式,一帧一帧发送。
(3) 拓扑结构
单主机多从机系统。从机地址的设定范围为1~247,0为广播通信地址。网络中的从机地址必须是唯一的。
4. 协议说明
EH600系列变频器通信协议是一种异步串行的主从Modbus通信协议,网络中只有一个设备
(主机)能够建立协议(称为“查询/命令”)。其他设备(从机)只能通过提供数据响应主机 的“查询/命令”,或根据主机的“查询/命令”做出相应的动作。主机在此是指个人计算机(PC),工业控制设备或可编程逻辑控制器(PLC)等,从机是指EH600变频器。主机既能对某个从机单独进行通信,也能对所有下位从机发布广播信息。对于单独访问的主机“查询/命令”,从机都要返回一个信息(称为响应),对于主机发出的广播信息,从机无需反馈响应给主机。
5. 通讯资料结构
EH600系列变频器的Modbus协议通信数据格式如下:
使用RTU模式,消息发送至少要以3.5个字符时间的停顿间隔开始。传输的第一个域是设备地址。可以使用的传输字符是十六进制的0...9,A...F。网络设备不断侦测网络总线,包括停顿间隔时间内。当第一个域(地址域)接收到,每个设备都进行解码以判断是否发往自己的。在最后一个传输字符之后,一个至少3.5个字符时间的停顿标定了消息的结束。一个新的消息可在此停顿后开始。 整个消息帧必须作为一连续的流转输。如果在帧完成之前有超过1.5个字符时间的停顿时间,接收设备将刷新不完整的消息并假定下一字节是一个新消息的地址域。同样地,如果一个新消息在小于3.5个字符时间内接着前个消息开始,接收的设备将认为它是前一消息的延续。这将导致一个错误,因为在最后的校验域的值不可能是正确的。
◆ RTU帧格式:
帧头START | 3.5个字符时间 |
从机地址ADR | 通讯地址:1~247 |
命令码CMD | 03:读从机参数; 06:写从机参数 08:复合命令(参见第11页:补充协议) |
数据内容DATA(N-1) | 资料内容: 功能码参数地址,功能码参数个数,功能码参数值等。 |
数据内容DATA(N-2) | |
…… | |
数据内容DATA0 | |
CRC 低位 (累加和高位) | 通过FC.01的十位选择校验方式 |
CRC 高位 (累加和低位) | |
END | 3.5个字符时间 |
◆ CMD(命令指令)及DATA(资料字描述)
命令码:03H,读取N个字(Word)(最多可以读取5个字)
例如:从机地址为01的变频器的启始地址F002连续读取连续2个值
主机命令信息
ADR | 01H |
CMD | 03H |
启始地址高位 | F0H |
启始地址低位 | 02H |
寄存器个数高位 | 00H |
寄存器个数低位 | 02H |
CRC 低位 | 56H |
CRC 高位 | CBH |
从机回应信息
ADR | 01H |
CMD | 03H |
字节个数 | 04H |
寄存器内容高位 (地址F002H) | 00H |
寄存器内容低位 (地址F002H) | 00H |
寄存器内容高位 (地址F003H) | 00H |
寄存器内容低位 (地址F003H) | 00H |
CRC 低位 | FAH |
CRC 高位 | 33H |
命令码:06H,写一个字(Word)
例如:将5000(1388H)写到从机地址02H变频器的F00BH地址处。
主机命令信息
ADR | 02H |
CMD | 06H |
寄存器地址高位 | F0H |
寄存器地址低位 | 0BH |
寄存器内容高位 | 13H |
寄存器内容低位 | 88H |
CRC 低位 | C6H |
CRC 高位 | 6DH |
从机回应信息
ADR | 02H |
CMD | 06H |
寄存器地址高位 | F0H |
寄存器地址低位 | 0BH |
寄存器内容高位 | 13H |
寄存器内容低位 | 88H |
CRC 低位 | C6H |
CRC 高位 | 6DH |
◆ 校验方式——CRC校验方式:CRC(Cyclical Redundancy Check)
使用RTU帧格式,消息包括了基于CRC方法的错误检测域。CRC域检测了整个消息的内容。CRC域是两个字节,包含16位的二进制值。它由传输设备计算后加入到消息中。接收设备重新计算收到消息的CRC,并与接收到的CRC域中的值比较,如果两个CRC值不相等,则说明传输有错误。
CRC是先存入0xFFFF到CRC寄存器,然后调用一个过程将消息中连续的8Bit字节与当前寄存器中的值进行处理。仅每个字符中的8Bit数据对CRC有效,起始位和停止位以及奇偶校验位均无效。CRC产生过程中:每个8位字符都单独和CRC寄存器内容相异或(XOR),结果向最低有效位方向移动,最高有效位以0填充。LSB被提取出来检测,如果LSB为1,CRC寄存器单独和预置的值相异或,如果LSB为0,则不进行。整个过程要重复8次。在最后一位(第8位)完成后,下一个8位字节又单独和CRC寄存器的当前值相异或。最终CRC寄存器中的值,是消息中所有的字节都执行之后的CRC值。
下面为产生CRC的计算过程:
1.将一个16位寄存器的值设置为FFFF(hex),称之为CRC寄存器。
2.将数据的第一个8Bit字符与16位CRC寄存器的低8位进行异或计算,并把结果存入 CRC寄存器。
3.CRC寄存器向右移一位(向着最低位LSB),最高位MSB补零,移出并检查LSB。
4.如果LSB为0:重复第三步(另一个移位);
如果LSB为1:CRC寄存器与预置值:A001H(1010 0000 0000 0001B)进行异或操作。 5.重复第3与第4步直到8次移位全部完成。此时一个8bit数据处理完毕。
6.重复第2至第5步直到所有数据全部处理完成。
7.最终CRC寄存器的内容即为CRC值。
注意:CRC添加到消息中时,低字节先加入,然后高字节。
CRC简单函数如下:
unsigned int crc_chk_value(unsigned char *data_value,unsigned char length)
{
unsigned int crc_value=0xFFFF; int i;
while(length--)
{
crc_value^=*data_value++; for(i=0;i<8;i++)
{
if(crc_value&0x0001)
{
}
else
{
}
}
}
crc_value=(crc_value>>1)^0xa001;
crc_value=crc_value>>1;
return(crc_value);
}
◆ 通信参数的地址定义
该部分是通信的内容,用于控制变频器的运行,变频器状态及相关参数设定。读写功能码参数:
功能码参数地址标示规则:
以功能码组号和标号为参数地址表示规则:高位字节:F0~FD
低位字节:00~FF
如:F3.12,地址表示为F30C;注意:
有些参数只能读取不可更改,有些参数在变频器处于运行状态时,不可更改;更改功能码参数,还要注意参数的范围,单位,及相关说明。
另外,由于EEPROM频繁被存储,会减少EEPROM的使用寿命,所以,有些功能码在通讯的模式下,无须存储,只要更改RAM中的值就可以了。要实现该功能,只要把该功能码地址的高位F变成0就可以实现。
相应功能码地址表示如下:高位字节:00~0D
低位字节:00~FF
如:功能码F3.12不存储到EEPROM中,只修改RAM,地址表示为030C。监控参数FV组:
参数地址 | 参数编码 | 参数描述 | |||
1000H | Fv.00 | 输出频率 | |||
1001H | Fv.01 | 设定频率(可读写,写命令将改 变通讯给定的设定频率值) | |||
1002H | Fv.02 | 输出电流 | |||
1003H | Fv.03 | 运行转速 | |||
100DH | Fv.13 | PID设定(可读写,写命令将改 变通讯给定的PID设定值) | |||
100EH | Fv.14 | PID反馈(可读写,写命令将改 变通讯给定的PID反馈值) | |||
1018H | Fv.24 | 散热器温度 | |||
1019H | Fv.25 | 累计运行时间 |
控制命令输入到变频器:(只写)
命令字地址 | 命令内容 |
2000H | 0001:正转运行 |
0002:反转运行 | |
0003:正转点动 | |
0004:反转点动 | |
0005:自由停机 | |
0006:减速停机 | |
0007:故障复位 |
读取变频器状态:(只读)
状态字地址 | 状态内容 |
3000H | 0001:正转运行 |
0002:反转运行 | |
0003:正转点动运行 | |
0004:反转点动运行 | |
0005:直流制动 | |
0006:变频器故障 | |
0007:停机 |
变频器故障描述(提供EH600当前的故障信息给主机设备):
变频器故障地址 | 变频器故障信息 |
8000H | 0000H:无故障(--) |
0001H:逆变单元保护(E.1) | |
0002H:加速中过流(E.OC1) | |
0003H:减速中过流(E.OC2) | |
0004H:恒速中过流(E.OC3) | |
0005H:加速中过压(E.OU1) | |
0006H:减速中过压(E.OU2) | |
0007H:恒速中过压(E.OU3) | |
0008H:停机时过压(E.OU4) | |
0009H:运行中欠压(E. LU) | |
000AH:变频器过载(E.OL1) | |
000BH:电机过载(E.OL2) | |
000CH:输出缺相(X. LF) | |
000DH:变频器过热(E. OH) | |
000EH:外部设备故障(E. EF) | |
000FH:通讯故障(E. CE) | |
0010H:输出接地(E. GF) | |
0011H:CPU干扰(E.2) | |
0012H:电流检测故障(E.3) |
◆ 例外情况处理:
除广播外,主机对于自己向从机设备发送的每个查询都期望有一个正常的响应,对于主机的查询,可能发生下面4种情况中的一种:
1:如果从机正常接收查询,无通讯错误出现,处理查询顺利,它将返回一个正常的响应。
2:如果因为通讯错误没有接收到查询,从机将不返回任何响应。主机程序将最终对查询作超时处理。
3:如果从机接收到了查询,但发现有通讯错误 (奇偶校验或CRC) ,它也不返回任何响应。主机程序最终对查询作超时处理。
4:如果从机接收到了查询,无通讯错误,但无法执行(例如去读一个不存在的寄存器)时,从机将返回例外情况响应,告知主机错误的性质。例外情况响应另有两个域,以区别于正常的响应。
命令域::正常响应时,从机以原来查询的命令码应答。命令码的最高标志位(MSB)一般都为为0(其值低于80H)。在例外情况响应时,从机将命令码的MSB置为1,使命令代码值大于80H,高于正常响应的值。这样,主机应用程序能识别例外情况响应,并将同时检查例外情况的数据域内容。
数据域:正常响应中,数据区含有(按查询要求给出的) 数据或统计值,例外情况响应时,从机在数据域中返回一个例外情况代码。它说明从机是如何产生例外情况的。下图是以例外情况来响应主机查询的一个例子:
主机查询信息
ADR | 02H |
CMD | 06H |
寄存器地址高位 | F0H |
寄存器地址低位 | 00H |
寄存器内容高位 | 00H |
寄存器内容低位 | 00H |
CRC 低位 | BAH |
CRC 高位 | F9H |
从机回应信息
ADR | 02H |
CMD | 86H |
例外情况代码 | 03H |
CRC 低位 | F2H |
CRC 高位 | 61H |
说明:由于F0.00参数是只读参数,所以回应参数更改无效。
EH600采用的例外情况代码
代码 | 例外情况描述 |
01H | 非法功能码 |
02H | 非法数据地址 |
03H | 非法数据值 原因如下 ⚫ 超出限值 ⚫ 对只读参数进行写操作 ⚫ 运行状态下,禁止参数写操作 ⚫ 从机忙,主要发生在存储数据到 EEPROM时 |
6. FC组通讯参数说明
FC.00 | xx率 | 出厂值 | 3 |
设定范围 | 0 | 1200bps | |
1 | 2400bps | ||
2 | 4800bps | ||
3 | 9600bps | ||
4 | 19200bps | ||
5 | 38400bps |
此参数用来设定上位机与变频器之间的数据传输速率。注意,上位机与变频器设定的xx率必须一致,否则,通讯无法进行。xx率越大,通讯速度越快。
FC.01 | 数据格式 | 出厂值 | 0 | |||
设定范围 | LED个位(字节校验方式) | 0 | 无校验:数据格式<8,N,2> | 注:2个停止位 | ||
1 | 偶检验:数据格式<8,E,1> | 1个停止位 | ||||
2 | 奇校验:数据格式<8,O,1> | 1个停止位 | ||||
LED十位(桢校验方式) | 0 | CRC16 | ||||
1 | 累加和(16位) |
上位机与变频器设定的数据格式必须一致,否则,通讯无法进行。
针对编程用的校验方式是累加和的部分用户,西林公司的通讯协议也兼容该种校验方式,通过将 FC.01 的十位设定成 1 来实现。
在该模式下,前面所涉及的校验数据CRC 低位/高位将分别被累加和高位/低位所取代。
FC.02 | 本机地址 | 出厂值 | 1 |
设定范围 | 1~247,0为广播地址 |
当上位机地址设定为0时,即为广播地址,实现上位机广播功能,命令对所有从机都有效 。本机地址具有唯一性(除广播地址外),这是实现上位机与变频器点对点通讯的基础。
FC.03 | 应答延时 | 出厂值 | 2ms |
设定范围 | 0~20ms |
应答延时:是指变频器数据接收结束到向上位机发送数据的中间间隔时间。如果应答延时小于系统处理时间,则应答延时以系统处理时间为准,如应答延时长于系统处理时间,则系统处理完数据后,要延迟等待,直到应答延迟时间到,才往上位机发送数据。
FC.04 | 通讯超时时间 | 出厂值 | 0.0s |
设定范围 | 0.0 s(无效),0.1~60.0s |
当该功能码设置为0.0 s时,通讯超时时间参数无效。
当该功能码设置成有效值时,如果一次通讯与下一次通讯的间隔时间超出通讯超时时间,系统将根据FC.05设定的通讯超时动作选择的方式进行相应的处理。
通常情况下,都将其设置成无效。如果在连续通讯的系统中,设置次参数,可以监视通讯状况。
FC.05 | 通讯超时动作选择 | 出厂值 | 0 |
设定范围 | 0 | 停机 | |
1 | 保持当前频率 | ||
2 | 停机且报通讯故障(E.CE) |
7. 通讯功能使能参数说明
F0.02 | 命令源选择 | 出厂值 | 0 |
设定范围 | 0 ~ 4 3/4 通讯命令通道有效 |
F0.03 | 主频率源 X 选择 | 出厂值 | 0 |
设定范围 | 0 ~ 8 8: 通讯给定 | ||
F0.04 | 辅助频率源 Y 选择 | 出厂值 | 2 |
设定范围 | 0 ~ 8 8: 通讯给定 |
8. 常用通讯命令举例
注意:以下从机回应的信息作为例子用来帮助用户理解协议,与实际回应的信息可能会有差异。
ADR | CMD | 启始地址高位 | 启始地址低位 | 寄存器个数高位 | 寄存器个数低位 | CRC低位 | CRC高位 |
01 | 03 | 10 | 00 | 00 | 01 | 80 | CA |
01 | 03 | 30 | 00 | 00 | 01 | 8B | 0A |
A:CRC校验方式读命令:
查询 1 号从 机输出频率:
查询 1 号从机状态:
ADR | CMD | 寄存器地址高位 | 寄存器地址低位 | 寄存器内容高位 | 寄存器内容低位 | CRC低位 | CRC高位 |
01 | 06 | 20 | 00 | 00 | 01 | 43 | CA |
写命令:
对 1 号从机发出正转命令:
01 | 06 | 20 | 00 | 00 | 06 | 02 | 08 |
00 | 06 | 10 | 01 | 0B | B8 | DA | 59 |
对 1 号从机发出减速停机命令:
将所有从机的通讯给定修改为 30.00Hz
00 | 06 | 20 | 00 | 00 | 01 | 42 | 1B |
广播正转运行命令
00 | 06 | 20 | 00 | 00 | 06 | 03 | D9 |
广播减速停机命令
00 | 06 | 20 | 00 | 00 | 07 | C2 | 19 |
广播故障复位位命令
B. 累加和校验方式
通过将 FC.01 的十位设定成 1 来实现累加和校验方式。
ADR | CMD | 启始 地址高位 | 启始 地址低位 | 寄存器个数高位 | 寄存器个数低位 | 累加和高位 | 累加和低位 |
01 | 03 | 10 | 00 | 00 | 01 | 00 | 15 |
该模式下,前面所涉及的校验数据 CRC 低位/高位将分别被累加和高位/低位所取代。读命令:
查询 1 号从 机输出频率:
01 | 03 | 30 | 00 | 00 | 01 | 00 | 35 |
查询 1 号从机状态:
ADR | CMD | 寄存器地址高位 | 寄存器地址低位 | 寄存器内容高位 | 寄存器内容低位 | 累加和高位 | 累加和低位 |
01 | 06 | 20 | 00 | 00 | 01 | 00 | 28 |
写命令:
对 1 号从机发出正转命令:
01 | 06 | 20 | 00 | 00 | 06 | 00 | 2D |
对 1 号从机发出减速停机命令:
00 | 06 | 10 | 01 | 0B | B8 | 00 | DA |
将所有从机的通讯给定修改为 30.00Hz
00 | 06 | 20 | 00 | 00 | 01 | 00 | 27 |
广播正转运行命令
00 | 06 | 20 | 00 | 00 | 06 | 00 | 2C |
广播减速停机命令
00 | 06 | 20 | 00 | 00 | 07 | 00 | 2D |
广播故障复位位命令
9: 补充协议
针对变频器的实际应用需求,EH600提供了一种特殊的通讯协议命令,是一种同时兼容读写命令的复合命令方式。这种复合命令的协议的校验方式同其他命令一样也可以有两种选择。
RTU帧格式:
帧头START | 3.5个字符时间 |
从机地址ADR | 通讯地址:1~247(0:广播地址) |
命令码CMD | 08:复合命令 |
主机发出:命令内容高位|从机回应:状态内容高位 | 主机发出运行命令以及设定运行频率,从机回应变频器状态以及当前运行频率.命令和状态内容请参见第5页的解释 |
命令内容低位| 状态内容低位 | |
设定频率高位| 运行频率高位 | |
设定频率低位| 运行频率低位 | |
CRC 低位(累加和高位) | 通过设定FC.01的十位来选择校验方式 |
CRC 高位(累加和低位) | |
END | 3.5个字符时间 |
下面以累加和校验方式为例子对复合命令协议进行举例
ADR | CMD | 命令内容 高位 | 命令内容 低位 | 设定频率 高位 | 设定频率 低位 | 累加和高位 | 累加和低位 |
01 | 08 | 00 | 01 | 0B | B8 | 00 | CD |
注意:从机回应的信息作为例子帮助用户理解协议,与实际回应的信息可能会有差异。主机发送:
从机回应:
主机发送:
从机回应:
向 1 号从机发出正转运行命令,设定运行频率为 30.00Hz
ADR | CMD | 状态内容 高位 | 状态内容 低位 | 运行频率 高位 | 运行频率 低位 | 累加和高位 | 累加和低位 |
01 | 08 | 00 | 01 | 09 | C4 | 00 | D7 |
1 号从机回应主机:当前变频器在正转运行,实际运行频率为 25.00Hz
ADR | CMD | 命令内容 高位 | 命令内容 低位 | 设定频率 高位 | 设定频率 低位 | 累加和高位 | 累加和低位 |
01 | 08 | 00 | 06 | 00 | 00 | 00 | 0F |
向 1 号从机发出减速停机命令,设定运行频率为 0.00Hz
ADR | CMD | 状态内容 高位 | 状态内容 低位 | 运行频率 高位 | 运行频率 低位 | 累加和高位 | 累加和低位 |
01 | 08 | 00 | 01 | 0B | B8 | 00 | CD |
1 号从机回应主机:当前变频器在正转运行,实际运行频率为 30.00Hz
第二章 通讯卡使用说明
西林公司通讯卡是为EH600系列部分变频器提供远程串行通讯功能而专门研制的。
注意:对于本公司EH600M系列以及EH600A11G/15P以上功率等级的机器,由专用通讯CPU
板提供通讯相关硬件接口,如有需要请在订货时特殊注明。
使用说明
1. 定货型号:EH60 - 485
2. 端子接线说明
物理结构及安装方式如下图所示,请在变频器完全断电的情况下安装,将通讯卡与变频器控制板接口良好接触。为避免通讯信号受外界干扰,通讯连线建议使用双绞线,尽量避免使用平行线。
如果采用以上配线仍不能正常通讯,可尝试采取以下措施:
①将PLC(或上位机)单独供电或对其电源加以隔离;
②通讯线上使用磁环,若现场条件允许,可适当降低变频器载波频率。
通讯卡
RS485 接口
EH600主控制板