wincc按钮画面调用参数连接

问题:
1、wincc主画面多设备调用同一按钮画面,按钮画面中有启动和停止按钮。
通过C语言设置变量:
#include "apdefap.h"
void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)
{
#define PW_FP    "Top"
#define FP              "1FM"
#define TagPrefix   "DJ01"

if (y>512)
SetTop(lpszPictureName,PW_FP,y-10);
else
SetTop(lpszPictureName,PW_FP,y-10);

SetTagPrefix(lpszPictureName,PW_FP,TagPrefix);
SetPictureName(lpszPictureName,PW_FP,FP);

if (x<640)
SetLeft(lpszPictureName,PW_FP,x-20);               
else
SetLeft(lpszPictureName,PW_FP,x-300);                  
SetPropChar(lpszPictureName,PW_FP,"CaptionText",GetPropChar(lpszPictureName,lpszObjectName,"ObjectName"));  
SetVisible(lpszPictureName,PW_FP,1);

SetText(FP,"StaticTopic",TagPrefix);
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
// next TagID : 1
// WINCC:TAGNAME_SECTION_END
和画面中按钮直接连接变量:_OpenValve1开阀;_CloseValve1关阀
即实现通过变量DJ1__OpenValve1开阀和DJ1_CloseValve1关阀,
好像没有问题?!
2、现在的问题是:现在想采用被调用的画面中如果只通过设置一个按钮置位和复位来控制开阀和关阀,按钮画面中按钮如何用C语言实现变量连接:
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
BOOL Z;
 Z=GetTagBit("TAG");
 if(Z==0) SetTagBit("TAG",1); 
else 
SetTagBit("TAG",0); 
中TAG如何设置?需要添加那些语句函数?

请专家或高手指导。

问题补充:
关于问题2中,被调用按钮有3个,
第1组调用对应变量:m1_start_stop;m2_start_stop;m3_start_stop
第2组调用对应变量:m4_start_stop;m5_start_stop;m6_start_stop
第3组调用对应变量:m7_start_stop;m8_start_stop;m9_start_stop
如何实现变量传送?

谢谢!

最佳答案

这个,有两种方法可以实现。
1、建立项目函数,并在项目函数里面建立全局变量,实现变量参数的传递。这个比较麻烦,不再详述。
2、这个方法是通过建立一个内部8位文本型变量Tag1,用来传递变量参数,这个比较容易实现。具体步骤如下:
a、在打开需要调用的画面的按钮里面加上以下脚本:SetTagChar("Tag1","Start_Stop"); Start_Stop是变量名称,即为控制阀门开启和关闭的BOOL变量名称。现在变量Tag1的内容是“Start_Stop”;
2、在公共画面中建立一个按钮,写上如下脚本:
char *st;
int a;
st=GetTagChar("Tag1");
a=GetTagBit(st); 
a=!a;
SetTagWord(st,a);
该脚本即可实现变量“Start_Stop”的翻转。

注意:再点击烦阀门弹出控制画面之前,务必按照步骤1将该阀门的实际变量写到Tag1中去。此外,需要注意的是,此画面不再需要变量前缀。

补充说明:如果变量不多的的话,完全可以参考上述方法,建立三个内部字符型变量,然后将你需要操作的三个变量名称写进这三个内部变量里面就可以了!

提问者对于答案的评价:
谢谢!
不是我要的答案。
你回答的是,单次调用画面。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年11月18日
下一篇 2017年11月18日

相关推荐

  • WINCC VBS脚本中的命令过程

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

    SIMATIC WinCC 2019年6月11日
  • 授权管理器问题

    我刚刚安装了S7-300和WINCC6.0两个软件,之后安装了授权可是再次重启开机后,可是打不开授权管理器(我想删除几个授权)提示“受访问保护”通过多个途径依然打不开,请问大侠我现…

    SIMATIC WinCC 2019年6月11日
  • wincc输入输出域回读

    wincc我在输入输出域中输入数值,想下次启动的时候是我上次输入的数,不需要我在重新输入数值 问题补充:不太明白,能举例说的详细一点吗?我用的是仿真器,我在不重新启动仿真器的情况下…

    SIMATIC WinCC 2021年7月5日
  • MP277 触摸屏有没有三色指示灯

    MP277 触摸屏有没有三色指示灯 ,第一种状态是显示灰色,执行一种状态显示绿色, 执行另外一种状态显示红色 最佳答案 没有直接集成好的。自己可以叠加…

    SIMATIC WinCC 2021年7月5日
  • wincc许可证过期

    弹出窗口您的软件许可证已过期。点击详细资料,有2条信息:1.A9WRT?0602 没有安装 simatic wincc RT(runtime…

    SIMATIC WinCC 2019年6月11日
  • wincc 画面多重嵌套调用

    我设置了一个主画面,该主画面中有一个菜单栏和一个主画面窗口,主画面中画面窗口中还有一个小的画面窗口通过主画面菜单栏按钮调用各种小画面,请问如何写脚本实现该功能。 图片说明: &nb…

    2021年7月5日
  • wincc7.2在win764 上安装的问题

    我在装wincc7.2 到sql的时候  出现  试图加载格式不正确的程序。 (异常来自 HRESULT:0x…

    SIMATIC WinCC 2017年11月26日
  • 报表编辑器的标题问题

    我用报表编辑器做了一个布局,自己做了一个表头,如时间,压力,温度等等,下面跟的是ODBC数据表,当我查询数据时,在一页范围内时,打印时有表头,有表格数据,但是如果数据量多时,分了好…

    SIMATIC WinCC 2019年6月11日
  • wincc 7.3双击安装文件.exe后,弹出对话框,无法完成安装

    wincc 7.3双击安装文件.exe后,弹出对话框,无法完成安装 问题补充:with a valid signature was…

    2021年7月5日
  • WINCC 压缩归档的问题

    1,这个压缩归档什么意思,干什么用的,和过程值归档有啥区别,2,过程值归档 存储位置 设为硬盘  和主内存啥区别,数据记录大小100是记录的…

    2021年7月5日