上篇文章大圣向我们介绍了按位取值的五种方法,这次我们来蹭蹭少帅的热度。
少帅有句话说得好:下飞机,我只做四件事-数据换算!数据换算!数据换算!还是**的数据换算!
在实际的工程应用中,我们需要的数据往往是由多个采集上来的源数据组合计算得来,所以,本篇文章我们来介绍在中控SCADA中数据转换的四种方法。
一、量程转换
在中控SCADA的位号设置中有一个量程转换的功能,启用之后就可以通过初始值和工程值的设定来设置位号的数值。
如常见的电流监测,将数据源0-65535转为4-20显示。
举例:
初始量程上下限为设置为H1和L1。
转换后量程工程上下限为H2和L2。
则转换系数k和b的计算公式为:
H2 = kH1 + b
L2 = kL1 + b
即
k = (H2 - L2) / (H1 - L1)
b = (H2L1 - H1L2) / (L1 - H1)
在数据源修改成x,查看监控中位号的值。
监控中显示按系数转换后的值。
即:监控显示的值y = kx + b
效果展示
这里我们通过modsim32给出一个65535的初始值,符合我们对a1设定的初始值上下限。通过量程转换显示出来值为20。
注意:位号类型为展示出来的数值类型,初始值为采集上来的数值,工程值为通过量程转换后展示出来的数值。
二、二次计算变量
在二次变量设置位号中可以直接设定表达式对采集上来的数据进行计算,并设置小数位数,在流程图中展示出来。
效果展示
20*0.1+30*0.2+40*0.3=20
三、标签表达式
在流程图中添加标签控件,然后左键点击,可以通过表达式直接计算选择的关联变量然后展示出来,表达式中可以选择较为复杂的计算方式。这里我们选择了两个表达式。
建议使用格式TAG("位号名")。
效果展示
20+30+40=90
20+(30-40)/2=15
注意
如需要小数显示,可以在标签设置中选择展示的数值小数位数。
四、利用脚本
这里我们利用readtag系列的函数来读取a2的值,再进行计算,随后在文本中显示出来
效果展示
注意
脚本这里,选用的是文本控件,不是跟上面三种一样的标签控件,脚本中选用的也是Text。
以上是一些简单的数据系数处理,SCADA中还可以通过二次计算、表达式、VBS脚本做一些更复杂的数据处理,可以根据需求自行配置。