以下是你给我的程序
BOOL A1,B1;
DWORD C1;
A1=GetTagBit("tag1");//外部信号
B1=GetTagBit("tag1_save");//外部信号保存值
C1=GetTagDWord("count");//累计
if((A1^B1)&A1)//如果A1和B1不一样,并且A1为真
C1=C1+1;//累计
SetTagDWord("count",C1);//保存累计值
SetTagBit("tag1",A1);//保存状态
return();
在编译中以下两句不能通过:C1=GetTagDWord("count");
SetTagDWord("count",C1);
因不能保存累计值,为了学习我更改如下:
BOOL A1,B1;
DWORD C1;
A1=GetTagBit("2i37.0");
B1=GetTagBit("2i37.2");//因信号不能保存,我另选了一个点。
if((A1^B1)&A1)
C1=C1+1;
return(c1);
运行结果是显示值在0与1之间跳变,而不是递增。这是为什么?程序中"count"与"tag1"怎么理解?另外我看了一下触发器,感觉也能当作累加条件,但不知怎样用,想请教一下。