组网方式
变频器提供RS485通信接口,采用国际标准的Modbus通讯协议进行的主从通讯。用户可通过PC/PLC、上位机监控软件等实现集中控制(设定变频器的控制命令、运行频率、相关功能码参数的修改,变频器工作状态及故障信息的监控等),以适应特定的应用要求。
如下图所示,变频器(作为从站)的组网方式有两种:单主机/多从机方式、单主机/单从机方式。
接口方式
RS485接口:异步,半双工。默认:1-8-N-2(1位起始位,8位数据位,无校验,2位停止位),
19200bps,RTU,从地址0x0A。参数设置见Fb组功能码说明。
通讯方式
1)变频器通讯协议为Modbus协议,支持RTU和ASCII协议方式。
2)变频器为从机,主从式点对点通讯。主机使用广播地址发送命令时,从机不应答。
3)在多机通讯或者长距离的情况下,在主站通讯的信号线正端和负端并接(100~120)欧姆的电阻能提高通讯的抗扰性。
4)变频器只提供RS485一种接口,若外接设备的通讯口为RS232时,需要另加RS232/RS485
转换设备。
协议格式
Modbus协议同时支持RTU方式和ASCII方式,对应的帧格式如下图所示。
RTU方式
在RTU方式下,帧之间的空闲时间取功能码设定和Modbus内部约定值中的较大值。Modbus内部约定的最小帧间空闲如下:帧头和帧尾通过总线空闲时间不小于3.5个字节时间来界定帧。数据校验采用CRC-16,整个信息参与校验,校验和的高低字节需要交换后发送。具体的CRC校验请参考协议后面的示例。值得注意的是,帧间保持至少3.5个字符的总线空闲即可,帧之间的总线空闲不需要累加起始和结束空闲。
下面示例用于在RTU方式下读取5号从机的内部寄存器0x0101(F1.01)的参数。
请求帧:
应答帧:
其中,校验码为CRC校验值。
ASCII方式
在ASCII方式下,帧头为“0x3A”,帧尾缺省为“0x0D、0x0A”,帧尾还可由用户配置设定。在
此方式下,除了帧头和帧尾之外,其余的数据字节全部以ASCII码方式发送,先发送高4位位元组,
然后发送低4位位元组。ASCII方式下数据为7位长度。对于“A”~“F”,采用其大写字母的ASCII码。
此时数据采用LRC校验,校验涵盖从从分。校验和等于所有参与校验数据的
字符和(舍弃进位位)的补码。
下面示例用于在ASCII方式写4000(0xFA0)到从机5的内部寄存器0201(F2.01)。
请求帧:
其中,校验码为LRC校验和,其值等于(05+06+02+01+0x0F+0xA0)的补码。
应答帧:
变频器通过功能码可以设置不同的应答延时以适应各种主站的具体应用需要,对于RTU模式实际的应答延时不小于3.5个字符间隔,对于ASCII模式实际的应答延时不小于1ms。
协议应用
Modbus命令码
Modbus最主要的功能是读/写变频器的功能参数,不同的命令码决定不同的操作请求。变频器Modbus协议支持下表中的操作。
变频器功能参数地址映射规则
变频器功能参数的组号映射为modbus寄存器地址的高字节(0~F对应值0x00~0x0F),组内索引(即参数在组内的序号)映射为Modbus寄存器地址的低字节(00~99对应0x00~0x63),当数据只需保存到RAM中(即掉电不保存数据)时,将地址最高位置“1”。例如:通讯修改频率值,可通过修改功能参数F0.05实现。
功能参数“F0.05”(数字设定频率值)对应的寄存器地址为“0x0005”:
1)当数据只保存RAM时,对应的地址为 ”0x8005”。
2)当数据需要保存至EEPROM掉电保存数据)时,对应的地址为 “0x0005”。
备注:
当需要频繁修改设定频率,且不需要掉电保存该参数时,建议采用采用第一种方式,即只保存到RAM中,可以延长EEPROM使用寿命。
获取变频器功能码的参数属性
可通过0x04命令码获取变频器的功能码参数对应的参数属性,属性定义格式如表:
注意:
参数属性包含了4个(或5个)16位数据值,寄存器个数需是4(或5)的整数倍,否则通信反馈非法寄存器值出错。
控制命令、状态信息、故障信息
Modbus主站可通过控制命令对所控制的变频器启动、停止、设定运行频率等操作。通过相应命令检索变频器的状态参数信息(如:运行频率、输出电流、输出转矩等参数),同时可监控所控制变频器的故障信息。(通用参数地址映射规则参考3.5.2),下表特殊控制参数详细说明。
参数管理
Modbus主站可通过相应命令从CPU板子中获取系统参数的组数和组号值,并获取相应组的组内编号。规定通信功能码为0x03”,通信地址定义如表
接线说明
拓扑结构
没有配置中继器RS-485-Modbus有一个与所有设备直接连接(菊花型)或通过短分支电缆连接的干线电缆。
干线电缆,又称总线,可能很长。它的两端必须接线路终端。也可以在多个RS-485Modbus之间使用中继器。且网络中的每个从机地址的地址具有唯一性,这是保证Modbus串行通讯的基础。
长度
必须限制干线电缆的端到端长度。最大长度与波特率、电缆(规格、电容或特性阻抗)、菊花链上的负载数量以及网络配置(2线或4线制)有关。
对于高速波特率为9600bps、AWG26(或更粗)规格的电缆来说,其最大长度为1000m。
分支必须短,不能超过20m。如果使用n个分支的多端口分支器,每个分支最大长度必须限制为40m除以n。
接地形式
必须将“公共端”电路(信号与可选电源的公共端)直接连接到保护地上,最好是整条总线单点接地。通常,该点可选在主站上或其分支器上。
电缆
串行链路上的Modbus电缆必须是屏蔽的。在每条电缆一端,其屏蔽必须连接到保护地上。若在这端使用了连接器,则将连接器外壳连接到电缆屏蔽层上。RS485-Modbus必须使用一对平衡线对和第三根线(用于公共端)。
对RS485-Modbus来说,必须选择足够宽的线缆直径以便允许使用最大长度(1000m)。
AWG24能够满足Modbus数据传输的需要。
通讯异常码定义
当通信过程中检测到相应的出错信息时,下位机(即CPU板)会将功能码的高位置“1”,并反馈相应的出错码(异常码),以便上位机识别当前出错原因,相应定义如表
Modbus通讯举例
在通讯之前首先设置好相关通信功能参数,使上位机和下位机的通讯地址、波特率、数据格式等一致。
例1:
如果需要改变变频器起始设定频率,将50.00Hz改为25.00Hz。
主机发送的数据:
变频器地址 | 写命令 | 参数地址 | 数据内容 | CRC校验 |
01 | 06 | 00 05 | 09 C4 | 9E 08 |
主机接收到的数据:
变频器地址 | 写命令 | 参数地址 | 数据内容 | CRC校验 |
01 | 03 | 00 05 | 09 C4 | 9E 08 |
例2:
如果需要读取变频器F0.00组控制方式。
主机发送的数据:
变频器地址 | 读命令 | 参数地址 | 数据个数 | CRC校验 |
01 | 03 | 00 00 | 00 01 | 84 0A |
主机接收到的数据:
变频器地址 | 读命令 | 参数地址 | 数据内容 | CRC校验 |
01 | 03 | 02 | 00 02 | 39 85 |
例3:
如果输入命令超出功能码参数设定范围,以F0.01(运行命令通道选择)组为例,如果输入命令为4,超出了设定范围0~2,那么会出现错误回应信息。
主机发送的数据:
变频器地址 | 写命令 | 参数地址 | 数据内容 | CRC校验 |
01 | 06 | 00 01 | 00 04 | D9 C9 |
主机接收到的数据:
变频器地址 | 错误回应码 | 错误代码 | 数据内容 | CRC校验 |
01 | 86 | 12 | 00 02 | C2 6D |