SIEMENS江苏省连云港市 西门子代理商——西门子华东一级总代理

2024-11-26 07:00 120.237.217.245 1次
发布企业
广东湘恒智能科技有限公司商铺
认证
资质核验:
已通过营业执照认证
入驻顺企:
1
主体名称:
广东湘恒智能科技有限公司
组织机构代码:
91441304MAC3TWY11U
报价
请来电询价
西门子总代理
PLC
西门子一级代
驱动
西门子代理商
伺服电机
关键词
PLC,变频器,代理商,一级代理,伺服电机
所在地
惠州大亚湾澳头石化大道中480号太东天地花园2栋二单元9层01号房
联系电话
15903418770
手机
15915421161
联系人
张经理  请说明来自顺企网,优惠更多
请卖家联系我
15915421161

产品详细介绍

数据拆分与重组

这里写了测试函数,先将float拆分为4个字节,保存在tbuf[0]~tbuf[3]中,并先打印查看是否正确。如果是在实际应用中,这时就可以将4个数据以hex的形式发送出去了。

将数据重组,这里直接使用tbuf[0]~tbuf[3]模拟接收方接收到的4个hex数据,将重组后的数据保存在res变量中,重组的方法也是根据float在计算机占4个字节,通过unsignedchar指针依次为float的4个字节赋值即可





























voidtest_float_to_4hex(floatnum){   unsigned chartbuf[4];   unsigned char *p =(unsigned char*)&num +3;//指针p先指向float的Zui高字节   floatres;//验证float拆分为4个字节后,重组为float的结果
   //先打印一下传入的float的值  printf("\r\n传入的float的值:%f",num);
  //获取对应的4个字节,从低位到高位,这时就可以用于hex格式的数据传输了   tbuf[0] =*(p-3);    tbuf[1]= *(p-2);   tbuf[2] = *(p-1);   tbuf[3] =*p;
  //打印看一下   printf("\r\n查看float的每个字节内容(16进制):\r\n");  printf("%x,%x,%x,%x\r\n",tbuf[0], tbuf[1], tbuf[2],tbuf[3]);
  //对拆分后的4个字节进行重组,模拟接收到hex后的数据还原过程   unsigned char *pp =(unsigned char*)&res;   pp[0] =tbuf[0];    pp[1]= tbuf[1];     pp[2] = tbuf[2];   pp[3] =tbuf[3];
  printf("\r\n重组后的float的值:%f\r\n",res);}

 测试一下该函数:

//模拟测试float转为4个16进制数进行数据传输的过程
test_float_to_4hex(a);

结果:

传入的float的值:3.887000
查看float的每个字节内容(16进制):
9c,c4,78,40

重组后的float的值:3.887000

数据重组后可以还原,方法是可以的。

关于int型数据

int型数据与float一样都是占用4个字节,该方法也适用于将int转换为4个hex,只需修改float类型为int即可:





























voidtest_int_to_4hex(intnum){   unsigned chartbuf[4];   unsigned char *p =(unsigned char*)&num +3;//指针p先指向int的Zui高字节   intres;//验证int拆分为4个字节后,重组为float的结果
   //先打印一下传入的int的值   printf("\r\n传入的int的值:%d",num);
  //获取对应的4个字节,从低位到高位,这时就可以用于hex格式的数据传输了   tbuf[0] = *(p -3);    tbuf[1] =*(p - 2);   tbuf[2] = *(p - 1);   tbuf[3] =*p;
  //打印看一下   printf("\r\n查看int的每个字节内容(16进制):\r\n");  printf("%x,%x,%x,%x\r\n",tbuf[0], tbuf[1], tbuf[2],tbuf[3]);
  //对拆分后的4个字节进行重组,模拟接收到hex后的数据还原过程   unsigned char *pp =(unsigned char*)&res;   pp[0] =tbuf[0];    pp[1]= tbuf[1];   pp[2] = tbuf[2];   pp[3] =tbuf[3];
  printf("\r\n重组后的int的值:%d\r\n",res);}

实测:



int b = -85776553;test_int_to_4hex(b);

结果:

传入的int的值:-85776553
查看int的每个字节内容(16进制):
57,27,e3,fa

重组后的int的值:-85776553


所属分类:中国电工电气网 / PLC
关于广东湘恒智能科技有限公司商铺首页 | 更多产品 | 联系方式 | 黄页介绍
成立日期2022年11月17日
主营产品西门子PLC代理商,plc变频器,伺服电机,人机界面,触摸屏,线缆,DP接头
公司简介广东湘恒智能科技有限公司主要从事工业自动化产品的集成,销售与维修。致力于为您提供在机械、化工、水泥、电力、环保等领域的电气及自动化技术的完整解决方案,包括自动化产品及系统、工程项目执行及管理、主要过程控制领域技术支持,以及专业的售后服务、培训等。公司本着“以人矢志创新、追求卓越”的工作方针,致力于工业自动化控制领域的产品开发、工程配套和系统集成、销售,拥有丰富的自动为本、科技先导、化产品的应用和实 ...
公司新闻
顺企网 | 公司 | 黄页 | 产品 | 采购 | 资讯 | 免费注册 轻松建站
免责声明:本站信息由广东湘恒智能科技有限公司自行发布,交易请核实资质,谨防诈骗,如有侵权请联系我们   法律声明  联系顺企网
© 11467.com 顺企网 版权所有
ICP备案: 粤B2-20160116 / 粤ICP备12079258号 / 粤公网安备 44030702000007号 / 互联网药品信息许可证:(粤)—经营性—2023—0112