自动切换画面的脚本问题

我用了一个按钮,按钮是On_Off_2(图库里面的:\全局库\Operation\Toggle Buttons\)
我想要达到的功能是,点击按钮,位变量取反一次,同时切换画面。
在按钮原有的脚本基础上做了修改,如下
{

BOOL value;
LINKINFO plink;

PDLRTGetPropEx(0,lpszPictureName,lpszObjectName,"Toggle",VT_BOOL,&value,NULL,NULL,0,NULL,NULL);

if(value) OpenPicture("MAN.PDL"),value =FALSE ; //Return-Type: void 

else OpenPicture("AUTO.PDL"),value = TRUE ;

PDLRTGetLink(0,lpszPictureName,lpszObjectName,"Toggle",&plink,NULL,NULL,NULL); //Rueckgabe-Typ :BOOL 

if (plink.LinkType >2) return;
else SetTagBit (plink.szLinkName,(short int) value);}
其中改动部分添加了OpenPicture("MAN.PDL"), 和OpenPicture("AUTO.PDL"),
运行时的问题,点击按钮,位变量取反,再点击一次,切换画面,如此反复。我两个画面放的按钮是同样的,是经过复制的。如果人为的通过其他按钮将位变量先取反,则直接切换画面。
如果在语句中将两个切换的画面互换位置,则除点击按钮的第一次可能会先将位变量取反外变为1外,后面点击按钮都只做画面切换,位变量始终为1。
请各位看一下是什么原因,谢谢!

最佳答案

你这个太复杂了,我看不懂耶,不如自己做个简单的c脚本
 在你的man.pdl画面上切换按钮的鼠标动作c脚本:
 SetTagBit("NewTag",!GetTagBit("NewTag"));
 OpenPicture("AUTO.PDL");

 在你的auto.pdl画面上切换按钮的鼠标动作c脚本:
 SetTagBit("NewTag",!GetTagBit("NewTag"));
 OpenPicture("MAN.PDL");

 NewTag就是你需要1-0变化的标签。

提问者对于答案的评价:
谢谢这位朋友,你的脚本可以在普通的按钮上使用,我使用的库里的按钮还是不行。打电话到西门子的热线,西门子热线的工程师告诉我要把打开画面的脚本放到后面,然后我做好了。谢谢西门子技术热线的工程师

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

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

相关推荐

  • wincc重启后 io域原设定值如何保存

    wincc和tdc通讯,在wincc重启后,io域中的设定值丢失,如何能保证在wincc重启后原设定值保持不变 问题补充:内部变量丢失是怎么回事?两台卷取机用两套tdc控制,在wi…

    SIMATIC WinCC 2019年6月11日
  • Datamonitor安装问题

    下了个Datamonitor,安装的时候出现了完全求认识的介面,各各都点过去也不知道那个是安装,是不是这个软件下得有问题,请高手指导下。或者是谁有能安的发下我邮箱。下面有张图 图片…

    2018年12月6日
  • WinCC flexible SMART V3跟wincc V7.3版本的兼容问题

    WinCC flexible SMART V3跟wincc V7.3版本的兼容问题,这两个软件装一台电脑是否存在兼容性问题,电脑系统是win…

    SIMATIC WinCC 2021年7月5日
  • 广域网访问webnavigator

    局域网已经可以访问web navigator server,怎么通过外网访问web navigator server啊,据说,在路由器上设置…

    SIMATIC WinCC 2019年6月11日
  • wincc登陆如何判断登陆成功

    #pragma code ("UseAdmin.DLL") #include "pwrt_api.h&quot…

    SIMATIC WinCC 2019年6月11日
  • WINCC VBS脚本中的命令过程

    在WINCC V6.2中,利用VBS可以创建过程,函数等,其中有一种叫‘命令过程’(command procedure)的,什么时候会用到啊?根一般过程有啥区别…

    SIMATIC WinCC 2019年6月11日
  • 博途软件上传功能

    我们知道现在使用博途V13 组态的触摸屏不支持上传,V14版本的支持上传吗?如果不支持,又没有源程序,怎么办?又没有备份。即使备份了假如我要添加一些画面怎么办?什么时候可…

    SIMATIC WinCC 2017年6月10日
  • 结构变量的问题

    我想在已有的结构变量中修改或添加新的元素,可是提示为只读(新建元素里为灰色),请问各位师傅要如何做?谢谢!(WINCC V6.2的) 最佳答案 可以利用WinCC组态工具…

    SIMATIC WinCC 2019年6月11日
  • wincc中的数据位的问题

    我是一个新手,刚接触到WINCC,现有一个问题想请教一下,我有个数据需要累计流量 ,但是这个流量只会累积到16777216就停止了,不会再往上加了,好像是24位的样子,这…

    SIMATIC WinCC 2017年11月29日
  • wincc opc通讯问题

    vb编程做客户端,wincc做服务器。OPC通讯连不上,后发现opc wincc 连wincc都不通。发现好象是电脑不通。DCOM已配置(可能没配对)两台电脑都…

    SIMATIC WinCC 2019年6月11日