用c写得取反按钮,但有些问题,请高手指点

按钮变量是aaa,想做一个每次点击都取反的功能,c代码如下:
int a;
a=GetTagBit("aaa"); //Return-Type: BOOL 
SetTagBit("aaa",(!a)); //Return-Type: BOOL 

但编译不同过,提示SetTagBit("aaa",(!a));该行有问题,我也试过SetTagBit("aaa",(1-a));但是也不行,请大家指点!

最佳答案

你的方法也没有错,只是编译的时候有警告而已,不会影响运行!也可以试试这个,但同样会有警告,可以执行。
 SetTagBit("aaa",(1-GetTagBit("aaa")));

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

专家置评

因为数据类型不符所以警告。在(!a)前加入(short int)进行数据类型的强制转换就OK了。
 int a; 
 a=GetTagBit("aaa"); //Return-Type: BOOL 
 SetTagBit("aaa",(short int)(!a)); //Return-Type: BOOL 

 

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

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

相关推荐

  • 如何在博途上组态PC并将项目在PC上运行

    1.请问如何在博途上组态常规PC?2.组态完成后如何将项目转化为可执行文件在实际PC上运行?3.完成该操作需要具备什么条件,以及需要安装什么软件?我电脑目前已经安装了博途V16包括…

    SIMATIC WinCC 2021年7月5日
  • PLCSIM仿真问题

    我在使用PLCSIM对WinCC和PLC进行仿真的时候,WinCC上可以检测到二进制变量的开关状态,但是WinCC却不能改变PLC上二进制变量的状态。这是为什么? 最佳答案 楼主你…

    SIMATIC WinCC 2019年6月11日
  • 西门子产品选型(集中控制)

    有一个工程,把现场的仪表信号采集到一个集中的地点(设备)进行处理 显示 控制,如果选用西门子产品,大概要选用那些设备 ,什么样一个方案可行?(约100…

    2017年7月30日
  • 语言切换按钮图标的显示

    我做了个按钮作为语言切换,默认是中文,按下图标后切换为英文;如图1所示,按钮“未按下”时是英国国旗图标,按钮“按下”时选的中国国旗图标。如图2所示,事件我选的是“单击”和“语言切换…

    2021年7月5日
  • wincc归档数据导出

    本人用wincc6.0,想将过程值归档中的数据没隔一段时间(如一天)自动生成EXCEL2003文件,方便查看,请高人指点。 最佳答案 请参阅: winCC高级培训&nbs…

    SIMATIC WinCC 2019年6月11日
  • wincc中用vb查询数据库

    想生成月报表,在图片编辑器中组态了两个输出域,定义两个内部变量年和月, data17=HMIRuntime.tags("年").readdata16=…

    SIMATIC WinCC 2018年12月14日
  • WinCC v6.2 ASIA的运行

    WinCC v6.2 ASIA版本运行之后,我在进入图形编辑器的时候,会出现Unkown VBA error;error code…

    SIMATIC WinCC 2019年6月11日
  • 用C语言写单击脚本,使得点击水泵图元的时候需要管理员权限才能进入画面。

    功能如下,在一次运行图中有水泵的图元,单击水泵可以进入控制界面,同时需要在登录管理员的情况下才能进入,未登录的情况下会弹窗提示权限不够。char* userlevel;u…

    SIMATIC WinCC 2021年7月5日
  • WINCC画面中输出框中显示数值是星号

    WINCC画面中输出框中显示数值是星号?是什么原因啊?怎么样让它能正确的显示?谢谢大家能解答一下。 最佳答案 你的数值超出了显示范围,比如你选择的整数部分是3位,而实际信号是4位整…

    SIMATIC WinCC 2019年6月11日
  • 定时触发

    Dim objTag,objset Dim tttt tttt = Time   ‘系统时…

    SIMATIC WinCC 2019年6月11日