关于WINCC全局脚本问题的请教!!!

已锁定

kaidy

  • 帖子

    705
  • 精华

    1
  • 被关注

    6

论坛等级:侠圣

注册时间:2007-05-10

普通 普通 如何晋级?

关于WINCC全局脚本问题的请教!!!

4807

11

2011-01-25 23:43:35

各位大侠,我有个WINCC全局脚本的问题很困惑,烦请你们帮我释怀惑!具体程序如下:#include "apdefap.h"

int gscAction( void )
{
int i;
float Data[2];
float DISPLAY[2];//用于显示班产量 实时刷新
float TOTAL[2];//用于系统所有产量统计

//if (GetTagBit("QIDONG"))//取得启动信号后工作
//{
if(GetTagBit("M111501_5")&(GetTagFloat("CL1")<=280)&(GetTagFloat("CL1")>=0))
{
Data[0]=GetTagFloat("ARCHIVE.1#");//获取上次累计数据缓冲区数据
Data[0]=Data[0]+GetTagFloat("CL1")/3600;
SetTagFloat("ARCHIVE.1#",Data[0]);
}

if(GetTagBit("M112001_5")&(GetTagFloat("CL2")<=70))
{
Data[1]=GetTagFloat("ARCHIVE.2#");
Data[1]=Data[1]+GetTagFloat("CL2")/3600;
SetTagFloat("ARCHIVE.2#",Data[1]);

}
//};
return 0;

}
此程序触发器的定时器为1秒钟,即1秒钟执行一次。
但是我在做模拟的时候,“M111501_5”赋值为1,"CL1"赋值200,即满足执行if(GetTagBit("M111501_5")&(GetTagFloat("CL1")<=280)&(GetTagFloat("CL1")>=0))的条件,按理来说
Data[0]=GetTagFloat("ARCHIVE.1#");//获取上次累计数据缓冲区数据
Data[0]=Data[0]+GetTagFloat("CL1")/3600;
SetTagFloat("ARCHIVE.1#",Data[0]);
应该会执行,也就是说"ARCHIVE.1#"1秒钟会变化一次,将"ARCHIVE.1#"在WINCC画面上显示出来也应会有相应的变化,可是"ARCHIVE.1#"在画面上显示的值却一直都是0,不知道是为什么?此程序原来是在WINCC5.1版的,我后来移植到WINCC6.0后就不行了。这是为什么呢?
还有就是有一个关于GetTagFloat("CL1")<=280的问题,如果我要在画面上输入任一个变量值作为判断条件的话,比如说CL1_SP,我在画面可是给CL_SP赋值100、150、200等等任意值,语句是不是GetTagFloat("CL1")<=GetTagFloat("CL1_SP")
关于WINCC全局脚本问题的请教!!! 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32569条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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