当前位置: 主页 > PLC控制

求助WINCC画面自动切换

假设有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])];

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

  • 关注微信

猜你喜欢

微信公众号