用户归档脚本的问题

已锁定

锋言锋语

西门子1847工业学习平台

  • 帖子

    4059
  • 精华

    54
  • 被关注

    135

论坛等级:至圣

注册时间:2011-07-31

钻石 钻石 如何晋级?

用户归档脚本的问题

1431

8

2011-08-04 11:33:21

我做的用户归档脚本,用于实现整点,当班的归档操作,但是,有时候整点归档会连续动作两次,请帮我看看问题出在哪里

程序如下:


脚本1:

if (GetTagWord("minute")==0) SetTagBit("tmp_bit_3",1);
else SetTagBit("tmp_bit_3",0); //小时触发, 每时0分

if ((GetTagWord("tmp_hour") != GetTagWord("hour")) & ((GetTagWord("hour")-GetTagWord("tmp_hour"))==1 (GetTagWord("hour")-GetTagWord("tmp_hour"))== -23)) SetTagBit("tmp_bit_8",1);
else SetTagBit("tmp_bit_8",0);//小时脉冲
SetTagWord("tmp_hour",GetTagWord("hour");
if (GetTagBit("tmp_bit_3") & GetTagBit("tmp_bit_8")) SetTagBit("tmp_bit_15",1);


脚本2:

#include "apdefap.h"

int gscAction( void )
{


if (GetTagBit("tmp_bit_15"))
{
if (!GetTagBit("tmp_bit_25")) // & (GetTagWord("tmp_time_hour") != GetTagWord("hour"))) //若出现小时归档的缺少,极有可能是因为此句条件不满足,直接跳到了SHIFT
SetTagWord("tmp_time_hour",GetTagWord("hour"));
SetTagSDWord("hour_archive_id",-1);
SetTagSDWord("hour_archive_job",6);

//此处为正点归档的累计,省略
SetTagBit("tmp_bit_25",1); //hour归档中。。。。。

}

if (GetTagSDWord("hour_archive_job") != 6 & GetTagSDWord("@UA_total_Job") != 6 & GetTagBit("tmp_bit_25") )
{

SetTagBit("tmp_bit_15",0);
// SetTagBit("tmp_bit_20",0);
if (GetTagBit("tmp_bit_18") GetTagBit("tmp_bit_17")) SetTagBit("tmp_bit_21",1); //hour动作完成,若有班归档的信号,转移归档操作
// else SetTagBit("tmp_bit_21",0);
SetTagBit("tmp_bit_25",0); //hour归档完毕

}
}

return 0;
}
注:
hour取自SYSTEM INFO中系统时间小时值,minute为分值,tmp_hour为一个内部变量 ,用于存储上次执行时的小时值。
用户归档脚本的问题 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有33031条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。