首页 > 其他分享 >在Modbus协议中,传输一个float类型的数值

在Modbus协议中,传输一个float类型的数值

时间:2024-08-09 18:17:03浏览次数:15  
标签:tmp high float Modbus 传输 low reg

假设你想传输的浮点数是123.456,其在内存中的二进制表示为CD AB EF 12(这是假设为大端序的情况,即最高有效字节先出现)。为了将其发送给Modbus设备,你需要将这32位拆分为两个16位的寄存器值CD ABEF 12

#include <stdint.h> void float_to_modbus_regs(float f, uint16_t *reg_high, uint16_t *reg_low) { uint32_t tmp; // 将浮点数转换为32位整数 memcpy(&tmp, &f, sizeof(tmp)); // 将32位整数拆分为两个16位的寄存器值 *reg_high = (tmp >> 16) & 0xFFFF; *reg_low = tmp & 0xFFFF; } // 使用示例 int main() { float value = 123.456; uint16_t high_reg, low_reg; float_to_modbus_regs(value, &high_reg, &low_reg); printf("High Register: 0x%04X\n", high_reg); printf("Low Register: 0x%04X\n", low_reg); return 0; }

请注意,上面的代码假定你的系统和Modbus设备都是使用大端序的。如果你的系统或设备使用小端序,你将需要在写入寄存器之前交换high_reglow_reg的值。此外,你需要根据你的Modbus库的API来调整写入寄存器的具体实现

标签:tmp,high,float,Modbus,传输,low,reg
From: https://www.cnblogs.com/mokongking/p/18351261

相关文章

  • 0214-最大传输单元 MTU
    环境Time2022-11-20WSL-Ubuntu22.04Rust1.65.0pnet0.31.0前言说明参考:https://docs.rs/pnet_datalink/0.31.0/pnet_datalink/linuxRFC894:https://www.rfc-editor.org/rfc/pdfrfc/rfc894.txt.pdf《TCP/IP详解卷1:协议》:http://www.52im.net/topic-tcpipvol1.html目......
  • 探索亚马逊Amazon S3:无缝存储管理与极速数据传输的奥秘
    亚马逊云科技中AmazonS3,因其设计简单与高度可靠,允许用户通过互联网存储和检索任意数量的数据,并能够自动扩展以满足各种规模的需求,使得AmazonS3成为了许多云计算应用和网站的核心存储基础设施之一,AmazonS3提供的功能涉及方面众多,今天博主就云存储服务这一方面知识简单讲解一......
  • TCP 通信全流程分析:从连接建立到数据传输的深度探索
    目录一、TCP报头二、三次握手三、数据传输四、四次挥手本文通过一次TCP通信过程的分析来学习TCP协议一、TCP报头如图是一份TCP报文的报头,标准报头是20个字节,还可带有选项报头,也就是TCP报头的最小长度是20字节。以下是对报头的各个字段的分析:端口号:向上层交付时交付......
  • BUG: 传输的uicode码转汉字显示部分错误
    1.BUG描述pc下发文本信息,采用unicode编码形式,下位机单元接收后,需要将其解码成utf-8的编码形式显示出来,但是发现文本首部和尾部出现乱码。2.BUG原因原因很简单,解码的时候尾部和首部没有对齐。记录这个BUG主要是记录下汉字的编码方法。3.修复方法解码时对齐即可。4.unicode编......
  • ModbusRtuOverTcp读写操作
     .NET免费开源工业物联网网关-小码编匠-博客园(cnblogs.com)IoTClient:IoTClient是一个物联网设备通讯协议实现客户端,将包括主流PLC通信读取、ModBus协议、Bacnet协议等常用工业通讯协议。本组件终身开源免费,采用最宽松MIT协议,您也可以随意修改和商业使用(商业使用请做......
  • 智能化解决方案:提升汽车制造图文档发送效率,实现高效传输!
    汽车制造业企业数据外发需求频繁,不仅有与异地研发机构间、供应商之间的协同研发文件交换,还有与外包供应商及零部件供应商之间的基于价值链的协同关系。主要涉及的数据类型有:汽车制造图文档发送、研发数据发送、项目文件发送、反馈数据与协调文件发送等。目前大部分汽车制造业企......
  • 认识Modbus RTU与Modbus TCP
    (选自成都纵横智控-ModbusRTU与ModbusTCP协议区别详解 )ModbusRTU和ModbusTCP是两种常用的工业通信协议,用于连接电子设备,但它们在多方面有所不同。以下是它们的详细比较:ModbusRTU协议类型:ModbusRTU是一种串行通信协议,通常使用RS-232、RS-422或RS-485标准进......
  • 泗博MODBUS TCP转PROFINET网关EPN-330实现焊机与西门子PLC的连接
    随着工业自动化水平的不断提高,各种设备之间的互联互通变得至关重要。然而,由于不同设备可能采用不同的通信协议,如何实现它们之间的无缝连接,成为了许多工程师和企业面临的难题。今天,我们就来分享一个上海泗博成功的案例,看看如何通过泗博自动化的MODBUSTCP转PROFINET网关EPN-330,实现......
  • AXI4传输层概念和跨4K边界理解
    1.AXI传输层级概念在手册的术语表中,与AXI传输相关的有三个概念,分别是transfer(beat)、burst、transaction。用一句话串联就是:在AXI传输事务(Transaction)中,数据以突发传输(Burst)的形式组织。一次突发传输中可以包含一至多个数据(Transfer)。每个transfer因为使用一个周期,又被......
  • IC设计企业如何真正实现便捷又高效地云租户文件传输?
    越来越多的IC设计企业选择开通云租户的方式进行半导体芯片的设计和验证工作,也即在HPC环境中进行芯片设计流程,对于IC设计企业而言,使用云租户有明显的好处和优势:资源分配:云平台会根据租户的需求分配相应的资源,如独立的身份ID、虚拟私有云(VPC)等。每个租户都拥有自己独立的资源环境,保......