技术论坛

 回复:单行脚本:让一个按钮翻转一个变量的状态!主要是解决有些朋友问的VBS下的翻转

返回主题列表
作者 主题
Ken(小释)
侠士

经验值:1878
发帖数:285
精华帖:19
楼主    2011-06-10 13:35:59
主题:单行脚本:让一个按钮翻转一个变量的状态!主要是解决有些朋友问的VBS下的翻转 精华帖 
Tag为你想翻转的一个Boolean型变量。
C代码如下
SetTagBit("Tag",!GetTagBit("Tag"));
//得到Tag的值取非,写回去!

VBS代码如下
HMIRunTime.Tags("Tag").Write(Not CBool(HMIRunTime.Tags("Tag").Read))
//得到Tag的值,先转换成Boolean型,再取非,写回去!

说明:VBS里面为什么要多一个步骤CBool()呢?是因为HMIRunTime.Tags("Tag").Read返回的是一个数值,数值的0取反等于-1,数值1取反等于-2。
NOT是一个取反运算!只有操作对象为Boolean型的时候才是取非
Ken(小释)…西门子自动化技术群16182848
划痕
侠圣

经验值:4794
发帖数:2009
精华帖:22
6楼    2011-10-24 16:39:09
精华帖  主题:回复:单行脚本:让一个按钮翻转一个变量的状态!主要是解决有些朋友问的VBS下的翻转
今天才注意到这个帖子,就简单补充一下:
将Boolean量取反输出的C代码严谨的写法如下
SetTagBit("Tag",(short)!(GetTagBit("Tag")));
//得到Tag的值取非,写回去!
而此语句SetTagBit("Tag",!GetTagBit("Tag"));//在编译过程中会出现警告
No discussion, no outcome.
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。