WINCC画面调用?/

我想做个RESET按钮,按钮调一个画面A,通过A画面中的YES来输出RESET,
 做法如下:1:写按钮C脚本
 #include "apdefap.h"
 void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
 {
 BOOL f;
 LINKINFO lnk;
 char tag[255];

 f = GetLink(lpszPictureName,lpszObjectName,"Operation",&lnk);
 sscanf(lnk.szLinkName,"%[^.]",tag);

 
 SetVisible(lpszPictureName,"OAR-RESET",1); //Return-Type :BOOL 
 SetText("OAR_RESET.pdl","BlockName",tag); //Return-Type :BOOL 
 SetTagChar("OP_RESET_CONTROL",tag); //Return-Type :BOOL 

 }
 2:在A画面
 对YES写脚本
 #include "apdefap.h"
 void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
 {

 
 char tag[255];
 int i,j,n;
 char pic_name[256];
 char obj_name[60];

 strcpy(tag,GetTagChar("OP_RESET_CONTROL"));
 //printf("%c",tag);
 strcat(tag,".OP_RESET");

 SetTagBit(tag,1); //Return-Type :BOOL 
 //SetTagBit("F3B-MUAO1/R.OP_RESET",1);

 // Close window 
 n = strlen( lpszPictureName );

 for ( i = n; i > 0; i-- )
   if ( lpszPictureName[i] == ''.'' )
     {
     strncpy( pic_name, lpszPictureName, i );
     strcpy( obj_name, &lpszPictureName[i+1] );
     for ( j = 0; j < (n-i); j++)
       if ( obj_name[j] == '':'' )
         {
         obj_name[j] = ''\0'';
         break;
         }
     SetVisible(pic_name,obj_name,FALSE);
     break;
     }

 }
 但现在运行点RESET出不来画面
 是不是哪错了?帮忙看看,谢谢了

问题补充:
其中: A就是OAR—RESET

最佳答案

要在主画面(比如叫start.pdl)中插入一个picture window的控件,比如控件名叫PopWindow。该控件连接的图片比如叫popup.pdl。
 1.按钮C脚本中显示该图的脚本就是:
 SetVisible("start.pdl","PopWindow",1);
 2.popup.pdl中关闭窗口的脚本就是:
 SetVisible("start.pdl","PopWindow",0);
 其他你按实际要求编程即可。

 

提问者对于答案的评价:
大家都对的
 

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

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

相关推荐