modbus-RTU常见问题课件.ppt

modbus-RTU常见问题课件.ppt

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

modbusRTU常见问题汇总;;;3、modbus、rtu、modbusrtu分别是什么?

modbus协议是工控行业的标准协议,前身为莫迪康所写,现已被施奈德收购

而modbus分为两种协议:即串口协议(modbusrtu)和网口协议(modbustcp)协议,一般的工控机只支持rs232或者RS485的串口模式,这个时候工控机的协议栈里就只有modbusRTU协议,当他从串口接收到数据时,会直接根据报文中的数据进行控制,如果需要用modbusTCP协议进行传输,则需要使用带有网口的PLC

具体的帧格式如下

modbusRTU地址域功能码数据差错校验

modbusTCP目的地址协议id长度单元号功能码数据

简单的说tcp是由RTU加工而来的

而RTU则是另外一种概念,不包含在modbus协议内

是工控行业对监控设备的简称。;;;;11、MODBUSRTU协议中浮点数是如何存储,读到浮点数寄存器的数值如何转换成所需的浮点数?

浮点数保存的字节格式如下:

地址+0+1+2+3

内容SEEEEEEEEMMMMMMMMMMMMMMMMMMMMMMM

这里

S代表符号位,1是负,0是正

E偏移127的幂,二进制阶码=(EEEEEEEE)-127。

M24位的尾数保存在23位中,只存储23位,最高位固定为1。此方法用最较少的位数实现了较高的有效位数,提高了精度。零是一个特定值,幂是0尾数也是0。

浮点数-12.5作为一个十六进制数0xC1480000保存在存储区中,这个值如下:

地址+0+1+2+3

内容0xC10x480x000x00

浮点数和十六进制等效保存值之间的转换相当简单。下面的例子说明上面的值-12.5如何转换。浮点保存值不是一个直接的格式,要转换为一个浮点数,位必须按上面的浮点数保存格式表

所列的那样分开,例如:

地址+0+1+2+3

格式SEEEEEEEEMMMMMMMMMMMMMMMMMMMMMMM

二进制十六进制C1480000

从这个例子可以得到下面的信息:

符号位是1表示一个负数幂是二进十进制130,130减去127是3,就是实际的幂。尾数是后面的二进制数10010000000000000000000

在尾数的左边有一个省略的小数点和1,这个1在浮点数的保存中经常省略,加上一个1和小数点到尾数的开头,得到尾数值如下:

1.10010000000000000000000

接着,根据指数调整尾数.一个负的指数向左移动小数点.一个正的指数向右移动小数点.因为指数是3,尾数调整如下:

1100.10000000000000000000

结果是一个二进制浮点数,小数点左边的二进制数代表所处位置的2的幂,例如:1100表示

(1*2^3)+(1*2^2)+(0*2^1)+(0*2^0)=12。

小数点的右边也代表所处位置的2的幂,只是幂是负的。例如:.100...表示(1*2^(-1))+(0*2^(-2))+(0*2^(-2))...=0.5。

这些值的和是12.5。因为设置的符号位表示这数是负的,因此十六进制值0xC1480000表示-12.5。;;;

文档评论(0)

136****2310 + 关注
实名认证
内容提供者

安全员持证人

该用户很懒,什么也没介绍

领域认证该用户于2023年11月17日上传了安全员

1亿VIP精品文档

相关文档