如何操作WINCC变量中任意位,我想操作TAG变量中的第2位,执行置位或者复位,执行时不影响变量中得

如何操作WINCC变量中任意位,我想操作TAG变量中的第2位,执行置位或者复位,执行时不影响变量中其他位的状态,用C来编程实现,该如何做?求教求教

最佳答案

置位/复位一个字节/字中的多个位可使用现成的功能:
“动态向导>>标准动态>>置位/复位一个位”所生成的代码。 

WinCC所提供的GetTag*函数没有现成的功能,只有利用&&等运算符来判断,比如:
BOOL Bit0,Bit1,Bit2;
Bit0=(GetTagWord("整形变量")&&0x1);
Bit1=(GetTagWord("整形变量")&&0x2);
Bit2=(GetTagWord("整形变量")&&0x4);
其他类推。。。

如果是要赋值,则使用&,|等操作符,详细代码请参考“动态向导>>标准动态>>置位/复位一个位所”生成的代码。 

参考:怎么置位字变量中的某一位
http://www.ad.siemens.com.cn/Service/answer/solution.aspx?Q_id=49440&cid=1032

提问者对于答案的评价:
问题已经解决,多谢各位大虾

专家置评

已阅,最佳答案正确。

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

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

相关推荐