从最简单开始说:
2个变量:TAG1,TAG2,
当TAG1从0到1变化时,执行一个写入数据库的语句,例:TAG1,1,时间
当TAG1从1到0变化时,执行一个写入数据库的语句,例:TAG1,0,时间
当TAG2从0到1变化时,执行一个语句,TAG2,1,时间
当TAG2从1到0变化时,执行一个语句,TAG2,0,时间
由于只有2个变量,全局脚本vbs写两个动作,第一个动作TAG1为触发变量,第二个动作TAG2为触发变量,每个动作都是写入当前值就可以了。
问题来了:
不可能这么简单,只有2个变量,是1000个!我难道要像上面那个方法写1000个动作吗?但是这是最简洁的,因为哪个变量变化,脚本就只会执行那个变量触发的动作,写入数据库。这是效率最高的,但写起来就要命了。
请问如何写这种1000个变量,其中哪个变化,比如TAG555从0变1,写TAG555,1,时间?
目前只找到这个可行的方案:
周期1s触发脚本,里面循环读取这1000个变量的值,再和上个周期的值做比较,如果哪个值与上个周期的值不同,则说明有变化,数据库里就写那个变量和值。。。这个方法很low很笨。每秒都必须读取1000个变量值,如果没变化,这个脚本等于在浪费整个项目的时间!!!本人表示强烈鄙视并且抵触这种方法。