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

例如外部变量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模拟量报警值批量修改?

    用WINCC做模拟量报警,比如一个温度,用户要求可以在界面上修改报警的设定温度值 (要弹出对话窗口,而且量很大,假设有1000个模拟量),请教如何实现?1,如果修改值返回…

    2017年6月3日
  • WinCC不激活

    点击激活按钮,一闪,瞬间就返回,激活不了。请问能有几种原因,WinCC卸载重装还是不行,请高手指点。着急啊! 问题补充:没有中文 最佳答案 重装WINCC前要重装系统. 提问者对于…

    SIMATIC WinCC 2019年6月11日
  • winCC报警消息画面显示问题

    1.想问一下大家报警变量都是如何处理的,大概思路是什么(做了报警组态,然后在控件里显示,然后有做一个文本域,当报警出现的时候,弹出来,点击确认?那报警控件里还要确认一遍?)2。因为…

    SIMATIC WinCC 2021年7月5日
  • wincc显示控制问题

    各位大哥,我想在WINCC画面中,通过一个标准对象如“矩形或圆的颜色的变化显示’多个‘报警信息”,比如风机1、风机2、风机3等等的故障、也就是任何一个风机故障,这个标准对象都能反映…

    SIMATIC WinCC 2019年6月11日
  • wincc 按照时间查询数据

    在wincc 想通过时间条件来查询,通过 data time picker控件获取系统时间,或者是通过脚本将系统时间赋值给了一个内部变量。然…

    2021年7月5日
  • wincc abb通讯

    现在我要实现wincc 6.2  与ABB公司的AC500 通过以太网通讯,通过ABB OPC可以实现,我想通过通道的形式实现,就…

    SIMATIC WinCC 2019年6月11日
  • wincc v6.0 sp3

    请问哪里可以下载wincc v6.0 sp3,急用!谢谢! 最佳答案 用迅雷下载ed2k://|file|MS_SQL2000_SP3a.iso|7225610…

    SIMATIC WinCC 2019年6月11日
  • 关于上位机冗余的问题

    上位机冗余是怎么实现的,和平常所说的操作员站和工程师站的区别是什么?请大侠们具体解释一下,最好能给小弟点资料 最佳答案 上位机冗余的实现是通过两套相同的系统配置通过光纤连接同步进行…

    SIMATIC WinCC 2019年6月11日
  • wincc读取数据不稳定如何解决

    从PIC1500中用AS读取一个模拟量,该模拟量是在PLC程序的DB数据块中,是一个可调节阀门的开度,在PLC中该阀门开度稳定是一个常值,但是在wincc中变量是不稳定的,由常值突…

    SIMATIC WinCC 2017年6月8日
  • WINCC 变量归档疑问

    利用WINCC 采集一个速度和4个压力信号,做了变量归档,采用在线趋势控件进行曲线显示。在调试过程中发现四个压力信号在WINCC关闭时也在进行记录。而速度信号在WINCC…

    SIMATIC WinCC 2017年12月9日