485通信协议
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ASCII格式:主机命令信息
帧头START
“:”
ADR
“0” “1”
CMD
“0” “3”
启始地址高位
“0” “0”
启始地址低位
“0” “4”
数据个数高位
“0” “0”
数据个数低位
“0” “2”
LRC CHK Hi
“F”
LRC CHK Lo
“6”
END Hi
CR(0x0D)
END Lo
LF(0x0A)
注意:
有些参数在变频器处于运行状态时,不可更改;有些参数不论变频器处于何种状态,均不可
更改;更改功能码参数,还要注意参数的范围,单位,及相关说明。
另外,由于EEPROM频繁被存储,会减少EEPROM的使用寿命,所以,有些功能码在通讯的模式
下,无须存储,只要更改RAM中的值就可以了。要实现该功能,只要把该功能码地址的高位F
Bit0~1
01B:停机 10B:启动
11B:点动运行
00B:无功能
2000H
Bit2~3
01B:故障复位 10B:自由停机
对变频器的操作指令
11B:点动停机
00B:无功能
Bit4~5
01B:正方向 10B:反方向
11B:换向指令
Bit6~15 保留
2001H
设定频率
2002H
保留
变频器状态监测
2100H
unsigned int crc_value=0xFFFF; int i; while(length--) {
crc_value^=*data_value++; for(i=0;i<8;i++) {
if(crc_value&0x0001) {
crc_value=(crc_value>>1)^0xa001; } else {
(3) 拓扑结构 单主机多从机系统。从机地址的设定范围为1~247,0为广播通信地址。网络中的从机地址必 须是唯一的。
4.协议说明 本系列变频器通信协议是一种异步串行的主从ModBus通信协议,网络中只有一个设备(主机) 能够建立协议(称为“查询/命令”)。其他设备(从机)只能通过提供数据响应主机的“查 询/命令”,或根据主机的“查询/命令”做出相应的动作。主机在此是指个人计算机(PC), 工业控制设备或可编程逻辑控制器(PLC)等,从机是指本系列变频器。主机既能对某个从 机单独进行通信,也能对所有下位从机发布广播信息。对于单独访问的主机“查询/命令”, 从机都要返回一个信息(称为响应),对于主机发出的广播信息,从机无需反馈响应给主机。
数据内容DATA0
LRC CHK Hi LRC CHK Lo
LRC检测值: 8-bit 检测码由2个ASCII码组成。
END Hi
CR(0x0D)
END Lo
LF(0x0A)
6.命令码和通讯数据描述 命令码:03H,读取N个字(Word)(最多可以读取20个字) 例如:从机地址为01的变频器的启始地址0004连续读取连续2个值,该帧的结构描述如下:
变成0就可以实现。相应功能码地址表示如下:
高位字节:00~0F
低位字节:00~FF
如:功能码F3.12不存储到EEPROM中,地址表示为030C;
该地址表示只能做写RAM,读时,为初始数据。
定义
参数地址
功能说明
对参数进行读写操作 FXXXH或者0XXXH FX或者0X表示区号, XX表示区内码
00B:无功能
2.应用方式 变频器接入具备RS232/RS485总线的“单主多从”PC/PLC控制网络。
3.总线结构 (1) 接口方式
RS232/RS485硬件接口 (2) 传输方式
异步串行,半双工传输方式。在同一时刻主机和从机只能有一个发送数据而另一个只能接 收数据。数据在串行异步通信过程中,是以报文的形式,一帧一帧发送。
ASCII码表
字符 “0” “1” “2” “3” “4” “5” “6” “7” “8” “9”
ASCII 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39
字符 “A” “B” “C” “D” “E” “F”
ASCII 0x41 0x42 0x43 0x44 0x45 0x46
crc_value=crc_value>>1; } } } return(crc_value); }
LCR校验方式:由地址到数据结果加起来的值.如下例所示: 0x02+0x06+0x00+0x08+0x13+0x88=0xAB,取补后为0x55 通信参数的地址定义 该部分是通信的内容,用于控制变频器的运行,变频器状态及相关参数设定。 读写功能码参数(有些功能码是不能更改的,只供厂家使用): 功能码参数地址标示规则: 以功能码组号和标号为参数地址表示规则: 高位字节:F0~FF 低位字节:00~FF 如:F3.12,地址表示为F30C;
“5”
LRC CHK Lo
“5”
END Hi
CR(0x0D)
END Lo
LF(0x0A)
校验方式——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 crc_chk_value(unsigned char *data_value,unsigned char length) {
ADR
02H
CMD 启始地址高位 启始地址低位 数据个数高位 数据个数低位 CRC CHK Lo CRC CHK Hi END
帧头START
06H 00H 08H 13H 88H 05H 6DH 3.5个字符时间
从机回应信息 3.5个字符时间
ADR
02H
CMD
06H
启始地址高位
00H
启始地址低位
08H
检测值: CRC值。 3.5个字符时间
在 ASCII 模式中,帧头为“:”(0x3A),帧尾为 0x0D, 0x0A.其余数据皆为 ASCII 码数据进行
发送.先发送高 4 位位元组,然后发送低位位元组.数据采用 LRC 校验, 校验和等于所有参与 校验数据的字符和的补码.
ASCII 帧格式:
帧头START
数据个数高位
13H
数据个数低位
88H
CRC CHK Lo
05H
CRC CHK Hi
6DH
END
3.5个字符时间
ASCII格式:主机命令信息
帧头START
“:”
ADR
“0” “2”
CMD
“0” “6”
被写数据地址高位
“0” “0”
被写数据地址低位
“0” “8”
数据内容高位
“1” “3”
数据内容低位
“8” “8”
故障信息
2101H
变频器状态
2102H
频率设定(小数 2 位)
2103H
输出频率(小数 2 位)
2104H
输出电流(小数 1 位)
2105H
母线电压
2106H
2107H
在使用 RTU 模式,消息发送至少要以 3.5 个字符时间的停顿间隔开始。在网络波特率下多样
的字符时间,这是最容易实现的(如下图的 T1-T2-T3-T4 所示)。传输的第一个域是设备地址。
可以使用的传输字符是十六进制的 0...9,A...F。网络设备不断侦测网络总线,包括停顿间
隔时间内。当第一个域(地址域)接收到,每个设备都进行解码以判断是否发往自己的。在
串行通讯协议 附件说明:本文件与我公司说明书一起配送给用户。
在本系列变频器中,提供RS232/RS485通信接口,用户可通过PC/PLC实现集中控制(设 定变频器运行命令,功能码参数,读取变频器的工作状态及故障信息),以适应特定的使用 要求。 1.协议内容
该串行通信协议定义了串行通信中传输的信息内容及使用格式。其中包括:主机轮询(或 广播)格式;主机的编码方法,内容包括:要求动作的功能码,传输数据和错误校验等。从 机的响应也是采用相同的结构,内容包括:动作确认,返回数据和错误校验等。如果从机在 接收信息时发生错误,或不能完成主机要求的动作,她将组织一个故障信息作为响应反馈给 主机。
从机回应信息
RTU格式:主机命令信息 帧头START ADR CMD 启始地址高位 启始地址低位 数据个数高位 数据个数低位 CRC CHK Lo CRC CHK Hi END
3.5个字符时间 01H 03H 00H 04H 00H 02H 85H CA H 3.5个字符时间
帧头START ADR CMD 字节个数 数据地址0004高位 数据地址0004低位 数据地址0005高位 数据地址0005低位 CRC CHK Lo CRC CHK Hi END
LRC CHK Hi
“5”
LRC CHK Lo
“5”
END Hi
CR(0x0D)
END Lo
LF(0x0A)
从机回应信息
Biblioteka Baidu
帧头START
“:”
ADR
“0” “2”
CMD
“0” “6”
被写数据地址高位
“0” “0”
被写数据地址低位
“0” “8”
数据内容高位
“1” “3”
数据内容低位
“8” “8”
LRC CHK Hi
从机回应信息 3.5个字符时间 01H 03H 04H 00H 00H 00H 00H 43H 07H 3.5个字符时间
命令码:06H,写1个字(Word)
例如:将5000(1388H)写到从机地址02H变频器的0008H地址处,该帧的结构描述如下:
RTU格式:主机命令信息
帧头START
3.5个字符时间
“:”(0x3A)
从机地址 ADR Hi
通讯地址:8-bit 地址有2个ASCII码组成
从机地址 ADR Lo
命令码CMD Hi
命令码: 8-bit 命令码有2个ASCII码组成
命令码CMD Lo
数据内容DATA(N-1) 资料内容:
数据内容DATA(N-2) ……
N*8-bit 数据内容有2n个ASCII码组成. N<=25,最多有50个ASCII码。
为它是前一消息的延续。这将导致一个错误,因为在最后的 CRC 域的值不可能是正确的。
RTU帧格式:
帧头START
3.5个字符时间
从机地址ADR 命令码CMD 数据内容DATA(N-1) 数据内容DATA(N-2) …… 数据内容DATA0 CRC CHK低位 CRC CHK高位 END
通讯地址:1~247 (0为广播地址) 03:读从机参数;06:写从机参数 资料内容: 功能码参数地址,功能码参数个数,功能码参数值等。
最后一个传输字符之后,一个至少 3.5 个字符时间的停顿标定了消息的结束。一个新的消息
可在此停顿后开始。整个消息帧必须作为一连续的流转输。如果在帧完成之前有超过 1.5
个字符时间的停顿时间,接收设备将刷新不完整的消息并假定下一字节是一个新消息的地址
域。同样地,如果一个新消息在小于 3.5 个字符时间内接着前个消息开始,接收的设备将认
帧头START ADR
CMD
字节个数
数据地址0004高位
数据地址0004低位
数据地址0005高位
数据地址0005低位 LRC CHK Hi LRC CHK Lo END Hi END Lo
“:” “0” “1” “0” “3” “0” “4” “0” “0” “0” “0” “0” “0” “0” “0” “F” “6” CR(0x0D) LF(0x0A)
5.通讯帧结构 本系列变频器的ModBus协议通信数据格式有两种,分别为RTU(远程终端模式)模式和
ASCII(American Standard Code for Information International Interchange)模式: 在RTU模式中,每个字节格式如下: 8位二进制,组成16进制0-9\A-F. 每个8位帧中,包含2个16进制字符. 在ASCII模式中:每个字节格式如下: 一个8位帧中,表示一个ASCII字符. 具体定义如下表所示: