当前位置:网站首页>虹科干货 | 教您如何解析MODBUS中的浮点型数据
虹科干货 | 教您如何解析MODBUS中的浮点型数据
2022-07-23 17:43:00 【hongke_iiot】
前言
工业树莓派支持MODBUS TCP/RTU通讯协议,因此,在使用Modbus协议的温湿度传感器、电子天平、PLC等设备场景中应用十分广泛。当工业树莓派作为MODBUS TCP/RTU主站时,最多可以连接30个从站设备,由此可见,工业树莓派具有较好的可扩展性。
一、 面临的挑战
MODBUS从站设备有16位整型数据,但应用更多的是32位浮点型数据,这是因为32位浮点型数据能够在通讯过程中的控制更加精准,这类常应用于如电子天平的体重数据、温湿度传感器的温度/湿度数据、电机的转速等场景。
但在这个过程中会面临数据解析的问题:浮点型数据的应用需要遵循IEE745的数据转换规则,以实现与整型数据的转换和利用。
寄存器只能存放16位数据,所以浮点型数据会被拆分成两个数据部分,分别存放在相邻的两个寄存器中,具体如下:
1. 在进行数据读取的时候,需要把两个寄存器数据通过数据解析还原成浮点型数据(如图1中所示);
2. 在进行数据写入的时候,要通过数据解析把一个浮点型数据拆分成两个十六进制分别写入到相应的寄存器内(如图2中所示)。图1. 寄存器数据合并成浮点型数据图1. 寄存器数据合并成浮点型数据图1. 寄存器数据合并成浮点型数据

图1. 寄存器数据合并成浮点型数据

图2. 浮点型数据写入到寄存器
二、解决方案
针对此类问题,虹科提供一种解析方法,具体如下:
1、读取两个寄存器数据,通过位操作把两个寄存器数据合并成浮点型数据。



2、写入一个浮点型数据,通过位运算把32位浮点型数据拆分成两个16位整型数据,分别写入到两个寄存器中。


三、总结
工业树莓派采用Debian系统,开源性较高,可以通过C/C++、Java、C#、Python等方式进行编程。关于浮点型数据转换成16进制整型数据并进行数据解析可以使用的方法有很多,以上仅为其中一种数据解析方法,这种解析方法存在误差,误差范围为±0.01,可以适用于对浮点型数据精度要求不是特别高的情况。针对以上场景,如有其他解析方法,欢迎添加工程师微信进行交流。
四、方案简介
虹科工业树莓派产品具有实时Raspbian系统,内置Broadco多核处理器具备诸如图像处理类复杂任务处理能力。

此外,它小巧灵活,功耗低,支持用Python/Java/C/C++/C#、Node-RED可视化编程工具进行开发,还能实现CPDESYS软PLC功能,在数据采集和小型控制等场景可帮助用户快速创建应用,实现工业物联网和数字化生产。

了解更多相关资讯,欢迎私信、关注博主
边栏推荐
- A preliminary study of the relationship between combinatorial mathematics and DP, and the derivation of resettable combinatorial formulas
- 去中心化存储面临的挑战
- [C language] program environment and preprocessing
- 单调队列优化DP
- 树莓派ssh登录
- What is stack and the difference between stacks
- H7-TOOL的CANFD/CAN接口脱机烧写操作说明, 已经更新(2022-07-12)
- Elk note 25 - expérience rapide APM
- [machine learning] Wu Enda: lifelong learning
- VB connecting access database customization
猜你喜欢

还在用Xshell?你out了,推荐一个更现代的终端连接工具

Little fish sends lidar | just dinner is the first lottery

Learn and understand Architecture Design from business development

小鱼送激光雷达啦 | 恰饭即抽奖第一期
![[shutter -- layout] flexible layout (flex and expanded)](/img/03/0f07a56487f8e91045f9e893e9f96c.png)
[shutter -- layout] flexible layout (flex and expanded)

行业分析| 物流对讲

去中心化存储面临的挑战

Implementation of IIC protocol with FPGA (I) IIC bus protocol

Access intranet rds+mysql through SSH

FPGA基于spi的flash读写
随机推荐
Recognition engine ocropy- & gt; ocropy2-> Ocropus3 summary
Elk note 25 - expérience rapide APM
微信小程序自己实现一个全局事件总线
Emgucv common function function description "suggestions collection"
H7-TOOL串口脱机烧录操作说明,支持TTL串口,RS232和RS485(2022-06-30)
R语言data.table包进行数据分组聚合统计变换(Aggregating transforms)、计算dataframe数据的分组最小值(min)
not all arguments converted during string formatting
固态硬盘的工作原理揭秘
结构体大小的计算(结构体内存对齐)
impala的详细写入流程
Lendingclub loan status business details current, charge off, issued, full paid, grace period
迷宫类dp整合
某些题目对应的智慧数据总结
What content does the software test plan include and how to write it. Share test plan template
ES6其他语法及扩展语法总结
[shutter -- layout] linear layout (row and column)
入门数据库days1
canvas绘制文本和清除绘制
TODO FIXME BUG TAG FEATURE 等配置
LeetCode刷题:回文数