请解释这段WINCC程序的意思

#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{

#define Dot  "dot_25"                  //定义变量名


 if ( GetTagDWord(Dot )&0x0010)
                { SetTagDWord(Dot ,GetTagDWord(Dot )&0xFFEF);}
              else
                { SetTagDWord(Dot ,GetTagDWord(Dot )|0x0010);}
 
 
}

问题补充:
能详细解释一下这段程序具体含义吗?最好能精确到每一行。
在这提前谢谢各位了。

最佳答案

双字变量dot_25的bit4取反。

__________________________________________________________________________________

if ( GetTagDWord(Dot )&0x0010)   //与运算,如果bit4=0,则结果为0,如果bit4=1,那么结果为0x0010
                { SetTagDWord(Dot ,GetTagDWord(Dot )&0xFFEF);} //与运算,bit4和0进行与运算,其他位和1进行与运算,结果是bit4置0,这里如果变量真是一个双字0xFFEF应为0xFFFFFFEF,否则高位字也被清零了
              else
                { SetTagDWord(Dot ,GetTagDWord(Dot )|0x0010);}  //或运算,bit4和1进行或运算,其他位和0进行或运算,结果是bit4置1

建议里看一下C语言的逻辑运算方面的内容

提问者对于答案的评价:
谢谢。

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

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

相关推荐