wincc组合框脚本
❶ 怎么学习wincc C脚本求建议
其实这个想法是可以实现的,但是大部分人不会这样搞。你可以这么做:
创建一个全局脚本,一个中间变量D。
全局脚本判断A的值,然后根据不同情况把B或者C的值给D
IO域连接D的值就行了。
还有一种方法:
使用Setlink函数可以动态的连接IO域的输出。我们尝试过
❷ WINCC 脚本高手进。。。。。。
SetVisible(lpszPictureName,"PIC",0);
给你说下原理吧
公用一个画面窗口,建立一个
公用一个比如电机启停画面,建立一个
在电机启停画面里面的变量只填后缀
你说的情况为 复制按钮只需改变标题名就能弹出相应的电机画面
这种情况下,脚本大体思路为,读取本对象(按钮)的标题(或文字)赋给画面窗口的“画面”属性或变量前缀,你这个的画面窗口名是PIC不需要赋,直接赋给“变量前缀”属性
❸ wincc中脚本代码问题
延时一般都用空循环完成,不过好像时间太长会出问题。你说的这个问题好像不是延时能解决的,你应该用一个全局变量bool型的作为标志,最先执行的那个c动作里将语音播放完毕后,该全局变量置位,其他后来发生的报警触法的C动作才执行播放语音的代码。
❹ WINCC画面编辑器的组合框(不是复选框)用C脚本实现下面功能:选择不同的项,赋予同一个变量不同的值。
BOOL a;
a=GetTagBit("db8.dbx0.0"); //db8.dbx0.0须换成变量表的原变量.
if (a=0)
{
if(MessageBox(NULL,"真的要转换到暂存罐吗?","操作提示",MB_YESNO|CONQUESTION|MB_SETFOREGROUND|MB_SYSTEMMODAL) ==6)
{SetTagBit("db8.dbx0.0",1);}
}
else
{
if(MessageBox(NULL,"真的关闭到暂存罐吗?","操作提示",MB_YESNO|CONQUESTION|MB_SETFOREGROUND|MB_SYSTEMMODAL) ==6)
{SetTagBit("db8.dbx0.0",0);}
}
}
1.组合框不同的项赋予同一个变量
❺ wincc 中C脚本
char buf[255];
sprintf(buf,"%f",GetTagFloat("Float_Input")); //Return-Type: float
SetTagChar("Char_Input",buf); //Return-Type: BOOL
❻ 用wincc组合框调用变量显示数据
用我的不太简洁的办法试一下吧,见笑了!
输出用以下C脚本
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
// next TagID : 1
#define TAG_1 "testINT"
#define TAG_2 "testREAL"
// WINCC:TAGNAME_SECTION_END
// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
// next PicID : 1
// WINCC:PICNAME_SECTION_END
if (TAG_1 ==1){
return (1.2); //Return-Type: BOOL
}
if (TAG_1 ==2){
return (2.2); //Return-Type: BOOL
}
if (TAG_1 ==4){
return (3.2); //Return-Type: BOOL
}
if (TAG_1 ==8){
return (4.2); //Return-Type: BOOL
}
}
或者用下面的
if (TAG_1 ==1){
SetTagFloat(TAG_2 ,1.2); //Return-Type: BOOL
}
if (TAG_1 ==2){
SetTagFloat(TAG_2 ,2.2); //Return-Type: BOOL
}
if (TAG_1 ==4){
SetTagFloat(TAG_2 ,3.2); //Return-Type: BOOL
}
if (TAG_1 ==8){
SetTagFloat(TAG_2 ,4.2); //Return-Type: BOOL
}
return (TAG_2); //Return-Type: BOOL
}
testINT 是组合框连接的变量内部无符号1位;
testREAL是31位浮点数
1.2替换成你的变量第一个压力值
2.2替换成你的变量第二个压力值
3.2替换成你的变量第三个压力值
4.2替换成你的变量第三个压力值
我测试过了可以编译过
❼ wincc怎么打开新窗口
方法1:工程框架:通过【组合框】实现多画面切换主要控件:ABC.PDLOPP.PDLMAIN.PDL组合框画面窗口在main.pdl中添加【组合框】,【画面窗口】;右击【组合框】》属性》其他》选定框、选定文本(修改成1-ABC,2-OPP);》事件》其他》选定文本》直接连接》画面窗口的【窗口名称】激活运行,就可以了。方法2:用脚本实现:VBS:DimzhkSetshk=screenitems(“组合框”)IfZhk.seltxt=”选项1文字”ThenHMIRuntime.BaseScreenName=”画面名称”Endif
❽ 关于WINCC中的一个脚本解释
DWORD
j;
//定义一个DWORD变量
J
j=GetTagWord("Tag3");
//注:Tag3=DB10.DBW4,将DB10.DBW4的值送入J
if((j&0x1)==0x1)SetTagBit("P9run",1);
//如果J的第一位等于1,那么P9run=1,否则P9run=0
else
SetTagBit("P9run",0);
DBW的16个位通过(j&0x1)==0x1)这句语句来定位,通过与1,2,4,8,16……作与操作来判断每个位的状态。
❾ 如何在WinCC中调用脚本程序
wincc的脚本程序分两种:
局部脚本,针对控件或对象的某个属性的脚本,写在控件的属性中。
全局脚本,作为背景程序运行。在全局脚本编辑器中编写,需要指定触发器。
❿ wincc脚本自动运行
要背后自动运行,那么在全局脚本中添加,要输入输出域中执行,那么在输入输出的事件属性中添加。