欢迎来到西门子工业支持中心网站!
欢迎来到西门子工业支持中心网站!
悬赏:5西币 | 解决时间:2016-02-22 11:52
产品版区:
SIMATIC WinCC
黎明之希
假设有 tag tag1 tag2 tag3 4个二进制变量 当tag为1的时候画面切换开启
当tag为1 tag1也为1的时候打开画面1
当tag为1 tag2为1的时候打开画面2
当tag为1 tag3为1的时候打开画面3
当tag为0的时候画面自动切换关闭
求助老师这个C脚本该怎么写 。
小程序:
最佳答案
全局脚本触发变量为你的4个bool变量。
wincc画面窗口c脚本:
#define TAG_1 "mytag"
// WINCC:TAGNAME_SECTION_END
// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
// next PicID : 1
// WINCC:PICNAME_SECTION_END
static double limitValue[2] = {1.00000000000000,2.00000000000000,};
static char* value[3] = {"3#炉冷渣机调整.PDL","3#炉冷渣调整.Pdl","3#炉冷渣调整.Pdl",};
return value[Check_LimitsD (GetTagDouble (TAG_1), 3, &limitValue[0])];
回答者:
zhangli0
回答时间:2016-02-22 09:29
提问者对于答案的评价:
老是编译错误
我说个另类的的方法吧:
1、在主画面上放一个IO域(正式运行的时候可以把这个IO域设置为隐藏),属性中的output value设置为动态对话框,表达式为''tag''*(''tag1''+10*''tag2''+100*''tag3''),并把data type设置为direct(直接);在主画面上放一个picturewindow用来装载你要切换的画面,名字就是默认的Picture Window1,三个要切换的画面就是NewPdl0.Pdl,NewPdl1.Pdl,NewPdl2.Pdl
2、然后在这个IO域的事件中的property topics下面找到output value的change事件,用以下c脚本即可实现画面的自动切换:
int d1;
d1=GetPropWord(lpszPictureName,"I/O Field8","OutputValue"); //Return-Type: double
switch(d1)
{
case 1:
SetPropChar(lpszPictureName,"Picture Window1","PictureName","NewPdl0.Pdl"); //Return-Type: BOOL
break;
case 10:
SetPropChar(lpszPictureName,"Picture Window1","PictureName","NewPdl1.Pdl"); //Return-Type: BOOL
break;
case 100:
SetPropChar(lpszPictureName,"Picture Window1","PictureName","NewPdl2.Pdl"); //Return-Type: BOOL
break;
}
现赠您1张1847体验会员卡,可免费领取,畅学1847会员内容,是否领取?
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!