资源描述
附录2 RS485通讯协议
EV500系列变频器,提供RS485通讯接口,采用国际上通用的ModBus通讯协议进行主从控制,用户可通过PC/PLC实现集中监控(设定变频器控制命令、运营频率、相关功能码的修改,读取变频器的工作状态),以适应特定的使用规定。
1 协议内容
该串行通讯协议定义了串行通讯中传输的信息内容及使用格式。其中涉及:主机轮询及广播桢、从机响应桢的格式;主机组织的桢内容涉及:从机地址(或广播地址)、执行命令、数据和错误校验等。从机的相应也采用相同的结构,内容涉及:动作确认,返回数据和错误校验等。假如从机接受桢时发生错误,或不能完毕主机规定的动作,它将组织一个故障桢作为响应反馈给主机。
2 应用方式
EV500系列变频器及如具有RS232/RS485总线的“单主多从”控制网络
3 总线结构
(1)接口方式
RS485硬件接口
(2)传输方式
异步串行,半双工传输方式。在同一时刻主机和从机只能有一个发送数据而另一个接受数据。数据在串行异步通信过程中,是以报文的形式,一桢一桢发送。
(3)拓扑结构
单主机多从机传输方式。从机地址的设定范围为0~31,31为广播通信地址。网络中的每个从机的地址具有唯一性。这是保证ModBus串行通讯的基础。
4 协议说明
EV500系列变频器协议是一种异步串行的主从通讯协议,网络中只有一台设备(主机)可以建立协议(称为“查询/命令)。其它设备(从机)只能通过提供数据响应主机的查询/命令,或根据主机的命令/查询做出相应的动作。主机在此处指个人计算机(PC)﹑工控机和可编程控制器(PLC)等,从机指变频器或其他具有相同通讯协议的控制设备。主机既能对某个从机单独通信,又能对所有的从机发布广播信息。对于单独访问的主机查询/命令,从机都要返回一个信息(称为响应);对于主机发出的广播信息,从机无需反馈响应给主机。
5 通讯桢结构
EV500系列变频器的ModBus协议通信数据格式为RTU(远程终端单元)模式。新的数据桢总是以至少3.5字节的传输时间静默,作为开始。在以波特率计算传输速率的网络上,3.5个字节的传输时间可以轻松把握。紧接着传输的数据域依次为:从机地址、操作命令码、数据和CRC校验字,每个域传输字节都是十六进制数据0…9,A…F。即使在静默时间内,网络设备始终监视着通讯总线的活动。当接受到第一个域信息(地址信息),每个网络设备都对该字节进行确认,随着最后一个字节的传输完毕,又有一段3.5字节的传输时间,用来表达本桢的结束,在此以后,将开始一个新桢的传送。
一个桢的信息必须以一个连续的数据流进行传输,假如整个桢传输结束前超过1.5个字节以上的间隔时间,接受设备将清除这些不完整的信息,并错误认为随后一个字节是新一桢的地址域部分,同样的,假如一个新桢的开始与前一个桢的间隔时间小于3.5个字节时间,接受设备将认为它是前一桢的继续,由于桢的错乱,最终CRC校验值不对的,导致通讯故障。
RTU桢的标准结构
桢头
3.5个字节的传输时间的静默
从机地址域ADDR
0~31(31为广播地址0)
执行命令CMD
03H:读从机参数
06H:写从机参数
数据域
DATA(N-1)
…
DATA(0)
2*N个字节的数据,该部分为通讯的重要内容,也是通讯中数据互换的核心
CRC CHK低位
校验码:CRC校验值
CRC CHK高位
桢尾
3.5个字节的传输时间的静默
6 命令码及通讯数据描述
6.1命令码
命令码:03H(0000 0011),读取N个字(Word)(最大可以连续读取5个字);
例如:从机地址为01H的变频器,上位机若想读取P0.04参数值,则该桢的结构描述如下:
RTU主机命令信息
桢头
3.5个字节的传输时间的静默
从机地址域ADDR
01H
执行命令CMD
03H
启始地址高位
F0H
启始地址低位
04H
数据个数高位
00H
数据个数低位
01H
CRC CHK低位
CRC CHK高位
桢尾
3.5个字节的传输时间的静默
RTU从机命令信息
桢头
3.5个字节的传输时间的静默
从机地址域ADDR
01H
执行命令CMD
03H
读取数据的字节数
01
P0.04参数值高位
P0.04参数值低位
CRC CHK低位
CRC CHK高位
桢尾
3.5个字节的传输时间的静默
命令码:06H(0000 0110),向某个参数地址中写一个字。例如:向00从机地址为00H的变频器的P0.03参数写入20.00Hz(实际写入数据2023,相应16进制数据7D0H)。
RTU主机命令信息
桢头
3.5个字节的传输时间的静默
从机地址域ADDR
00H
执行命令CMD
06H
启始地址高位
F0H
启始地址低位
03H
数据个数高位
07H
数据个数低位
D0H
CRC CHK低位
48H
CRC CHK高位
B7H
桢尾
3.5个字节的传输时间的静默
RTU从机命令信息
桢头
3.5个字节的传输时间的静默
从机地址域ADDR
00H
执行命令CMD
06H
启始地址高位
F0H
启始地址低位
03H
数据个数高位
07H
数据个数低位
D0H
CRC CHK低位
48H
CRC CHK高位
B7H
桢尾
3.5个字节的传输时间的静默
启始地址有两种表达方式,如:PX.YZ参数 ,可表达为FX YZ(高位在前,低位在后),也可表达为0X YZ。当操作命令为06时,上位机采用第一种地址表达方式,写入的数据会存入E2PROM中,采用第二种地址表达方式,只改变RAM中的数据,可减少E2PROM的操作次数。
上位机不管是读命令(03)还是写命令(06),都也许发生异常,此时,变频器将会返回错误代码。
RTU从机返回错误信息
桢头
3.5个字节的传输时间的静默
从机地址域ADDR
XX
异常提醒
86H
异常代码高位
00
异常代码低位
0X
CRC CHK低位
XX
CRC CHK高位
XX
桢尾
3.5个字节的传输时间的静默
异常代码意义说明:
01H: 无效命令
02H: 无效地址
03H: 无效数据
04H: CRC错误
05H: 参数无法修改
6.2 通讯桢校验方式
桢的错误校验方式重要涉及两个部分的校验,即字节的位校验(奇/偶校验)和桢的整个数据校验(CRC校验)
6.2.1字节校验
用户可以根据需要选择不同的位校验方式,也可以选择无校验。
奇校验的含义:在数据传输前附加一位奇校验位,用来表达传输的数据中“1”的个数是奇数还是偶数,为奇数时,校验位置为“0”,否则置“1”,用以保持数据的奇偶性不变。
偶校验的含义:在数据传输前附加一位偶校验位,用来表达传输的数据中“1”的个数是奇数还是偶数,为偶数时,校验位置为“0”,否则置“1”,用以保持数据的奇偶性不变。
例如,需要传输“11001110”,数据中具有5个”1”,假如用偶校验,其偶校验位“1”,假如采用奇校验,其奇校验位为“0”,传输数据时,奇偶校验位通过计算放在桢的校验位的位置,接受设备也要进行奇偶校验,假如发现接受的数据奇偶性与预置的不一致,就认为通讯发生了错误。
6.2.2 CRC校验方式---CRC(Cyclical Redundancy Check)
使用RTU格式,桢涉及了基于CRC方法计算的桢错误检测域。CRC域检测了整个桢的内容。CRC域是两个字节,包含16位的二进制。它由传输设备计算后加入到桢中。接受设备重新计算接受到桢的CRC,并与接受到的CRC域中的值比较,假如不相等,则说明传输有错误。
CRC是先存入0XFFFF,然后调用一个过程将桢中字节与当前寄存器中的值进行解决。仅每个字节中8Bit数据对CRC有效,起始位和停止位以及奇偶校验位均无效。
CRC产生过程中,每个8位字节都单独和寄存器内容相异或(XOR),结果向最低有效位方向移动,最高有效位以0填充。LSB被提取出来检测,假如LSB为1,寄存器单独和预置的值相异或,假如LSB为0,则不进行。整个过程要反复8次。在最后一位(第8位)完毕后,下一个8位字节又单独和寄存器内容相异或。最终寄存器中的值,是桢中所有的字节都执行之后的CRC值。
CRC这种计算方法采用国际标准的CRC校验法则,用户在编辑CRC算法时,可以参考相关的CRC标准算法,编写出真正符合规定的CRC计算程序。
现在提供一个CRC计算的简朴函数给用户参考(用C语言编程):
unsigned int crc_cal_value(unsigned char *data_value,unsigned char data_length)
{
int i;
unsigned int crc_value=0xffff;
while(data_length--)
{
crc_value^=*data_value++;
for(i=0;i<8;i++)
{
if(crc_value&0x0001)crc_value=(crc_value>>1)^0xa001;
else crc_value=crc_value>>1;
}
}
Return(crc_value);
}
在阶梯逻辑中,CKSM根据桢内容计算CRC值,采用查表法计算,这种方法程序简朴,运算速度快,但程序所用ROM空间较大,对程序空间有规定的场合,请谨慎使用。
6.4 通讯地址的定义
该部分是通讯数据的地址定义,用于控制变频器的运营、获取变频器的状态信息及变频器相关功能参数设定。
功能参数的地址在前面已有说明,如:PX.YZ参数 ,可表达为FX YZ(高位在前,低位在后),也可表达为0X YZ。当操作命令为06时,上位机采用第一种地址表达方式,写入的数据会存入E2PROM中,采用第二种地址表达方式,只改变RAM中的数据,可减少E2PROM的操作次数。
其他功能的地址说明
功能说明
地址定义
数据意义说明
R/W特性
监控参数
1000H
1001H
.
.
1015H
D-0
D-1
.
.
D-21
R
运营命令
2023H
0000H:停机
0001H:正转运营
0002H:反转运营
0003H:正转点动
0004H:反转点动
0005H:故障复位
W
运营状态
3000H
0001H:正转运营
0002H:反转运营
0003H:待机
0004H:故障中
R
频率给定
4000H
W
变频器故障
5000H
返回故障编号(参见第六章)
R
7. 范例
1)读00号变频器当前的运营频率和输出电流,此时变频器输出频率为21.85Hz,输出电流为0A,上位机发送指令:
00 03 10 00 00 02 C1 1A
变频器返回:
00 03 00 04 08 89 00 00 51 41
2)把00号变频器P0.03参数值改为10.00Hz,上位机发送信息:
00 06 F0 03 07 D0 48 B7
变频器返回
00 06 F0 03 07 D0 48 B7
3)广播变频器正转运营指令,上位机发送信息:
1F 06 20 00 00 01 40 74
广播修改数字设定(P0.03)
1F 06 F0 03 03 E8 49 CA
4) 当变频器,发生故障,上位机发送复位信号:
00 06 20 00 00 05 43 D8
展开阅读全文