Modbus+RTU+标准通讯协议格式.docx
- 文档编号:26709931
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:29
- 大小:179.27KB
Modbus+RTU+标准通讯协议格式.docx
《Modbus+RTU+标准通讯协议格式.docx》由会员分享,可在线阅读,更多相关《Modbus+RTU+标准通讯协议格式.docx(29页珍藏版)》请在冰豆网上搜索。
Modbus+RTU+标准通讯协议格式
HLP_SVModbusRTU标准通讯协议格式
通信资料格式
AddressFunctionDataCRCcheck
8bits8bitsN×8bits16bits
1)Address通讯地址:
1-247
2)Function:
命令码8-bit命令
01读线圈状态
上位机发送数据格式:
ADDRESS01ADDRHADDRLNUMHNUMLCRC
注:
ADDR:
00000---FFFF(ADDR=线圈地址-1);NUM:
0010-----0040(NUM为
要读线圈状态值的二进制数位数)
正确时变频器返回数据格式:
ADDRESS01BYTECOUNTDATA1DATA2DATA3DATANCRC
注:
BYTECOUNT:
读取的字数
错误时变频器返回数据格式:
ADDRESS0X81ErrornumCRC
注:
Errornum为错误类型代码
如:
要检测变频器的输出频率
应发送数据:
0101003000103DC9(16进制)
变频器返回数据:
0101020020B824(16进制)
发送数据:
0030hex(线圈地址49)
返回的数据位为“0020”(16进制),高位与低位互换,为2000。
即输出频率为
303(MaxRef)的50%。
关于2000对应50%,具体见图1。
-100%0%100%
(C000HEX)0HEX4000HE
Par.300设为1
1:
―max—+max反转正转
Par.303
频率最大值
0
Par.303
频率最大值
0%100%
0HEX4000HEX
Par.300设为0
0:
min—+max
正转
Par.302Par.303
频率最小值频率最大值
图1
03读保持寄存器
上位机发送数据格式:
ADDRESS03ADDRHADDRLNUMHNUMLCRC
注:
ADDR:
0---0XFFFF;NUM:
0010-----0040(NUM为要读取数据的字数)
ADDR=ParameterNumber×10-1
正确时变频器返回数据格式:
ADDRESS03BYTECOUNTDATA1DATA2DATA3DATANCRC
注:
BYTECOUNT:
读取的字节数
错误时变频器返回数据格式:
ADDRESS0X83ErrornumCRC
如:
要读变频器参数303的设定值
应发送数据:
01030BD5000295BC(16进制)
Parameter303(3029)=0BD5HEX
变频器返回数据:
“:
”0103040000EA60B57B
返回的数据位为“0000EA60”(16进制)转换为10进制数为60000,
表示303设置值为60.000
※当参数值为双字时,NUM的值必须等于2。
否则无法读取或读取错误。
05写单个线圈状态
上位机发送数据格式:
ADDRESS05ADDRHADDRLDATAHDATALCRC
注:
ADDR:
0----0XFFFF(ADDR=线圈地址-1);DATA=0000HEX(OFF)OR
FF00(ON)HEX
正确时变频器返回数据格式:
ADDRESS05DATAHDATALBYTECOUNTCRC
错误时变频器返回数据格式:
ADDRESS0X85ErrornumCRC
如:
要使写参数为写入RAM和EEPROM
应发送数据:
01050040FF00CRC(16进制)
变频器返回数据:
0105FF000001CRC(16进制)
发送数据:
0040hex(线圈地址65)
06写单个保持寄存器值(只能写参数值为单个字的参数)
上位机发送数据格式:
ADDRESS06ADDRHADDRLDATAHDATALCRC
注:
ADDR:
ADDR=ParameterNumber×10-1
正确时变频器返回数据格式:
ADDRESS06ADDRHADDRLDATAHDATALCRC
错误时变频器返回数据:
ADDRESS0X86ErrornumCRC
如:
要对变频器参数101写入1
应发送数据:
01060003F1000119BD(16进制)
变频器返回数据:
010603F1000119BD(16进制)
PARAMETER101(1009)=03F1HEX
返回的数据位为“0001”(16进制)转换为10进制为“1”表示101设置值为1
0F写多个线圈状态
上位机发送数据格式
ADDRESS0FADDRHADDRLNUMHNUMLCOUNTDATAH1
DATAL1DATA2HDATA2L-------DATANHDATANLCRC
注:
ADDR:
0--------0XFFFF(ADDR=线圈地址-1);NUM:
0010-----0040(NUM为
要写值的二进制数的位数);COUNT:
NUM/8
正确时变频器返回数据格式:
ADDRESS0FADDRHADDRLNUMHNUMLCRC
错误时变频器返回数据格式:
ADDRESS0X8FErrornumCRC
如:
变频器运行,频率是参数303的40%
应发送数据:
010F00000020047C049A193743
(16进制)
变频器返回数据:
010F000000205413(16进制)
运行命令:
0000010001111100=047CHEX
速度命令:
4000HEX=100%Speed
40%of4000HEX=199AHEX
10写多个保持寄存器(只能写单个参数的值)
上位机发送数据格式
ADDRESS0x10ADDRHADDRLNUMHNUMLBYTECOUNT
DATAH1DATAL1DATA2HDATA2L-------DATANHDATANLCRC
注:
ADDR:
0------0XFFFF:
ADDR=ParameterNumber×10-1;NUM:
0-2(NUM
为要写的字的字数)
COUNT=NUM*2
正确时变频器返回数据格式
ADDRESS0x10ADDRHADDRLNUMHNUMLCRC
错误时变频器返回数据格式:
ADDRESS0X90ErrornumCRC
如要同时对参数303写入60.000(Parameter303(3029)=0BCBHEX)
应发送数据:
01100BCB0002040000EA608234(16进制)
变频器返回数据:
01100BCB00023212(16进制)
发送的要写入16进制数据“0000EA60”转换为10进制数为60000表示对参数303
写入的数据分别为60.000
※注意:
NUM的值必须写对,否则返回的数据可能出错
通信错误代码(Errornum)说明:
00参数号码不存在
01不能写入已定义的参数
02参数的值超出该参数的上限
03子索引不存在
04该参数不是数组类型
05数据类型与已定义参数的数据类型不同
06仅用于复位
07不可改变
11不许写
17在变频器当前模式下不能更改已定义参数的数据
某些参数只能在电机关闭时才能更改
18其它错误
64无效的数据地址
65无效的长度
66无效的数据长度和值
67无效的参数
130已定义参数没有总线连接
131出厂设定值已被选定数据,不能更改
功能码说明
线圈功能码说明
线圈地址名称R/W说明
1-16变频器控制字R,W见附表
17-32变频器转速或设定频率R,W见附表
33-48变频器状态字R
49-64变频器输出频率R
65参数写控制R,W
0–参数写入RAM:
1-参数写入RAM
和EEPROM
66-65536保留
4)DATA:
资料内容n×8-bit资料
5)CRC:
侦误值
附表:
变频器控制字:
位位=0位=1
00预置最小参考值
01预置最大参考值
02直流制动
03惯性停机
04快停
05冻结输出频率
06加减速停车起动
07复位
08点动
09加减速1加减速2
10数据无效数据有效
11无功能
12无功能
13选择最小安装
14选择最大安装
15反转
变频器状态字:
位位=0位=1
00控制准备完毕
01驱动准备完毕
02惯性停机
03错误
04无用
05无用
06无用
07无警告警告
08速度!
=参考值速度=参考值
09本地控制串行通信
10频率范围溢出频率限制正常
11电机正常运行
12
13电压警告
14电流限定
15热警告
读数组参数310[2](index=2)
发送:
010600080002CRC
“0002”Index的值
接收:
010600080002CRC
发送:
01030C1B0001CRC
接收:
0103020000CRC
写数组参数310[2](index=2)
发送:
010600080002CRC
“0002”Index的值
接收:
010600080002CRC
发送:
01100C1B0001020000CRC
接收:
01100C1B0001CRC
读写带数组的数必须先发01060008Index(High)Index(Low)CRC,再按读,写数据的格式
发送数据
HLP_SVFC_MODBUS通讯协议格式
通信资料格式
由一个起始字节(STX)开始,这个起始字节为STX=02(十六进制)。
随后
紧跟资料的长度(LGE)的字节和表示变频器地址的字节(ADR)。
然后是一些
数据字节。
最后由一个数据控制字节(BCC)来结束。
STXLGEADRDATABCC
1)资料长度
资料长度是数据字节的数目和地址字节(ADDR)加数据字节(DATA)再加BCC
字节的总和。
4个数据字节的资料长度为:
LGE=4+1+1=6
12个数据字节的资料长度为:
LGE=12+1+1=14
包含文本的资料长度为:
10+n字节。
其中,10代表固定字节,n是随着文本
的长度而变化的。
2)变频器地址(ADDR):
1-247
3)数据控制字节(BCC)
将前面所有的数据进行异或运算。
4)数据字节
数据字节的资料格式有三种类型:
PKEINDPWEhighPWElowPCD1PCD2
参数块过程块
过程块由4个字节(2个字)的数据块组成,包括:
控制字和参考值
状态字和当前输出频率(从从机到主机)
PCD1PCD2
过程块
文本块,用于通过数据块读写文本。
PKEINDCh1Ch2…ChnPCD1PCD2
文本块过程块
参数命令与应答(AK)
PKEINDPWEhighPWElow
12-15位用于传送主机到从机的参数命令和从机答复主机的应答。
参数命令主——从
AKPNU
1514131211109876543210
参数命
令与应
答
不
用
00无命令
0值
参数号码
10在RAM中写参数值(字类型)
11在RAM中写参数值(双字类型)
1101在RAM和EEPROM中写参数值(双字类型)
1110在RAM和EEPROM中写参数值(字类型)
1111读/写文本
应答从——主
位号:
15141312应答命令
0000无应答
0001参数值已传送(字类型)
0010参数值已传送(双字类型)
0111命令不能执行
1111文本已传送
如果命令不能被执行,则从机发送应答:
0111‘命令不能执行’并且在参数值(PWE)
中给定以下的错误报告。
应答错误报告
00参数号码不存在
01不能写入已定义的参数
02参数的值超出该参数的上限
03子索引不存在
04该参数不是数组类型
05数据类型与已定义参数的数据类型不同
06仅用于复位
07不可改变
11不许写
17在变频器当前模式下不能更改已定义参数的数据
某些参数只能在电机关闭时才能更改
18其它错误
64无效的数据地址
65无效的长度
66无效的数据长度和值
67无效的参数
130已定义参数没有总线连接
131出厂设定值已被选定数据,不能更改
索引
PKEINDPWEhighPWElow
索引与参数号码一起使用用于读/写有索引的参数。
例如:
参数310,索引由2
个字节组成一个低字节,一个高字节。
但是仅低字节被作为一个索引。
索引示例:
读参数310(索引[1])
PKE=0136H
IND=0001H----索引号1
0136H0001H
PKEINDPWE
变频器将在参数块(PWE)中对应的给出一个值。
索引字节用于表明它是一个读命令还是写命令,在读命令中索引必须具有以下形
式:
04H00H
高字节低字节
IND
一些变频器有一些参数以确保能写文本。
为了能够通过PWE块写文本,参数命令(应
答)必须设置为‘F’(十六进制H)。
为了表示一个写命令,文本必须具有以下形式:
05H00H
高字节低字节
IND
变频器支持的数据类型
数据类型描述
316位整型
432位整型
58位无符号
616位无符号
732位无符号
9文本串
无符号意味着没有操作符号。
变换
由于一个参数值仅能作为一个完整的整数传递,所以必须有一个变换因子用于转
换其为十进制。
示例
参数412电机频率下限有一个转换因子0.1,如果你希望重新设定其值为
10Hz,参数值100必须被传送,这是由于转换因子0.1意味着传递的参数要乘以0.1,
这样100就成
了10.0。
过程字
过程字块分为两个16位的块,常常出现在已定义的事例中。
控制字用于从主机(PC)传送命令到从机(变频器)
变频器控制字:
位位=0位=1
00预置最小参考值
01预置最大参考值
02直流制动
03惯性停机
04快停
05冻结输出频率
06加减速停车起动
07复位
08点动
09加减速1加减速2
10数据无效数据有效
11无功能
12无功能
13选择最小安装
14选择最大安装
15反转
位00/01
位00/01用于在四种预置的参考值(参数310)中根据下表作出选择:
预置参数位位2
参考1
1310[0]00
2310[1]01
3310[2]10
4310[3]11
位02直流制动
位02=‘0‘生直流制动和停车。
制动电流持续时间在参数201直流制动电流和参
数202直流制动时间中预置。
位03慢性停机
位03=‘0’,使变频器迅速地让马达慢性空转(输出传感器关闭),这样它惯性地
慢慢停下来。
位03=‘1’,使变频器能够在其他启动条件满足的情况下启动马达。
注意:
在参
数850中选择一种用来定义位03如何控制输入位的对应功能。
位04快停
位04=‘0‘使产生停车,马达速度通过参数381快停减速时间快速的停止。
位05冻结输出频率
位05=‘0’是当前的输出频率被冻结。
冻结输出频率只能通过用于控制加速和减
速的输入位来改变。
注意:
如果冻结输出频率有效,变频器不能通过位06起动或者输入位来停止。
变频
器只能通过以下方式停止:
š位03慢性停机。
š位02直流制动。
š用于直流制动,慢性停车或者重新起动以及慢性停车的输入位。
位06加减速停车/起动:
位06=‘0’使变频器可以在其他起动条件满足的情况下起动马达。
注意:
在参数
853起动中选择一种来定义06加减速停车/起动如何控制输入位的对应功能。
位07复位
位07=‘0’不复位。
位07=‘1’断开后复位,复位在信号的跳动边缘有效。
例如,当从逻辑‘0’变成
逻辑‘1’时。
位08点动
位08=‘1’使输出频率由参数319点动频率来决定。
位09
位09=‘0’,意味着加减速1有效(参数340到347)
位09=‘1’,意味着加减速2有效(参数350到357)
位10数据无效/数据有效:
用于告诉变频器控制字是否有用或还是忽略掉。
位10=‘0’使控制字被忽略掉。
位10=‘0’使控制字有用。
这个功能是相应的,
因为控制字常常包含在资料中,无论是什么样的资料类型。
例如,如果你不希望在升
级或读参数的过程中使用它的话,你可以把控制字关掉。
位11无功能
位11没有任何功能
位12无功能
位12没有任何功能
位13/14菜单选择:
位13和14用于从下表所示的四种菜单中选择其中一种。
这种功能只有在参数010有效菜单中的多菜单方式被选择时才有效。
注意:
在参数855菜单选择中选择一种来定义位13/14如何控制输入为的对应功能。
位15
位15=‘0’使反转无效。
位15=‘1’使之有效。
注意:
在出厂设置值中,反转设置在参数854反转中位15只有当前串行通信,逻辑
或或逻辑与被选择后才产生反转。
状态字用于通知主机(例如PC)从机(变频器)的模式。
变频器状态字:
位位=0位=1
00控制准备完毕
01驱动准备完毕
02惯性停机
03错误
04无用
05无用
06无用
07无警告警告
08速度!
=参考值速度=参考值
09本地控制串行通信
10频率范围溢出频率限制正常
11电机正常运行
12
13电压警告
14电流限定
15热警告
位00控制准备完毕
位00=‘1’变频器准备完毕
位00=‘0’变频器没有准备好运行
位01驱动准备完毕
位01=‘1‘变频器准备好运行。
但是有一个通过数据输入式串行通信使之有效的
惯性命令。
位02慢性停机
位02=‘0’,变频器释放电机。
位02=‘1’,变频器当给出一个起动命令时能起动电机。
位03不断开/断开
位03=‘0‘意味着变频器不是在错误模式。
位03=‘1‘意味着变频器断开,并且需要一个重新起动信号来重新运行。
位04,无用
位04在状态字中没有用到。
位05,无用
位05在状态字中没有用到。
位06,无用
位06在状态字中没有用到。
位07无警告/警告
位07=‘0’意味着无警告。
位07=‘1’意味着有警告发生。
位08速度!
=参考值/速度=参考值
位08=‘0’意味着电机正在运转,但是当前的速度与预设参考速度不同。
还有可
能,例如,是由于速度在起动/停止时加减速的结果。
位08=‘1’意味着电机当前的速度与预设参考速度相同。
位09本地操作/串行通信控制:
位09=‘0’,意味着[停车/重起]在控制单元被激活,或者在参数313本地/远程操作
被选择。
这种方式不可能通过串行通信控制变频器。
位09=‘1’,意味着可以通过串行通信控制变频器。
位10频率范围溢出
位10=‘0’意味着输出频率到达了参数411输出频率下限中所设定的下限值或参
数413输出频率上限所设定的上限值。
位10=‘1’意味着输出频率在定义限制范围内。
位11运行/不运行
位11=‘0’意味着电机正在运转。
位11=‘1’意味着变频器有一个起动信号或输出频率大于0Hz。
位13电压警告低/高
位13=‘0’意味着无电压警告。
位13=‘1’意味着变频器的直流电压过低或者太高。
位14电流限定:
位14=‘0’意味着输出电流比参数418电流限定的值要低。
位14=‘1’意味着输出电流比参数418电流限定的值要高,并且变频器在一段
时间后将断开。
位15热警告:
位15=‘0’意味无热警告。
位15=‘1’意味着电压或变频器或与输入位相连的中热调节器的温度限定被超出。
串行通信参考值
-100%0%
示例:
控制字与串
(C000HEX)0HEX
参考值设置的50%(300=0)
100%
4000HE
Par.300设为1
1:
―max—+max反转正转
例子:
例1:
读参数
Par.303
频率最大值
0
Par.303
频率最大值
发送:
020E01112F0000000000000474000043(十六进制)
接收:
020E01212F00000000C350000%3(十100%
0HEX4000HEX
Par.300设为0
0:
min—+max
正转
0E长度为14
1为参数命令
Par.303(12FHex)=50000
0003变频器状态字
例2:
读带数组的参数值
发送:
020E0111360002000000000474000058(十六进制)
接收:
020E011136000200000000000300002B(十六进制)
0002为Index
Par.310[2](136Hex)=0
例3:
发运行命令
发送:
020E010000000000000000047C2000CRC(十六进制)
接收:
020E01
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Modbus RTU 标准 通讯 协议 格式