wincc里怎样用一个按钮给一个公共画面传递结构体变量

2024-12-15 20:41:28
推荐回答(4个)
回答1:

方法:
1。创建一个按钮,一个输入/输出域,建立一个二进制内部变量:ceshi。

2。对输入/输出域组态。在“对象属性”对话框的“属性”--》“输入/输出”中的输出值与变量ceshi想连接。(直接右击灯泡,选择变量,再选择ceshi)。

3。对按钮组态。在“对象属性”对话框的“事件”--》“鼠标”--》“按左键”处为该按钮组态一个C动作。输入以下代码:
#include "apdefap.h"
void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)
{

SetTagWord("ceshi1",1);
}

4。再在“释放左键”处组态一个C动作,只需将上面代码中的“1”该为“0”即可。

5。运行WINCC测试,在输入/输出域中可以看见,每次按下按钮时,便给变量赋值“1”。完成。

回答2:

1、定义结构变量类型,然后根据这个自定义类型来定义几个要用的结构变量,这个你应该懂的
比如pic1301.auto,pic1301.man,,,,pic1309.auto,pic1309.man
这是两个结构变量,每个结构变量包括了auto和man两个元素
2、定义一个弹出画面用的pdl文件,里面用到的变量要填成auto和man,不能带前缀
3、在主画面上定义若干个pictruewindow,里面装载的就是上面定义的pdl文件
注意画面属性的Prefix属性要填写不同的前缀,比如.pic1301或者.pic1309
4、在不同的按钮或者对象的click事件里面写脚本分别让这些pictruewindow显示出来就行了。
当然有些细节没法一一道来,建议你去买本或者下载《wincc6从入门到精通》

回答3:

将该按钮的名称改为你的结构变量的名称,假设你的公共窗口名称为YB,通过C动作实现你的要求
SetVisible(lpszPictureName,"YB",0);
SetTagPrefix(lpszPictureName,"YB", lpszObjectName); //Rückgabe-Typ :BOOL
SetVisible(lpszPictureName,"YB",1);

回答4:

同意楼上的,通过按钮动作改变变量为PDL前缀赋不同的值,是否可以再简单一些?