目录
前言
工业现场中的设备数据一般会涉及到浮点数、整数等,我们在对这些数据进行监测时,有时候由于数据位数过多,为了能直观迅速的看清数据,因此会采用科学计数法来表示这些数据。昆仑通态触摸屏对数据显示的类型支持浮点数、整数显示以及字符串显示,并没有直接可以科学计数法显示的功能,因此需要编写脚本程序来实现此功能。
说明:触摸屏没有直接实现科学计数法显示的功能,我们可以将数据转化为字符串进行显示,科学计数法一般有两种表示方法
a × 10 b
a × E b
根据自己需求可选择不同的表示形式进行显示,
思路如下:将浮点数进行计算后转化成字符串进行显示,这样显示的格式就不受影响了。
1、定义数据类型
定义一个字符串来存放需要表示的数据,演示界面中a为原始数据,str为要显示的科学计数法字符串。
2、新建脚本
(1)打开运行策略>新建策略>循环策略,点击确定,打开新建的策略。
(2)双击策略行,将循环时间改为100,点击确认
(3)右键选择新建策略行
(4)脚本文件新建成功,双击脚本程序进行脚本编写
3、编写脚本
(1)、计算科学计数法中a的值以及位数b的值
a的值计算方法如下
//lga除以1是为了将小数部分去掉,\为除法运算,除法运算不保留余数,只保存整数位
a/10^(!Log10(a)\1)
b的值计算如下
//在下脚本中\为除法运算,除法运算不保留余数
!Log10(a)\1
(2)格式转化
将a的值格式化为浮点数,此脚本保证了所有的数据显示位数,具体使用方法请自行查询
!Format(a/10^(!Log10(a)\1),"0.00")
此函数使用方法
将b的值转化为字符串
!str((!Log10(a)\1))
此函数使用方法
(3)、设定显示格式
//显示的结果为X2=a*Eb,将E更改为10显示结果为X2=a*10b
str=!Format(a/10^(!Log10(a)\1),"0.00")+"E"+!str((!Log10(a)\1))
4、效果演示
(1)使用模拟功能进行效果演示,点击工程下载>启动运行
(2)大于1的浮点数效果如下
(3)小于1的显示如下,出现这种情况是因为小于1的数进行除以1的除法运算时结果为0,如果想要避免这种情况,可以将脚本进行改进
(4)新脚本程序如下
(5)演示结果如下
仅供参考,如有问题欢迎指出,所写内容只为自己参考学习