如何操作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