0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

通讯中浮点数数据的处理

工控论坛 ? 来源:工控论坛 ? 2025-08-19 13:48 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Modbus 通讯在工业现场应用非常广泛,当然也会有多技术难点,本文主要讲解基于通讯的数据处理,不讲通讯的基础知识,你过你连Modbus通讯的报文都不知道是什么,那可以不用往下看了。

通讯读取普通的数据可能大家都会处理,如果遇到浮点数的数据类型,那就需要一定的处理才能使用。

一、Modbus RTU中的浮点数处理

这位同学在通讯中遇到一个浮点数的问题,搞了好久没有处理好。

15a264b0-7918-11f0-a18e-92fbcf53809c.png

15b4f0c6-7918-11f0-a18e-92fbcf53809c.png

在我的追问下,得知是和一个温度仪表通讯,采集仪表的02和03地址数据,这个数据是一个32位的数据,从表格里面我获取到一个重要详细,这个数据是以大端模式进行排布的。

15c34a4a-7918-11f0-a18e-92fbcf53809c.png

浮点数的大端模式存储遵循IEEE标准格式,高位字节存储在内存低地址,低位字节存储在内存高地址。而三菱PLC中浮点数是以端的类型排布的,因此,需要把数据的高16位和低16位交换处理。

如下图,浮点数数据保存在D0~D3这4个寄存器,我们要先把D0和D1通过SWAP和ADD指令进行合并,然后保存到D100这个32位浮点数数据的高位寄存器(D101);然后把D2和D3通用的方法合并到D100(地位寄存器)。最后通过一条浮点数传送指令传送到D102,就能得到最终的数据。

15d5a12c-7918-11f0-a18e-92fbcf53809c.png

二、Modbus ASCII中的浮点数处理

Modbus有2种类型的报文,RTU比较简单处理,如果得到的数据是字符类型的浮点数,比如和智能相机通讯,对方测量到某物体长度位5.2534mm,把这个数据通过ASCII码发送过来时,需要对照ASCII表(下图只是ASCII表中一部分),5对应 H35,小数点.对应H2E,2对应H32,3对应H33,4对应H34,也就是这个浮点数转换成字符应该是 35 2E 32 35 33 34。

15e43516-7918-11f0-a18e-92fbcf53809c.png

假如这个字符串给到了PLC的D0~D5这6个寄存器,下面用PLC用MOV指令模拟数据给如

15f22c3e-7918-11f0-a18e-92fbcf53809c.png

数据的排布由于是8位的数据类型,需要两两合并成一个16位的寄存器,使用SWAP指令把第2、第4、第6个寄存器转移到高位,再加上上一个寄存器,就能合并成16位数据,结果保存到D10、D11、D12,最后通过一条字符串转浮点数的指令DEVAL,把数据转换成浮点数保存到D20(由于三菱软件浮点数只显示3位,所以最后一位看不到,但是真实数据是有的,你用于其他计算或者显示到触摸屏,都会运算最后一位小数的)

15faec5c-7918-11f0-a18e-92fbcf53809c.png

相信通过以上内容,大家以后都能应对浮点数转换的问题了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • MODBUS
    +关注

    关注

    28

    文章

    2194

    浏览量

    80153
  • 通讯
    +关注

    关注

    9

    文章

    929

    浏览量

    35807
  • 浮点数
    +关注

    关注

    0

    文章

    62

    浏览量

    16170
  • RTU
    RTU
    +关注

    关注

    0

    文章

    442

    浏览量

    29716

原文标题:通讯中浮点数数据的处理

文章出处:【微信号:gkongbbs,微信公众号:工控论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    labview数据类型与PLC 数据类型之间的转换(来自于写入浮点数到汇川 PLC数据转换关键的修改)

    为32位无符号整型U32 2、将U32拆分为两个U16,分高低位写入PLC 3、在PLC,将低位寄存器设置为浮点数数据类型 4、结果:PLC中一直无法正确转换。 原因及解决方法: 1、labview
    发表于 02-24 19:01

    labview和单片机通讯浮点数如何处理

    通过labview和下位机单片机通过串口通讯,对于浮点数,如果上位机要把浮点数传给下位机 或者下位机(单片机)要把浮点数传给上位机(labview)
    发表于 06-06 21:05

    点数浮点数的区别是什么

    点数浮点数的区别目的:理解定点数浮点数在傅里叶变换(FFT)的实际应用的选择单片机如果
    发表于 02-21 07:22

    浮点数在单片机数据采集监控系统的应用

    单片机能够直接处理的数是定点数,然而实际上需要输入、处理和显示的数据却是浮点数,本文详细介绍了浮点数
    发表于 08-13 15:38 ?44次下载

    浮点数的表示方法

    浮点数的表示方法  浮点数,是指小数点在数据的位置可以左右移动的数据。它通常被表示成:    N = M* RE  这里的M(Mantis
    发表于 10-13 17:13 ?1.7w次阅读
    <b class='flag-5'>浮点数</b>的表示方法

    浮点数常用的编码方法

    浮点数常用的编码方法  前面已经说到,在计算机内,浮点数被表示为如下格式:    通常情况
    发表于 10-13 17:21 ?4769次阅读
    <b class='flag-5'>浮点数</b>常用的编码方法

    modbus 如何读取浮点数

    本文为大家介绍modbus读取浮点数的两个程序设计。
    发表于 02-08 10:03 ?1.5w次阅读

    浮点数在内存的存储

    浮点数在内存的存储和整数不同,因为整数都可以转换为一一对应的二进制数据。而浮点数的存储是由符号位 (sign) + 指数位 (exponent) + 小数位 (fraction) 组
    的头像 发表于 09-20 10:52 ?4452次阅读
    <b class='flag-5'>浮点数</b>在内存<b class='flag-5'>中</b>的存储

    如何在FPGA中正确处理浮点数运算

    使用插值算法实现图像缩放是数字图像处理算法中经常遇到的问题。我们经常会将某种尺寸的图像转换为其他尺寸的图像,如放大或者缩小图像。由于在缩放的过程中会遇到浮点数,如何在FPGA中正确的处理浮点数
    的头像 发表于 03-18 11:03 ?5608次阅读

    谈一谈浮点数的精度问题

    还是要从浮点数的存储和标识出发来处理该问题,既然浮点数天然就存在一定的误差,而有时候计算又无法获得唯一的数值,如下图所示,浮点数计算出来的实轴上的值都会因为
    的头像 发表于 08-11 14:28 ?5452次阅读
    谈一谈<b class='flag-5'>浮点数</b>的精度问题

    什么是浮点数浮点数在内存的存储

    浮点型简单讲就是实数的意思。浮点数在计算机中用以近似表示任意某个实数。
    的头像 发表于 11-09 11:07 ?6488次阅读
    什么是<b class='flag-5'>浮点数</b>?<b class='flag-5'>浮点数</b>在内存<b class='flag-5'>中</b>的存储

    什么是浮点数

    Python数据类型第一种:字符串(str)。 Python数据类型第二种:整数(int)。 Python数据类型第三种:浮点数浮点数
    的头像 发表于 02-23 14:58 ?5430次阅读

    西门子PLC浮点数程序案例分享

    64位浮点数保存于VB0开始的存储区,转换得出的32位浮点数保存于VD100
    发表于 10-27 17:07 ?4491次阅读
    西门子PLC<b class='flag-5'>浮点数</b>程序案例分享

    单精度和双精度浮点数的区别

    单精度和双精度是计算机中表示浮点数的两种不同的精度。在计算机浮点数用来表示带有小数部分的实数,而单精度和双精度用来表示浮点数的精确程度不同。在以下文章
    的头像 发表于 12-15 10:25 ?6451次阅读

    modbus浮点数怎么读取

    Modbus是一种通信协议,常用于工业自动化系统的设备之间的通信。它支持多种数据类型,包括整数、浮点数、字符串等。浮点数在工业领域中广泛应用,因此了解如何读取和
    的头像 发表于 12-28 14:38 ?8508次阅读