乐于分享
好东西不私藏

昆仑技创Mcgspro组态软件_浮点数如何转16进制

昆仑技创Mcgspro组态软件_浮点数如何转16进制
在某些特殊场景下,需要把浮点数转化成16进制字符串发送给下位机,那么时候可以实现呢? 最近研究了一下,还真能实现。Mcgspro组态软件提供了丰富的函数,本篇就介绍一下如何把浮点数转换成16进制字节数组和16进制字符串。下面就来介绍一下如何实现。

一  函数介绍

1 函数名称:!SetSingleToByteArr(ByteArr,start,x),具体说明如下:

!SetSingleToByteArr(ByteArr,start,x)函数意义: 对字节数组ByteArr中从start位置开始的内容进行填充,填充的长度为4字节,填充的内容为x,按4字节整数进行填充,字节数组位置计数从1开始参    数: ByteArr:字节型数组,被填充的字节数组start:整数,填充的首位置,从1开始x:浮点数,填充的内容返 回 值: 整数0:表示正常<0:表示失败-1:表示start的值小于1-2:表示start的值大于字节数组的长度-3:表示填充后的结果的某些位置超出ByteArr的长度-5:表示其它错误实    例: !SetSingleToByteArr (BA,1, 12.3) 则形成的字节数组的前四个字节为BASIC中单精度浮点数的内部表示

二  使用方法

1 在实时数据库创建如下变量

浮点数1   浮点数类型strHex1   字符串类型start     整数

添加2个标签,2个输入框

第一个输入框关联浮点数变量【浮点数1】,第二个输入框关联【strHex1】用来显示转化结果,如下图:

3 添加一个按钮,用来执行转化脚本:

按钮上右键--脚本程序,脚本如下:

dim byteArr(4as BYTEstart=1!SetSingleToByteArr(byteArr,start,浮点数1)!Hbyte2HStr(byteArr,strHex1)

三  最终效果

从网上找了一个转换工具,同时测试了一下,上面看结果似乎不一致,但是仔细看就会发现,在线工具转化的结果和屏转化的结果顺序是反的。

这个原因在于在线工具转化的结果是标准的大端格式,触摸屏转化的是小端格式,这个要注意一下。

赶紧打开组态软件测试一下吧!