求助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脚本该怎么写 。

最佳答案

定义一个wincc内部int变量mytag,tag为1,tag1为1,mytag=1;tag为1,tag2为1,mytag=2;tag为1,tag3为1,mytag=3;否则mytag=0。wincc主画面用画面窗口,显示的画面名称的属性用动态对话框链接mytag,为1显示画面1,为2显示画面2,为3显示画面3.
wincc全局脚本:
#define Tag_1 "tag"
#define Tag_2 "tag1"
#define Tag_3 "tag2"
#define Tag_4 "tag3"
IF ((unsigned long)GetTagDouble(Tag_1)&(unsigned long)GetTagDouble(Tag_2)) 
SetTagWord("mytag",1);
IF ((unsigned long)GetTagDouble(Tag_1)&(unsigned long)GetTagDouble(Tag_3)) 
SetTagWord("mytag",2);
IF ((unsigned long)GetTagDouble(Tag_1)&(unsigned long)GetTagDouble(Tag_4)) 
SetTagWord("mytag",3);


全局脚本触发变量为你的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])];

提问者对于答案的评价:
老是编译错误

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 下午1:42
下一篇 2021年7月5日 下午1:42

相关推荐

发表回复

登录后才能评论