请问WinCC 7.4中用C脚本对双字中的部分位进行操作

WinCC 7.4中为了节约点数,定义一个双字变量,现在其中的两个字节的16个位做PLC DI的指示灯用,另外两个字节中的16个位想做按钮用,请问这些按钮的动作怎么用C脚本表示,特别是双字的某一位怎么表示,不能影响其他位的值,能否举例写几步脚本,因为这方面的资料比较少,万分感谢

最佳答案

自己做两个函数,一个读取某个位,一个写某个位,读取时,用除了目标位,其余都0的数“与&”这个32位变量;写的时候,置0时,用除了目标位,其余都是1的数“与&”这个32位变量,置1时,用除了目标位为1,其余位都是0的数“或|”这个32位变量。
//读
unsigned int read_BIT(unsigned int a,unsigned int b)
{
int i=1;
i<<=b;
return a&i;//非0为真
}
//写
unsigned int write_BIT( unsigned int a,unsigned int b,int c)
{
//c为真,把b对位的位置1,否则置0;
 unsigned int i=1;
 i<<=b;
if(c){
 return a|i;
}
else{
 i=~i;
 return a&i;
}
}
你可能不需要脚本,如图:

图片说明:

请问WinCC 7.4中用C脚本对双字中的部分位进行操作  请问WinCC 7.4中用C脚本对双字中的部分位进行操作  请问WinCC 7.4中用C脚本对双字中的部分位进行操作  请问WinCC 7.4中用C脚本对双字中的部分位进行操作  

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

最佳答案作者回复:
函数可以继续封装,锋言锋语那个宏用的很巧妙

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

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

相关推荐