有没办法将外部变量按位赋值,急!!

例如外部变量a,有没方法使a的位,例如0位("a"&0x01)置1

问题补充:
上面有人给的答案:在 WinCC 中用以下脚本可以实现把16位无符号变量“tag”中的第5位置位的功能(若需置位其它位,只需修改0x10(&h10)即可)。

C脚本:
int x;
x=GetTagWord("tag");  
x=x | 0x10;
SetTagWord("tag",x); 
但是我需要可以将这个变量“tag”的几个位同时置位,这个方法应该只能一次置一个,
例如我现在用的:
if ((GetTagDWord("tagT")&0x01)!=0)
SetTagByte(" tag",0x01); //Return-Type: BOOL
if ((GetTagDWord("tagT")&0x02)!=0)
SetTagByte(" tag",0x02); //Return-Type: BOOL
if ((GetTagDWord("tagT")&0x04)!=0)
SetTagByte(" tag",0x04); //Return-Type: BOOL

这里tagT是一个复选框,表示勾选第一个框时,tag0位置位;勾选第二个框时,tag1位置位;勾选第三个框时,tag2位置位;
但是这是tag的0,1,2位不能同时置起,只能置位其中一个

我希望实现的功能是,这三个或者更多的位可以同时置位,或者说可以将这几个位同时赋值,
比如:"tag"&0x01=1,"tag"&0x04=1," tag"&0x02=1同时实现


谢谢!

最佳答案

在 WinCC 中用以下脚本可以实现把16位无符号变量“tag”中的第5位置位的功能(若需置位其它位,只需修改0x10(&h10)即可)。

C脚本:
int x;
x=GetTagWord("tag");  
x=x | 0x10;
SetTagWord("tag",x); 

VBS脚本:
Dim tag
Set  tag = HMIRuntime.Tags("tag")
tag.Read 
tag.Write (tag.Value Or &h10)

提问者对于答案的评价:
不是我想要的答案 但是可以单个置位也可以以后拿来参考了

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

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

相关推荐

  • 求助wincc加step7安装包 谢谢

    最新版的吧 问题补充:有没有免注册版的。 最佳答案 STEP 7 V5.6 SP1/STEP 7 Professional&nbs…

    SIMATIC WinCC 2021年7月5日
  • WINCC用户归档做报表,报表上的数据小数点后面有很多位,如何取后面两位?

    我用WINCC用户归档做的报表,报表编辑器用ODBC数据表设定变量采集SQL数据!但采集的数据小数点后面有很多位,比如说压力为0.612344566544,我想取小数点后面两位显示…

    SIMATIC WinCC 2019年6月11日
  • WINCC字体

    请教各位  WINCC软件,在做画面时里面字体不能切换,只有宋体,能不能改成别的字体,怎么改?能否说明一下吗?谢谢! 最佳答案 可以改的。右击要更改的对象—…

    2017年10月24日
  • wincc如何更改在线趋势图中自定义按钮的提示文字

    在线趋势图中可以添加自定义按键,当鼠标放在按钮上是会有提示文字,默认是“用户定义1”,怎么更改提示文字? 最佳答案 选择趋势控件,右键——属性——控件属性——拉动滑动条向下,找到T…

    SIMATIC WinCC 2018年3月6日
  • wincc7.2做报表

    怎么用wincc7.2 做实时报表,能打印的,跪求图文步骤,pdf文件也行呀,各位大神! 最佳答案 如果是要做能查询的报表,可以用页面布局,加打印作业来做,如果是实时数据…

    SIMATIC WinCC 2021年7月5日
  • WINCC问题,如何购买

    WINCC软件如何购买,大概多少钱 最佳答案 软件其实不需要购买,关键是授权 询问西门子工作人员或者西门子代理商 提问者对于答案的评价:ok 专家置评 软件和授权的购买请…

    SIMATIC WinCC 2019年6月11日
  • wincc画面移动

    在wincc里如何实现小车前进,后退,停止的画面? 钻石用户推荐最佳答案 1. 在变量管理中新建一个32位浮点变量。我取的名字是:dXVal;2. 在画面中放一…

    2021年7月5日
  • 两台WINCC与S7200PLC通讯。

    两台WINCC同时与一台S7200PLC通讯OPC(使用KEPSERVER)时,一台WINCC读取到了另外一台会断开,有什么解决办法。若采用一台WINCC通过OPC方式读取另外一台…

    SIMATIC WinCC 2021年7月5日
  • wincc 有变化时更新和周期更新,哪个的系统负荷大?

    wincc 有变化时更新和周期更新,哪个的系统负荷大? 最佳答案 谈不上哪一种方式就一定的系统负荷大。有的变量时刻都在变化,有的变量几分钟内才变一次。对于具体的控制要具体…

    SIMATIC WinCC 2019年6月11日
  • wincc 报警控件ccalwinctrl

    ccalwinctal 在属性里看到这个控件的名字,但是我在控件了没有找到,这个控件怎么用,设备分别报警(1车间,2车间报警分开) 最佳答案 这报警控件估计是组态人员改的…

    SIMATIC WinCC 2021年7月5日