海川化工论坛【海川网】

用户名账户登录  

用户名密码方式登录

QQ登录

只需一步,快速开始

微信登录

手机微信,扫码同步

↑ ★ → 加入海川企业会员 传播技术与品牌  

【活动】海川定制logo保温杯来了
【参与活动能免费获得】从本月起任何在“建设者”体系中,你的上月建设者分数......
企业会员 第二期招募【特惠】
特惠为 9999元/ 2 年 百万次传播 20241112 详询客服18840911640

[求助] Modbus通讯疑问

[复制链接]
1.8K |11
阅读字号:
MAO小强VIP会员 VIP会员 来自手机版 | 显示全部楼层 |阅读模式       最后访问IP内蒙古自治区
海川小学4年  |  头衔:  TA暂未设置 
  已绑手机  

服务化工人 [化海川流] 一键加入

您需要 登录 才可以下载或查看,没有账号?注册

x
01为从站地址;03为modbus功能码;04为读取的数据字节长度;010F为温度数据,换算成十进制后除以10,得到真实的温度值;0216为湿度数据,换算成十进制后除以10,得到真实的湿度值。

我的疑问是为什么实际值要除以10 ???
哪位大神能指教一下
多谢啦

 

发表于 2024-9-19 19:34:21

 企业会员】品牌推荐





   【煤气柜制作】【气柜安装】 专业施工  业绩丰富

     交流:13953759998  安经理

      徐州市中宇建设工程有限公司



声明:

本站是提供个人知识管理及信息存储的网络存储空间,所有内容均由用户发布,不代表本站观点。

请注意甄别主题及回复内容中的联系方式、诱导购买等信息,谨防诈骗。

当前内容由会员用户名 MAO小强 发布!权益归其或其声明的所有人所有 仅代表其个人观点, 仅供个人学习、研究之用。

本主题及回复中的网友及版主依个人意愿的点评互动、推荐、评分等,均不代表本站认可其内容或确认其权益归属,

如发现有害或侵权内容,可联系我站举证删除,我站在线客服信息service@hcbbs.com 电话188-4091-1640 

y5kyc7n0hsVIP会员 VIP会员 来自手机版 | 显示全部楼层       最后访问IP上海市
海川小学3年  |  头衔:  TA暂未设置 
在Modbus通讯中,温度和湿度数据通常以整数形式传输,因此需要一种方式来表示小数。这里通过将实际的测量值乘以10后再进行传输,接收端收到数据后再除以10,就能还原成带有小数的实际测量值。这样做是为了保持数据的精确度同时避免使用浮点数,因为在某些系统中处理整数比处理浮点数更有效率。所以,这里的除以10就是为了把由于传输格式限制而调整过的数据还原成原始的测量值。
.

 

发表于 2024-9-19 21:27:37

 

 

 

Peterpaul彼得保罗
回复

使用道具 举报

myfaceVIP会员 VIP会员 | 显示全部楼层       最后访问IP浙江省
海川高二  |  头衔:  TA暂未设置 
  已绑手机  
这个你要问发送端是按什么输出的啊,问论坛怎么问的出来的,不过通常是为了有一位小数的精度。

 

发表于 2024-9-20 08:49:00

回复

使用道具 举报

mutianlyVIP会员 VIP会员 | 显示全部楼层       最后访问IP江苏省
海川小学4年  |  头衔:  TA暂未设置 
  已绑手机  
发送端 扩大了10倍,做的数据转换传输的呗

 

发表于 2024-9-20 09:12:13

回复

使用道具 举报

yahooabceVIP会员 VIP会员 | 显示全部楼层       最后访问IP安徽省
海川小学3年  |  头衔:  【仪表工】
  已绑手机  
PLC不行啊,比较古老

 

发表于 2024-9-22 12:59:32

回复

使用道具 举报

很多工业设备和传感器中,传输的值常常是经过放大或缩放的,以便于数字信号处理。比如说,温度和湿度的实际值可能是小数,但为了简化处理,传输时将其乘以10或100等。这种方式使得传输的数据都是整数,从而提高了数据传输的稳定性和精度。

在你的例子中,温度和湿度的数据经过缩放后传输,接收端在获取这些值后再进行相应的除法运算,就能得到实际的物理量。例如,温度数据010F(十六进制)转换为十进制是271,除以10得到27.1°C,湿度数据0216(十六进制)转换为十进制是534,除以10得到53.4%
这种设计一般是为了保证数据的准确性和完整性,也能减少传输中的误差。

 

发表于 2024-9-25 19:22:34

回复

使用道具 举报

阳光_n1FTCVIP会员 VIP会员 | 显示全部楼层       最后访问IP浙江省
海川小学1年  |  头衔:  TA暂未设置 
  已绑手机      已实名  
这个除10和你的从站没有关系的。根源在于你的上位机主站,主站中寄存器地址采集传感器的读数后,主站没有做运算处理或者传给你的数据类型型有关。

 

发表于 2024-9-28 14:28:02

回复

使用道具 举报

lemon0^0VIP会员 VIP会员 | 显示全部楼层       最后访问IP广西壮族自治区
海川小学1年  |  头衔:  TA暂未设置 
  已绑手机  
10进制和二进制的小数互转的时候可能会出现无限循环小数,在传输过程中产生舍入误差,如果只有一位小数的话发出前乘10,收到后在除10就可以避免这个问题了。

 

发表于 2024-9-30 23:11:50

回复

使用道具 举报

MAO小强楼主 VIP会员 VIP会员 来自手机版 | 显示全部楼层       最后访问IP内蒙古自治区
海川小学4年  |  头衔:  TA暂未设置 
  已绑手机  
myface 发表于 2024-9-20 08:49
这个你要问发送端是按什么输出的啊,问论坛怎么问的出来的,不过通常是为了有一位小数的精度。

thanks you

 

发表于 2024-10-1 18:39:20

回复

使用道具 举报

MAO小强楼主 VIP会员 VIP会员 来自手机版 | 显示全部楼层       最后访问IP内蒙古自治区
海川小学4年  |  头衔:  TA暂未设置 
  已绑手机  
小傅fu 发表于 2024-9-25 19:22
很多工业设备和传感器中,传输的值常常是经过放大或缩放的,以便于数字信号处理。比如说,温度和湿度的实际 ...

学xl了受益匪浅多谢啦

 

发表于 2024-10-1 18:40:03

回复

使用道具 举报

新昌小徐VIP会员 VIP会员 | 显示全部楼层       最后访问IP浙江省
海川小学4年  |  头衔:  TA暂未设置 
  已绑手机  
你也可以用浮点数来表示温度和湿度,这样就得在原来的基础上增加4个字节,你也可以像西门子那样用0-27648的数值来表示温度和湿度,这样传输字节上没有变化,但处理上就繁琐了,发送端得根据温度和湿度的工程值的上下限,和温度湿度值,计算得到0-27648之间的值,这个有丁点误差,接收端也得逆向运算,得到实际值。
因为温度和湿度只要精确到小数一位,所以乘以10,得到一个整数,而二个字节有符号整数可以表示-32768到32767之间的整数,表示的数值范围够宽,如果要精确到小数点二位,也可以表示正负327之间的值。
我们厂的单片机老师傅自己做了模拟量输入模块,485串口模块,把数据传输到浙大DCS。用无符号整数表示,把要传输的温度数据加100,乘以100,这样就可以传输-100度到-500度的温度,对于PT100,最高温度也就三四百度。最低也就-100度,就够用了。
而其它工程值,用0-10000的数值来表示,也好处理。
怎么方便怎么来。
西门子的温度输入模块,传给CPU的值就是工程值的10倍

 

发表于 2024-10-3 16:47:45

回复

使用道具 举报

【发主题】高级


          特别提示:

          本站系信息发布平台,仅提供信息内容存储服务。

         禁止发布上传, 包括但不限于:不能公开传播或无传播权的出版物、无传播权的在行标准规范、涉密内容等
          不听劝告后果自负!造成平台或第三方损失的,依法追究相关责任。

          请遵守国家法规;不要散播涉爆类、涉黄毒赌类、涉及宗教、政治议题、谣言负面等信息   

     

您需要登录后才可以回帖 登录 | 注册

本版积分规则

服务联系
微信关注
回到顶部

 

关于我们  -  隐私协议    -  网站声明   -  广告服务   -  企业会员   -  个人会员  -  记录统计   -   专家智库  -  服务市场    -  APP和微信   -  分类信息   -  管理记录   -  在线计算  -  单位换算


不良信息举报电话   0411-88254066     举报信箱   service@hcbbs.com     举报中心     客服#  18840911640【微信同号】   信箱   hcbbs.com@qq.com   【海川QQ客服】   

平台统计:        GMT+8, 2024-11-23 01:21

海川化工论坛网(hcbbs) @Discuz! X3  0.778475 second(s), 100 queries , Redis On.

辽公安备21100302203002号  | 辽ICP备17009251号  |  辽B2证-20170197