我一直在尝试在 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。显然,Historian 在读取另一个标签时无法跟上并吐出值......