技术论坛

WINCC如何对DB块中的某个字进行操作

作者 主题
侠圣

经验值: 3279
发帖数: 310
精华帖: 8
主题:【求助】WINCC如何对DB块中的某个字进行操作


只看楼主 楼主 2019-07-26 15:11:29


如图我现在相对Motor0.PUTCommand这个字的第一个位进行操作,功能是实现TRUE/FALSE翻转,现在第一次按下为一,之后按下都是一,不知怎么实现,谢谢!


有事联系邮箱 203161926@qq.com
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1575166&b_id=5&s_id=0&num=6

侠圣

经验值: 3279
发帖数: 310
精华帖: 8
回复:WINCC如何对DB块中的某个字进行操作


只看楼主 楼主 1楼 2019-07-26 15:21:23

还有个问题之前有多个相同的画面,为了方便使用变量前缀和后缀来实现画面的控制,现在操作变量由直接连接改为脚本了,改怎么实现以前的功能


有事联系邮箱 203161926@qq.com
以下网友喜欢您的帖子:

  
至圣

经验值: 28602
发帖数: 10825
精华帖: 131
回复:WINCC如何对DB块中的某个字进行操作


只看楼主 2楼 2019-07-26 19:59:38

你用的是or, 那最终当然是对第0位置位了。 


要反转,应该用xor


微信公众号:PLC标准化编程,ZHO6371995
以下网友喜欢您的帖子:

  
版主

经验值: 43597
发帖数: 15780
精华帖: 61
回复:WINCC如何对DB块中的某个字进行操作


只看楼主 3楼 2019-07-26 21:38:04

用if else endif呀!

if (GetTagWord("MOTOR0.PUTconmand") &0x1)

SetTagWord("MOTOR0.PUTconmand",GetTagWord("MOTOR0.PUTconmand")|0xfffe);

else

SetTagWord("MOTOR0.PUTconmand",GetTagWord("MOTOR0.PUTconmand")|0x1);



活到老,学到老!为了生活学习吧!
以下网友喜欢您的帖子:

  
侠圣

经验值: 2078
发帖数: 171
精华帖: 0
回复:WINCC如何对DB块中的某个字进行操作


只看楼主 4楼 2019-07-26 22:59:18

 过来学习一下。


 
以下网友喜欢您的帖子:

  
侠圣

经验值: 3279
发帖数: 310
精华帖: 8
回复:WINCC如何对DB块中的某个字进行操作


只看楼主 楼主 5楼 2019-07-27 09:40:13

按照版主的说法试了下不行




有事联系邮箱 203161926@qq.com
以下网友喜欢您的帖子:

  
侠圣

经验值: 3279
发帖数: 310
精华帖: 8
回复:WINCC如何对DB块中的某个字进行操作


只看楼主 楼主 8楼 2019-07-27 11:34:13

if (GetTagWord("Motor0.PUTCommand")&0x1) 


SetTagWord("Motor0.PUTCommand",GetTagWord("Motor0.PUTCommand")&0xfffe);
else

 //Return-Type: BOOL
SetTagWord("Motor0.PUTCommand",GetTagWord("Motor0.PUTCommand")|0x1);
 正确代码如上



有事联系邮箱 203161926@qq.com
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
WINCC如何对DB块中的某个字进行操作
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。