西门子工业支持中心,以专业共创价值!
西门子工业支持中心,以专业共创价值!
悬赏:15分 | 解决时间:2008-06-30 15:24
产品版区:
SIMATIC WinCC
0度
#include "apdefap.h"
int gscAction( void )
{
unsigned int x ,y;
x=GetTagDWord("aa" );
y=GetTagDWord("aa_1" );
if ( x!=y)
{
SetTagDWord("aa_1",x);
SetTagBit("chufa",1);
}
else SetTagBit("chufa",0);
return 0;
}
大家帮忙看下 这段脚本是 通过改变模拟量达到改变一 二进制变量的目的 为何实验时当改变aa时 chufa 无变化?思路有问题吗?怎么做
问题补充:
我也设置了脚本触发:变量触发(根据变化) 其实我这段程序我达到的要求就是模拟量转化成二进制变量变化(用来触发一次过程值的归档)我用的是变量记录,请问我该怎么解决呢? 另外我发现置0和置1时都会触发一次记录 ,有没办法实现一次置1时记录呢?
小程序查看
最佳答案
回答者:
dcount107
回答时间:2008-06-27 14:02
提问者对于答案的评价:
现在脚本能正常触发了(即模拟量变化二进制变量置0 1触发记录一次生产信息,请问我在记录的瞬间记录的是声频好改变之前还是改变之后的生产信息呢?我的触发器选择的是周期出发(1S)我希望记录是改变之前的信息,如果不是,我该怎么样设置呢? 另外我发现置0和置1时都会触发一次记录 ,有没办法实现一次置1时记录呢?
程序中有点问题,若aa值改变时,chufa=1,aa_1的值同时被改成与aa一样,程序的下一个执行周期时执行else后的程序段,chufa=0
如何画面反映快的话能看到变化,若画面刷新周期长的话就看不到变化。
试验时对aa_1赋值了吗?
变量aa_1没有初始值,有没有关系?
你的问题错在了这
if ( x!=y)
改成
if (x<y|x>y)就行了
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!