假设有 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