wincc全局脚本运行分为周期性和变量触发两种方式:
1、周期性触发时,可以根据用户需要设置周期循环时间。
2、变量触发时,选择外部变成触发,变量在有0变1,由1变0的时候都会运行全局脚本。
现在问题是好多情况下,用户需要上升沿或者下降沿触发一次全局脚本,这样就需要在外部变量触发的情况下进行处理。
记得wincc教程上有一个实例为上升沿触发,需要设置两个辅助变量,实例请登录www.wincc.com.cn
西门子论坛看到一个斑竹给的方法:
如果wincc不退出的话,wincc建立一个内部变量变量B,如果wincc经常要退出,则建立外部变量B,vbs脚本:
dim tag(2)
tag(0)=hmiruntime.tags("A").read
tag(1)=hmiruntime.tags("B").read
if tag(0)=1 and tag(1)=0 then
上升沿需要处理的程序
end if
hmiruntime.tags("B").write tag(0)
我测试了两种方法:
1、PLC内设置一个变量为1S高电平,全局变量中选择变量触发,更新周期为1S,也可以实现,但是会出现一个问题,就是保存时间可能会提前或者延迟1S。
2、PLC内设置一个变量为1S高电平,全局变量中选择周期触发,脚本中使用IF...THEN判断变量状态,更新周期为1S,也可以实现。
针对于上升沿或者下降沿触发一次的情况,可以讨论一下,相互交流。