怎样能使wincc中整型变量的几位置1呢?

如果第一个条件满足,把整型变量的第1位置1;
如果第二个条件满足,把整型变量的第2位置1;
怎么可以实现呢?

问题补充:
补充一下:
if (条件1) 
{语句1;}//实现int变量的第0位置1,DBX0.0=1
if (条件2)
{语句2;}//实现int变量的第1位置1,DBX0.1=1
if (条件3)
{语句3;}//实现int变量的第2位置1,DBX0.2=1
……
//整型变量的位是相互不影响的,如条件1和条件2都满足,则DBX0.0=1,DBX0.1=1;如条件1和条件3,……,条件n满足,则DBX0.0=1,DBX0.2=1,……,DBX(n-1)=1;因为条件很多,所以不能用if(条件1&&条件2&&条件n)这种同时满足的语句来判断的。请各位指教

最佳答案

如果要求整型变量的位相互不影响,就不能使用 1、2、4、8、16...来实现对第 0、1、2、3、4...位的置位。
有两种方法:
1、在 WinCC 中建立变量时使用 16 个 BOOL 变量对应一个 INT 变量,脚本中使用 SetTagBit(Tag_Name,value);
2、脚本使用 SetTagWord(Tag_Name,(WORD)(GetTagWord(Tag_Name)|1));//将原 INT 变量与 1、2、4、8、16...相或,再赋值给原变量。

亦可以自己编写项目函数,简化代码。

提问者对于答案的评价:
我试一下,谢谢你的回答

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc266002.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 上午4:11
下一篇 2019年6月11日 上午4:11

相关推荐