Modbus+RTU+标准通讯协议格式.pdf

Modbus+RTU+标准通讯协议格式.pdf

ID:57013734

大小:145.94 KB

页数:16页

时间:2020-07-30

上传者:简单2019
Modbus+RTU+标准通讯协议格式.pdf_第1页
Modbus+RTU+标准通讯协议格式.pdf_第2页
Modbus+RTU+标准通讯协议格式.pdf_第3页
Modbus+RTU+标准通讯协议格式.pdf_第4页
Modbus+RTU+标准通讯协议格式.pdf_第5页
资源描述:

《Modbus+RTU+标准通讯协议格式.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

HLP_SVModbusRTU标准通讯协议格式通信资料格式AddressFunctionDataCRCcheck8bits8bitsN×8bits16bits1)Address通讯地址:1-2472)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)0HEX4000HEPar.300设为11:―max—+max反转正转Par.303Par.3030频率最大值频率最大值0%100%0HEX4000HEXPar.300设为0正转0:min—+maxPar.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)ORFF00(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设置值为10F写多个线圈状态上位机发送数据格式ADDRESS0FADDRHADDRLNUMHNUMLCOUNTDATAH1DATAL1DATA2HDATA2L-------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%Speed40%of4000HEX=199AHEX10写多个保持寄存器(只能写单个参数的值)上位机发送数据格式ADDRESS0x10ADDRHADDRLNUMHNUMLBYTECOUNTDATAH1DATAL1DATA2HDATA2L-------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变频器状态字R49-64变频器输出频率R0–参数写入RAM:1-参数写入RAM65参数写控制R,W和EEPROM66-65536保留4)DATA:资料内容n×8-bit资料5)CRC:侦误值附表:变频器控制字:位位=0位=100预置最小参考值01预置最大参考值02直流制动03惯性停机04快停05冻结输出频率06加减速停车起动07复位 08点动09加减速1加减速210数据无效数据有效11无功能12无功能13选择最小安装14选择最大安装15反转变频器状态字:位位=0位=100控制准备完毕01驱动准备完毕02惯性停机03错误04无用05无用06无用07无警告警告08速度!=参考值速度=参考值09本地控制串行通信10频率范围溢出频率限制正常11电机正常运行1213电压警告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)来结束。STXLGEADRDATABCC1)资料长度资料长度是数据字节的数目和地址字节(ADDR)加数据字节(DATA)再加BCC字节的总和。4个数据字节的资料长度为:LGE=4+1+1=612个数据字节的资料长度为:LGE=12+1+1=14包含文本的资料长度为:10+n字节。其中,10代表固定字节,n是随着文本的长度而变化的。2)变频器地址(ADDR):1-2473)数据控制字节(BCC)将前面所有的数据进行异或运算。4)数据字节数据字节的资料格式有三种类型:PKEINDPWEhighPWElowPCD1PCD2参数块过程块过程块由4个字节(2个字)的数据块组成,包括:控制字和参考值状态字和当前输出频率(从从机到主机)PCD1PCD2过程块文本块,用于通过数据块读写文本。PKEINDCh1Ch2…ChnPCD1PCD2文本块过程块 参数命令与应答(AK)PKEINDPWEhighPWElow12-15位用于传送主机到从机的参数命令和从机答复主机的应答。参数命令主——从AKPNU位号:151413121514111098765432101312参数命令0000无命令参数命00不01读参数值令与应参数号码00用10在RAM中写参数值(字类型)答0011在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=0136HIND=0001H----索引号10136H0001HPKEINDPWE变频器将在参数块(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位=100预置最小参考值01预置最大参考值02直流制动03惯性停机04快停05冻结输出频率06加减速停车起动07复位08点动09加减速1加减速210数据无效数据有效11无功能12无功能13选择最小安装14选择最大安装15反转位00/01位00/01用于在四种预置的参考值(参数310)中根据下表作出选择:预置参数位位2参考11310[0]002310[1]013310[2]104310[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位=100控制准备完毕01驱动准备完毕02惯性停机03错误04无用05无用06无用07无警告警告08速度!=参考值速度=参考值09本地控制串行通信10频率范围溢出频率限制正常11电机正常运行1213电压警告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%100%示例:控制字与串行通信参考值(C000HEX)0HEX4000HE参考值设置为参考值范围的50%(2000H)(Par.300=0)Par.300设为11:―max—+max反转正转例子:Par.303Par.3030例1:读参数值频率最大值频率最大值发送:020E01112F0000000000000474000043(十六进制)接收:020E01212F00000000C35000030000930%(十六进制)100%0HEX4000HEXPar.300设为0正转0:min—+max 0E长度为141为参数命令Par.303(12FHex)=500000003变频器状态字例2:读带数组的参数值发送:020E0111360002000000000474000058(十六进制)接收:020E011136000200000000000300002B(十六进制)0002为IndexPar.310[2](136Hex)=0例3:发运行命令发送:020E010000000000000000047C2000CRC(十六进制)接收:020E0100000000000000000D072000CRC(十六进制)控制字:047C参考值:50%(2000Hex)例4:在RAM和EEPROM中写参数值(双字类型)发送:020E01E58E0000000000020474000014(十六进制)接收:020E01158E0000000000020003000097(十六进制)E为参数命令写Par.1422(58EHex)=2例5:读文本发送:020E01F60A0000000000000474000083(十六进制)接收:021201F60A00003133324630303032000300009A(十六进制)F为参数命令写Par.1546(60AHex)=132F0002

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭