假设有tagtag1tag2tag34个二进制变量当tag为1的时候画面切换开启
当tag为1tag1也为1的时候打开画面1
当tag为1tag2为1的时候打开画面2
当tag为1tag3为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全局脚本:
#defineTag_1"tag"
#defineTag_2"tag1"
#defineTag_3"tag2"
#defineTag_4"tag3"
IF((unsignedlong)GetTagDouble(Tag_1)&(unsignedlong)GetTagDouble(Tag_2))
SetTagWord("mytag",1);
IF((unsignedlong)GetTagDouble(Tag_1)&(unsignedlong)GetTagDouble(Tag_3))
SetTagWord("mytag",2);
IF((unsignedlong)GetTagDouble(Tag_1)&(unsignedlong)GetTagDouble(Tag_4))
SetTagWord("mytag",3);
全局脚本触发变量为你的4个bool变量。
wincc画面窗口c脚本:
#defineTAG_1"mytag"
//WINCC:TAGNAME_SECTioN_END
//WINCC:PICNAME_SECTION_START
//syntax:#definePicNameInAction"PictureName"
//nexTPicID:1
//WINCC:PICNAME_SECTION_END
staticdoublelimitValue[2]={1.00000000000000,2.00000000000000,};
staticchar*value[3]={"3#炉冷渣机调整.PDL","3#炉冷渣调整.Pdl","3#炉冷渣调整.Pdl",};
returnvalue[Check_LimitsD(GetTagDouble(TAG_1),3,&limitValue[0])];