我一直试图在Historian中模拟价值而没有取得很大的成功。我对环境和VBscript本身都很陌生。
我正在尝试模拟简单的1和0。我的目标是让它运行1-2分钟,返回1分钟。然后下降15-30秒;返回0。两者都是随机的正常运行时间和停机时间。
如果我正确理解程序,它将每秒触发脚本。意思是,我不能有一种记忆的全球价值,难以编程...我已经尝试过使用代词,比如:
dim r
r = (int(rnd*100)+1)*10
IF r >= 35 THEN
Result = 1
ELSE
Result = 0
END IF
但这只考虑了正常运行时间。注册停机时间后,仅注册1秒......:/
有没有人对如何实现简单的模拟代码有任何经验或想法? 谢谢!
修改 我一直在测试内置函数,尝试使用计数器解决问题,我可以使用它在每次命中数字时重置。但我无法让它完全发挥作用:
pre = PreviousValue("TAG1","Now - 1Second")
IF PreviousQuality("TAG1","Now - 1Second") OR pre = -1 THEN
result = 0
END IF
IF pre >= 10 THEN
result = 0
ELSEIF pre < 10 THEN
result = AddData("TAG1",pre+1,"Now",100)
ELSE
result = -1
END IF
我无法让它工作......一直主演自己的盲目......:/
编辑2: 现在看起来像是一本日报...:P但是我设法通过对它的调整来制作一个计数器。以为我只需要制作另一个标签,然后在一段时间内返回值1和0。显然,在阅读另一个标签时,历史学家无法跟上并吐出价值观......
答案 0 :(得分:1)
我一直在尝试模拟Historian中的值
我过去曾成功使用文件收集器来测试/模拟我们监控的设备的停机时间和丢失情况,doco在这里:GE File Collector
基本上,您只需在其中一个formats
中创建XML或CSV文件示例XML:
<Import>
<DataList Version="1.0.71">
<Tag Name="TIGER.IMPORT_TAG1.F_CV">
<Data>
<TimeStamp>01-Mat-2018 11:00:15.000</TimeStamp>
<Value>0</Value>
<DataQuality>Good</DataQuality>
</Data>
<Data>
<TimeStamp>20-Jul-2001 11:00:36.000</TimeStamp>
<Value>0</Value>
<DataQuality>Good</DataQuality>
</Data>
<Data>
<TimeStamp>01-Mat-2018 11:00:30.000</TimeStamp>
<Value>1</Value>
<DataQuality>Bad</DataQuality>
</Data>
<Data>
<TimeStamp>01-Mat-2018 11:00:45.000</TimeStamp>
<Value>0</Value>
<DataQuality>Good</DataQuality>
</Data>
</Tag>
</DataList>
</Import>
一旦您启动并运行了收集器,您就可以将XML或CSV文件放入由文件收集器监视的“Incoming”文件夹中。
传入文件夹的示例位置:C:\ Proficy Historian Data \ ImportFiles \ Incoming
使用文件配置模拟数据的另一个好处是,加上一个简单的测试计划,您现在可以拥有一组定义的可重复测试用例。