WINCC全局脚本触发方式讨论 点击:5434 | 回复:0



王者之师-陌上尘

    
  • 精华:1帖
  • 求助:11帖
  • 帖子:20帖 | 939回
  • 年度积分:0
  • 历史总积分:5186
  • 注册:2010年5月12日
发表于:2014-01-21 14:13:56
楼主

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,也可以实现。

 

 

针对于上升沿或者下降沿触发一次的情况,可以讨论一下,相互交流。

                           



热门招聘
相关主题

官方公众号

智造工程师