GE Historian 模拟
GE Historian Simulation
我一直在尝试在 Historian 中模拟值,但没有成功。我对环境和 VBscript 本身都很陌生。
我正在尝试模拟简单的 1 和 0。我的目标是 运行 1-2 分钟,returning 1。然后下降15-30秒; returns 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 但我设法通过对上面的代码进行了一些调整来制作一个计数器。以为我只需要制作另一个标签,然后 return 值 1s 和 0s 一段时间。显然,Historian 在读取另一个标签时无法跟上并吐出值...
I have been trying to simulate values in Historian
我过去曾成功地使用过文件收集器 test/simulate 我们监控的设备的停机和丢失情况,请在此处说明: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
使用文件配置模拟数据以及简单的测试计划的另一个好处是,您现在拥有一组已定义的可重复测试用例。
我一直在尝试在 Historian 中模拟值,但没有成功。我对环境和 VBscript 本身都很陌生。
我正在尝试模拟简单的 1 和 0。我的目标是 运行 1-2 分钟,returning 1。然后下降15-30秒; returns 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 但我设法通过对上面的代码进行了一些调整来制作一个计数器。以为我只需要制作另一个标签,然后 return 值 1s 和 0s 一段时间。显然,Historian 在读取另一个标签时无法跟上并吐出值...
I have been trying to simulate values in Historian
我过去曾成功地使用过文件收集器 test/simulate 我们监控的设备的停机和丢失情况,请在此处说明: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
使用文件配置模拟数据以及简单的测试计划的另一个好处是,您现在拥有一组已定义的可重复测试用例。