数据打包上传时在C脚本中遇到的问题!

我从下位机给上位机打包上传一组float型数据,上传时是以字节打包形式上传的,在C脚本中进行解包时需要把每四个字节的数据转换为一个float型数据,如何转换呢?

最佳答案

我自己写的一个项目函数,读取raw组数据,转换成float放到中间变量中。三个参数
 RawTagName—raw变量的名字
 RawTagSize—变量的长度(byte)
 FloatTagNameHeader—转换成float后,存放数据中间变量的名字头,尾是_1…._2…_3这样格式的

 void ReadRawFloat(char* RawTagName,int RawTagSize,char* FloatTagNameHeader)
 {
 BYTE ReadData[200];
 BYTE ConvertData[200];
 char  FloatTagName[200];
 char FloatTagTail[200];
 float* intArray;
 int i,j;

 if (RawTagSize>200) return;

 GetTagRaw(RawTagName,ReadData,RawTagSize);
 for (i=0;i<50;i++)
  for (j=0;j<4;j++)
      ConvertData[4*i+3-j]=ReadData[4*i+j];

 intArray=(float*)ConvertData;
 for (i=0;i<RawTagSize/4;i++)
  {
  strcpy(FloatTagName,FloatTagNameHeader);
  sprintf(FloatTagTail,"_%d",i+1);
  strcat(FloatTagName,FloatTagTail);
  SetTagFloat(FloatTagName,intArray[i]);
  } 
 }
 

提问者对于答案的评价:
谢谢!
 

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc273772.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日
下一篇 2019年6月11日

相关推荐

  • wincc中如何取消个别变量的前缀

     wincc中常用增加变量前缀的方式来制作操作窗, 但是弹出的操作窗里面有一两个变量不希望增加变量前缀,有哪些方法? 最佳答案 @NOTP取消变量前缀,@NOS…

    SIMATIC WinCC 2021年7月5日
  • TP177B触摸屏的管理员权限问题?

    我这里有只TP177B的触摸屏权限老是失效,我编辑过组态,已经取消了密码注销的功能,还是会这样?这还是新屏呢?怎么回事呢?谢谢大家了! 最佳答案 以前也碰到过这个问题,密码输错3次…

    SIMATIC WinCC 2017年11月12日
  • Wincc modbus Tcp通讯

    WINCC V7.3安装modbus TCP驱动与现场设备通讯,现场设备只支持modbus rtu,用modbus网关转成TCP,请问是每台设备配置一…

    SIMATIC WinCC 2021年7月5日
  • wincc v6.2版图形编辑器打开时错误原因

    本人原先使用Wincc V6.0版,最近将它卸载后安装了Wincc V6.2版,进入Wincc浏览器新建工程后,打开图形编辑器时出现“Fatal er…

    SIMATIC WinCC 2019年6月11日
  • wincc复制冗余项目出错

    一个工程中,两台PC冗余,一台PC上工程已经做好了,用项目复制器将工程复制到另一台PC上,提示“计算机未安装SQL数据库或数据库未创建WINCC项目实例”,这是怎么回事? 问题补充…

    SIMATIC WinCC 2019年6月11日
  • WINCC7.0怎么样通过PROFIBUS-DP和S7-400通信

    WINCC7.0怎么样通过PROFIBUS-DP和S7-400通信,具体通信选用什么样的硬件,以及怎么来把他们通信起来的步骤,另外我的PLC要通过单独DP口连接到DCS上,在这里面…

    SIMATIC WinCC 2019年6月11日
  • 如何卸载wicc授权

    如何卸载wicc授权 最佳答案 1.楼主可以通过授权管理器(Automation License Manager)把授权转移到其它盘符或者U盘中。 2…

    SIMATIC WinCC 2019年6月11日
  • wincc图形编辑器中的输入输出域设置

    在WINCC程序运行后,我想单击输入输出域就出先一个小键盘,该如何做了???谢谢!!! 最佳答案 WinCC项目管理器中“计算机”-“属性”-“运行”,选择“激活监视器键盘”即可。…

    SIMATIC WinCC 2019年6月11日
  • wincc os-projecteditor与图形编辑器

    我在设置了os-projecteditor里面的分辨率后,在图形编辑器里就突然多了这些没用的pdl,这不是我自己建立的,请问怎么设置就会去掉啊? 图片说明:  &nbsp…

    2019年6月10日
  • wincc的项目函数里没有函数,怎么回事

    以前做的项目里是wincc6.0,做事件-鼠标属性,选择动作,在弹出的窗口左侧边项目函数里有很多函数,但是有个项目是wincc6.2,打开项目函数里只有一个函数,想问问怎么回事。 …

    2021年7月5日