自动切换画面的脚本问题

我用了一个按钮,按钮是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

相关推荐

  • Smart 700 IE V3 可以用U盘更新OS吗?

    Smart 700 IE V3除了操作手册上说的用USB/PPI和以太网这两种方式更新OS之外,还有其它方式吗?比如说用U盘可以吗?或者其它的,因为现…

    SIMATIC WinCC 2021年7月5日
  • wincc 全局脚本VBS,访问画面中对像的属性

    wincc中实现水流动化,通过按钮已经可以实现水流的动画了,但是我是要一个变量触发后,流动对像直接显示并且流动。多次尝试也没成功,把按钮内的脚本放到打开画面和全局脚本内都没反应。不…

    2017年6月9日
  • mp277 10寸 触摸屏传输设置问题

    我们用的mp277 10寸的触摸屏 传输的时候忘记调用 stopruntime函数现在怎样才能进入传输界面呢 问题补充:重新上电后,直接进入&nbsp…

    SIMATIC WinCC 2017年11月12日
  • 基于PC的wincc组态画面连接问题

    wincc画面设计好连接完PLC变量,仿真后报如下图1的错误,双击错误出现如图2的状况请问如何解决 图片说明:       最佳答案 PC&…

    2021年7月5日
  • 请教关于WinCC项目集成到STEP7项目的问题

    技术论坛没有人回答,我到找答案来请教这几个关于WinCC项目集成到STEP7项目的问题   1.集成前,现有WinCC项目已建好了很多变量,是否需要删…

    SIMATIC WinCC 2017年12月8日
  • WinCC读取date_and_time数据

    请教:两个问题1、仿真显示的时间与实际时间差了8个小时,是因为时区的问题吗?该如何修改?2、WinCC该怎样读取date_and_time的BCD码数据,并通过I/O域显示? 图片…

    2021年7月5日
  • wincc 8位字符集

    wincc中8位字符集文本变量是干什么用的,详细点 问题补充:那如果我想建立一个实时显示时间的I/O域,就必须建立一个这样类型的的变量吗?还有就是它与16位的字符集文本变量的区别是…

    SIMATIC WinCC 2017年11月29日
  • 请问下面Wincc读取10个S7-300PLC的方案是否可行?

    请问如下方案是否可行??1,有10台S7-312控制的设备2,其中4台带MP277触摸屏3,我用wincc的mpi通道添加10个PLC,读取里面的数值,在wincc界面上显示出来。…

    SIMATIC WinCC 2019年6月11日
  • wincc 使用者权限问题

    求助:电脑重新安装Windows XP的作业系统,及Wincc的程序无法开启问题? 图片说明:    最佳答案 登陆的用户组不对,请选择Adminis…

    2017年12月7日
  • MP277的OS更新

    你好,想问一下,MPP277在OS更新的过程中出现过断电,再次开启触摸屏上就显示 Bootloadr MP277-10 TOUCH Vers…

    SIMATIC WinCC 2019年6月11日