WinccV7.3 c脚本,同一个按钮根据登录用户不同执行不同的操作
182.WinccV7.3 c脚本,同一个按钮根据登录用户不同执行不同的操作
今天晚上在群上看到有一个网友问起过在wincc中如何实现同一个按钮,如果是用户1点击就退出wincc项目程序,如果是用户2点击就退出用户程序并关机。
单独的退出wincc和单独的关机脚本,都可以使用向导来自动生成,根据用户不同执行不同的操作,无非就是加上条件判断而已,其实还是很好实现的。
新建一个wincc项目,新建两个用户user1和user2,给项目属性设定登录快捷键ctrl+L。
新建一个画面,画面上放置一个按钮,在按钮的鼠标点击事件中添加以下c脚本:
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
char *username=GetTagChar("@CurrentUser");
if(strcmp(username,"user1")==0)
DeactivateRTProject ();//退出wincc
if(strcmp(username,"user2")==0)
DMExitWinCCEx (DM_SDMODE_POWEROFF);//退出wincc并关机
}
保存运行,就可以看到效果了。
从这个练习可以看出,尽管编辑时定义的用户是User1和User2,但实际上登录后@CurrentUser得到的还是user1或者user2,全部都是小写字母。
此外比较两个字符串是不是一致,这里使用了strcmp函数。
开始我想当然的用==来判断是不是一致,结果始终不对,看来还是学艺不精啊。
WINCC基本的画面C脚本
WINCC基本的画面C脚本对于刚刚学习WINCC的人,希望有用。
SetVisible函数是用来执行是否显示的函数。
lpszPictureName:表示当前画面lpszObjectName:表示当前对象SetVisible(lpszPictureName,lpszObjectName,0); //Return-Type :BOOL以上面函数为例。
假如你点击一个按钮,代码如上,则点击后按钮隐藏。
同理,SetVisible(lpszPictureName,"@ERROR",FALSE)表示当前画面上有一个名称为"@ERROR"对象,将其隐藏。
FALSE或者0都可以。
Set_Focus(lpszPictureName,"@LoginIn");次函数表示将光标重新聚焦到当前画面中,名称为“@Loginin”对象中,比如一个输入域。
修改变量前缀————SetPropChar(lpszPictureName,"PW","Tagprefix","F40708.") ;重设画面窗口的画面名称————SetPictureName(lpszPictureName,"PW","P1_FFU.pdl");SetVisible表示可见度———SetVisible(“画面名称”,“对象名称\画面窗口”,1或0);——利用画面窗口显示画面1 OpenPicture("index.Pdl"); 打开“index.Pdl”画面;————(middle*为画面窗口)SetPictureName("index.Pdl","middle","CR.Pdl"); 使“CR.Pdl”画面在“index.Pdl”中“middle”画面窗口中打开SetPictureName("index.Pdl","middle9","lift2.Pdl");使“lift2.Pdl”画面在“index.Pdl”中“middle”画面窗口中打开#pragma option(mbcs)2.单个设备的控制面板(不唯一):P1_FFU.pdlSetVisible( lpszPictureName,"PW",0);表示当前画面上有一个名称为"PW"对象,将其隐藏。
wincc常用C脚本
1.用户注销:#pragma code ("useadmin.dll")#include "PWRT_api.h"#pragma code()PWRTLogout();2.用户登录:#pragma code ("useadmin.dll")#include "PWRT_api.h"#pragma code()PWRTLogin('c');3.关闭项目并退出wincc:ExitWinCC ();4.退出运行到wincc资源管理器:DeactivateRTProject ();按钮变三种颜色#include "apdefap.h"long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) {#pragma option(mbcs)if(GetTagWord("TX/ZSH001")==1)return 0x0000ff00;elseif(GetTagWord("TX/ZSL001")==1)return 0x000000ff;elsereturn 0x00c0c0c0;}一个调用按钮变色#include "apdefap.h"long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) {#pragma option(mbcs)if(GetTagWord("NewTag")==0)return 0x0000ff00;elsereturn 0x00ffffff;}5.结束监控并关闭计算机(会弹出确认对话框)HWND hWnd = NULL;//Author:Smartsysint iRet;hWnd = FindWindow(NULL,"WinCC-运行系统 - ");iRet=MessageBox(hWnd,"结束监控并关闭计算机","关闭操作站",MB_YESNO|MB_ICONWARNING|MB_APPLMODAL);if(iRet==IDYES)DMExitWinCCEx (DM_SDMODE_POWEROFF);6.点击事件弹出对话框,通过点击弹出对话框的确定和取消按钮实现对变量的置位或取消: int r;r=MessageBox(NULL, "YES为开,NO为关", "确定开命令:", MB_YESNO |MB_SYSTEMMODAL); if (r==IDYES)SetTagBit("TAGNAME",TRUE);elseSetTagBit("TAGNAME",FALSE);7.开显示关显示:(要在内部变量中建立三个二进制变量COLSE_DISPLAY、DISPLAY_NO和DISPLAY_COMMENT)// Funktion: Bit in Doppelwort setzen;if (GetTagBitWait("COLSE_DISPLAY")==1 ){SetTagBit("COLSE_DISPLAY",0);SetTagBit("DISPLAY_NO",0); //Return-Type: BOOLSetTagBit("DISPLAY_COMMENT",0);}else{SetTagBit("COLSE_DISPLAY",1);SetTagBit("DISPLAY_NO",1); //Return-Type: BOOLSetTagBit("DISPLAY_COMMENT",0);}8.开阀确认:BOOL a;a=GetTagBit("30T制水启动"); //Return-Type :short intif (a==0){if(MessageBox(NULL,"真的要启动制水吗?","操作提示",MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND|MB_SYSTEMMODAL) == 6){ SetTagBit("30T制水启动",1);//Return-Type :BOOL}}else{if(MessageBox(NULL,"真的要停止制水吗?","操作提示",MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND|MB_SYSTEMMODAL) == 6){ SetTagBit("30T制水停止",1);}}9.将WinCC运行画面最小化HWND WinCCHwnd;WinCCHwnd=FindWindow(NULL,"WinCC-Runtime - "); //如果运行语言为英文if (WinCCHwnd==0) WinCCHwnd=FindWindow(NULL,"WinCC-运行系统 - "); //如果运行语言为中文CloseWindow(WinCCHwnd);10.显示或不显示(其中hiddVtext为内部的二进制变量)if(GetTagBit("hiddVtext")==0) //Return-Type: BOOL{SetTagBit("hiddVtext",TRUE); //Return-Type: BOOL//Return-Type: BOOL}else{SetTagBit("hiddVtext",FALSE);}10.打开编辑画面的脚本#pragma option(mbcs)#ifdef RUN_ON_WEBNAVIGATOR#elseHWND hExplorerWindow= NULL;HWND hRuntimeWindow= NULL;hExplorerWindow= FindWindow("WinCCExplorerFrameWndClass",NULL);hRuntimeWindow= FindWindow("PDLRTisAliveAndWaitsForYou",NULL);if(hExplorerWindow){ShowWindow(hExplorerWindow, SW_MINIMIZE); // This entry is only necessary for Windows 2000ShowWindow(hExplorerWindow, SW_SHOWNORMAL);SetForegroundWindow(hExplorerWindow);}elseprintf("rn SetForeground failed");#endif11.如何在WINCC中制作一个保持型按钮方法1:if( GetTagBit("M10") )SetTagBit("M10",0);elseSetTagBit("M10",1);方法2:SetTagBit("M1.0",(SHORT)!GetTagBit("M1.0"));求反指令,如果为1点击变为0,如果为0点击变为1方法3:或者做两个按钮,按钮一:显示,直接连接m1.0,是--不显示,否--显示。
WINCC 7.3 通过自定义菜单栏进行用户登录和注销
return 0;
}
5/5
4/5
If t="logon" Then HMIRuntime.Tags("vbslogon").Write 1 End If If t="logout" Then HMIRuntime.Tags("vbslogout").Write 1 End If t="" End Sub 附 2:C 全局动作脚本 (周期触发) #include "apdefap.h"
int gscAction( void ) { #pragma code ("useadmin.dll") #include "PWRT_api.h" #pragma code() if (GetTagBit("vbslogon")) { PWRTLogin('c'); SetTagBit("vbslogon",FALSE); }
1/5
2、VBS 脚本内的一些数据要和菜单栏的设置一致。绿色横线标注的为内部自建变量,请在变量管 理器内提前建好,数据类型二进制。
2/5
3、C 脚本截图
设置 500ms 一周期的触发器,触发 C 脚本执行
3/5
4、点击登录后出现的对话框
附 1:VBS 脚本 ''用于登录注销 Sub userlog(Byval Item) Dim t t=erData
关于WINCC的C脚本的使用总结
关于WINCC的C脚本的使用总结
Wincc的脚本功能及其强大,可以通过C脚本实现各种功能,但是脚本比较繁琐,始终不得其道,经过对比研究,发现了一些规律
1.全局脚本的实现
打开全局脚本编辑器,在“动作”-“全局动作“-新建动作,出现脚本编辑器的正文
可以看到正文已经有一部分内容,这些内容包括自带的全局脚本的声明及注释内容,都需要更改,也更改不了。
在第一大括号后,我们可以自己编用户脚本了,用户脚本一般是这样的结构:首先对数据和变量进行声明,即对其数据类型进行声明;然后,对变量进行取属性,转换变量,用value1=GetTagDWord("AI0");(这是个例子),意思是把AI0的值取出给value1了,然后就可以对value1进行计算了,计算后再置属性,转换变量,用
SetTagDWord("AI0",value1);
其他的地方注意符号和空格,然后编译,编译过了之后保存,并生成头文件,然后就见证奇迹吧。
下图是依次点亮的脚本
下图是液位高高报警的脚本。
wincc常用C脚本功能
.用户注销:#pragma code ("useadmin.dll")#include "PWRT_api.h”#pragma code()PWRTLogout();2. 用户登录:#pragma code ("useadmin.dll")#include "PWRT_api.h"#pragma code()PWRTLogin('c');3. 关闭项目并退出wincc :ExitWinCC ();4. 退出运行到wincc资源管理器:DeactivateRTProject ();按钮变三种颜色#include "apdefap.h"long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName){#pragma option(mbcs)if(GetTagWord("TX/ZSH001")==1)return 0x0000ff00;elseif(GetTagWord("TX/ZSL001")==1)return 0x000000ff;elsereturn 0x00c0c0c0;}一个调用按钮变色#include "apdefap.h"long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName){#pragma option(mbcs)if(GetTagWord("NewTag")==0)return 0x0000ff00;elsereturn 0x00ffffff;}5. 结束监控并关闭计算机(会弹出确认对话框)HWND hWnd = NULL;//Author:Smartsysint iRet;hWnd = FindWindow(NULL,"WinCC-运行系统-");iRet=MessageBox(hWnd,”结束监控并关闭计算机",”关闭操作站”,MB_YESNO|MB_ICONWARNING|MB_APPLMODAL); if(iRet==IDYES)DMExitWinCCEx (DM_SDMODE_POWEROFF);6. 点击事件弹出对话框,通过点击弹出对话框的确定和取消按钮实现对变量的置位或取消:int r;r=MessageBox(NULL, "YES为开,NO 为关","确定开命令:",MB_YESNO |MB_SYSTEMMODAL);if (r==IDYES)SetTagBit("TAGNAME”,TRUE);elseSetTagBit("TAGNAME”,FALSE);7. 开显示关显示:(要在内部变量中建立三个二进制变量COLSE_DISPLAY DISPLAY_NO 和DISPLAY_COMMENT)// Funktion: Bit in Doppelwort setzen;if (GetTagBitWait("COLSE_DISPLAY")==1 ){SetTagBit("COLSE_DISPLAY",0);世甜羽淋二<i^^pW#^$l>.t_imN)xoae6esse|A|)j!} es|e { { 100日:edAi-ujniey// 昭目顷10£)}旧阮gas } (9 == (iVaOIAIIAI mis 人S—SIAlleNnoaomaOzlimS 一日lAllNOLLSmnONO。
wincc中常用C脚本
查看文章wincc常用C动作2010-06-27 10:311.用户注销:#pragma code ("useadmin.dll")#include "PWRT_api.h"#pragma code()PWRTLogout();2.用户登录:#pragma code ("useadmin.dll")#include "PWRT_api.h"#pragma code()PWRTLogin('c');3.关闭项目并退出wincc:ExitWinCC ();4.退出运行到wincc资源管理器:DeactivateRTProject ();5.结束监控并关闭计算机(会弹出确认对话框)HWND hWnd = NULL;//Author:Smartsysint iRet;hWnd = FindWindow(NULL,"WinCC-运行系统 - ");iRet=MessageBox(hWnd,"结束监控并关闭计算机","关闭操作站",MB_YESNO|MB_ICONWARNING|MB_APPLMODAL);if(iRet==IDYES)DMExitWinCCEx (DM_SDMODE_POWEROFF);6.点击事件弹出对话框,通过点击弹出对话框的确定和取消按钮实现对变量的置位或取消:int r;r=MessageBox(NULL, "YES为开,NO为关", "确定开命令:", MB_YESNO|MB_SYSTEMMODAL);if (r==IDYES)SetTagBit("TAGNAME",TRUE);elseSetTagBit("TAGNAME",FALSE);7.开显示关显示:(要在内部变量中建立三个二进制变量COLSE_DISPLAY、DISPLAY_NO和DISPLAY_COMMENT)// Funktion: Bit in Doppelwort setzen;if (GetTagBitWait("COLSE_DISPLAY")==1 ){SetTagBit("COLSE_DISPLAY",0);SetTagBit("DISPLAY_NO",0); //Return-Type: BOOLSetTagBit("DISPLAY_COMMENT",0);}else{SetTagBit("COLSE_DISPLAY",1);SetTagBit("DISPLAY_NO",1); //Return-Type: BOOLSetTagBit("DISPLAY_COMMENT",0);}8.开阀确认:BOOL a;a=GetTagBit("30T制水启动"); //Return-Type :short intif (a==0){if(MessageBox(NULL,"真的要启动制水吗?","操作提示",MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND|MB_SYSTEMMODAL) == 6) { SetTagBit("30T制水启动",1);//Return-Type :BOOL}}else{if(MessageBox(NULL,"真的要停止制水吗?","操作提示",MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND|MB_SYSTEMMODAL) == 6) { SetTagBit("30T制水停止",1);}}9.将WinCC运行画面最小化HWND WinCCHwnd;WinCCHwnd=FindWindow(NULL,"WinCC-Runtime - "); //如果运行语言为英文if (WinCCHwnd==0) WinCCHwnd=FindWindow(NULL,"WinCC-运行系统 - "); //如果运行语言为中文CloseWindow(WinCCHwnd);10.显示或不显示(其中hiddVtext为内部的二进制变量)if(GetTagBit("hiddVtext")==0) //Return-Type: BOOL{SetTagBit("hiddVtext",TRUE); //Return-Type: BOOL//Return-Type: BOOL}else{SetTagBit("hiddVtext",FALSE);}10.打开编辑画面的脚本#pragma option(mbcs)#ifdef RUN_ON_WEBNAVIGATOR#elseHWND hExplorerWindow= NULL;HWND hRuntimeWindow= NULL;hExplorerWindow= FindWindow("WinCCExplorerFrameWndClass",NULL);hRuntimeWindow= FindWindow("PDLRTisAliveAndWaitsForYou",NULL);if(hExplorerWindow){ShowWindow(hExplorerWindow, SW_MINIMIZE); // This entry is only necessary for Windows 2000ShowWindow(hExplorerWindow, SW_SHOWNORMAL);SetForegroundWindow(hExplorerWindow);}elseprintf("\r\n SetForeground failed");#endif11.如何在WINCC中制作一个保持型按钮方法1:if( GetTagBit("M10") )SetTagBit("M10",0);elseSetTagBit("M10",1);方法2:SetTagBit("M1.0",(SHORT)!GetTagBit("M1.0"));求反指令,如果为1点击变为0,如果为0点击变为1方法3:或者做两个按钮,按钮一:显示,直接连接m1.0,是--不显示,否--显示。
在WinCC上使用C脚本的基本方法
在WinCC上使用C脚本的基本方法wq 去学PLC技术一、创建、编辑动作WinCC有3个编辑脚本动作的入口:(1)画面对象的属性任务;(2)画面对象的事件任务;(3)全局脚本编辑器。
3者都能进入脚本编辑界面,但却各有不同之处。
1、画面对象的属性任务和事件任务画面对象的属性任务和事件任务都可以组态成'C动作',二者的不同之处在于:•用'C动作'实现'属性任务',需要为动作指定'触发器',否则该动作不会执行;•用'C动作'组态'事件任务',则无需指定'触发器',事件本身即为该动作的触发器。
2、'全局脚本编辑器'下编辑动作在'全局脚本编辑器'下,编写的'C动作'也需要指定'触发器'后,动作才能执行,方法见图2所示。
另外,与画面对象的'属性任务'及'事件任务'不同,在全局脚本编辑器中编写的动作用于处理独立于画面的后台任务,如打印日常报表、监控变量或执行计算等。
'属性任务'和'事件任务'虽然也能处理上述工作,但最常见的用法是用于和画面对象相关的操作。
此外,'全局脚本编辑器'里的动作,要想执行,还需要在'计算机属性'的'启动'选项卡中,将'全局脚本运行系统'使能。
'C动作'本质上是一段C代码,语法遵循C语言的语法规则。
我们可以自己写代码,也可以调用已存在的项目函数、标准函数及内部函数等。
二、'全局脚本编辑器'中动作的特点'属性任务'和'事件任务'中的C脚本比较好理解,下面重点介绍'全局脚本编辑器'下的动作的特点有哪些?1、'动作'是有用户创建、编辑的一段C代码,为了防止未经授权的人员修改和查看,可以为动作设置'口令保护',如图4所示。
如何使用C脚本实现WinCCC单按钮复位
如何使⽤C脚本实现WinCCC单按钮复位
在WINCC画⾯中建⽴按钮
第⼀步:(打开桌⾯上WINCC组态软件)
第⼆步:(打开后,在左侧菜单栏选择图形编辑器,然后创建⼀个新的过程画⾯)。
第三步:(打开新创建的过程画⾯,在右侧标准菜单栏中窗⼝对象—按钮,⿏标选中然后⿏标移动到中间画⾯当中点击创建按钮成功)
第四步:(⿏标选中按钮画⾯右击选择组态对话框,把⽂字显⽰改⼀下,改成按钮⽂字,点击确定即可)。
如何使⽤C脚本实现WinCC C单按钮置位/复位/取反功能
第⼀步:(参照C脚本表格,写脚本函数)
第⼆步:(回到主页打开变量管理,创建⼆进制变量)
第三步:(打开刚才创建好的按钮画⾯窗⼝,⿏标双击按钮画⾯,打开按钮对象属性事件—按钮—⿏标—单击⿏标动作右击选择C动作)。
第四步:(⽤C脚本对⼆进制变量进⾏置复位)
把以下变量复制到标准函数当中:
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
SetTagBit ("nanjingHK",0);//对⼆进制变量nanjingHK进⾏复位
}
第五步:(运⾏激活画⾯,可以测试效果)
来源:PLC发烧友,作者:徐陈爽。
Wincc常用C脚本及常用功能
Wincc常用C脚本及常用功能打开用户管理器ProgramExecute("Passcs.exe"); 取消激活#include "apdefap.h"void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName,UINT nFlags, int x, int y){#pragma option(mbcs)HWND hwnd=NULL;int iRet;hwnd=FindWindow(NULL,"WinCC-运行系统 - "); //获得句柄iRet=MessageBox(hwnd,"是否取消激活?","Deactivate",MB_OKCANCEL|MB_ICONWARNING|MB_APPLMODAL);if(iRet==1)DeactivateRTProject (); //Return-Type: BOOL}关闭计算机#include "apdefap.h"void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName,UINT nFlags, int x, int y){#pragma option(mbcs)HWND hwnd=NULL;int iRet;hwnd=FindWindow(NULL,"WinCC-运行系统 - ");iRet=MessageBox(hwnd,"是否关闭计算机?","ShutDown",MB_OKCANCEL|MB_ICONWARNING|MB_APPLMODAL);if(iRet==1)DMExitWinCCEx(DM_SDMODE_SYSTEM); }==================================================================== ==登陆代码:#pragma code(“useadmin.dll”)#include <pwrt_api.h>#pragma code()PWRTLogin (…e?);==================================== 取消激活(Deactivate)DeactivateRTProject();====================================== Wincc变量操作GetTagDWord(“变量名称”); 获取Wincc变量值SetTagDWord(“变量“,设定值); 设置Wincc变量对文本读写操作写操作#include "apdefap.h"void OnLButtonUp(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName,UINT nFlags, int x, int y) {#pragma option(mbcs)FILE* lpFile;char *shuzhu[6]={"tag_1","tag_2","tag_3","tag_4","tag_5","tag_6"};char* lpszStr;int i,j;lpszStr=SysMalloc(60); //Return-Type: void*lpFile = fopen("D:\\test.txt", "w+");for(i=0;i<6;i++){lpszStr=GetTagChar(shuzhu[i]); strcat(lpszStr,"\r\n");if(lpFile == NULL){ printf("can not open file\r\n"); return;}fprintf(lpFile, lpszStr); }SysFree(lpszStr);fclose(lpFile);}读操作#include "apdefap.h"void OnLButtonUp(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName,UINT nFlags, int x, int y) {#pragma option(mbcs)char* shuzhu[6]={"tag_1","tag_2","tag_3","tag_4","tag_5","tag_6"}; char tmp[255];int i=0;int ChrNumLine=38;FILE *fp;fp=fopen("D:\\test.txt","r"); if (fp==NULL){return;}else{rewind(fp);while(!feof(fp)){fgets(tmp,ChrNumLine,fp);SetTagChar(shuzhu[i],tmp);i++;}}fclose(fp);}画面窗口显示界面切换SetPictureName(lpszPictureName,"PicWindow_button","produce_manage_bu tton.pdl");SetVisible(lpszPictureName,"PicWindow_button",1);注:PicWindow_button是画面窗口名称;produce_manage_button.pdl是要显示的子画面。
WinCC+V7.3中如何使用结构变量组态画面模板
WinCC+V7.3中如何使⽤结构变量组态画⾯模板操作指南 5⽉/2016WinCC V7.3中如何使⽤结构变量组态画⾯模板WinCC, 结构类型,画⾯模板,脚本填写C o p y r i g h t ?S i e m e n s A G C o p y r i g h t y e a r A l l r i g h t s r e s e r v e d 摘要在实际的⼯业级现场及应⽤中,经常会遇到多个设备需要显⽰相同的参数(组)的情况,如现场有多个电机,每个电机需要显⽰和控制的参数(组)都相同,只是不同电机的参数数值不同。
使⽤画⾯模板,能够避免多册重复组态相同的画⾯,减少组态⼈员的⼯作量,⼜能避免⽇后项⽬维护时期的⼤量⼯作,提⾼系统的可维护性。
画⾯模板和结构变量配合使⽤,能够快速⾼效地组态模板,满⾜现场要求。
本⽂档实例的组态环境为SIMATIC WinCC V7.3SE Update9,操作系统环境为64位Windows 7 Ultimate SP1。
关键词 WinCC ,结构类型,画⾯模板,脚本Key Words WinCC ,construct ,picture template ,scriptC o p y r i g h t ?S i e m e n s A G C o p y r i g h t y e a r A l l r i g h t s r e s e r v e d ⽬录1⽰例说明 (4)1.1⽰例任务............................................................................................ 41.2解决⽅案 (42)建⽴结构变量.................................................................................................... 53使⽤变量前缀建⽴画⾯窗⼝. (6)3.1创建画⾯模板..................................................................................... 63.1.1新建画⾯............................................................................................ 63.1.2组态IO 域 .......................................................................................... 63.1.3组态按钮............................................................................................ 83.1.4组态滚动条和量表 ............................................................................ 103.1.5组态趋势控件 ................................................................................... 113.2创建起动画⾯,调⽤画⾯模板 .......................................................... 123.2.1静态设置TagPrefix .......................................................................... 133.2.2通过变量修改TagPrefix ................................................................... 143.2.3通过脚本修改TagPrefix . (14)4使⽤动态向导建⽴画⾯模板 (16)4.1创建基准画⾯ ................................................................................... 164.2利⽤动态向导创建模板 ..................................................................... 164.2.1启动动态向导 ................................................................................... 164.2.2选择结构类型 ................................................................................... 164.2.3连接对象属性 ................................................................................... 174.2.4完成向导.......................................................................................... 174.3调⽤模板.......................................................................................... 184.3.1添加模板.......................................................................................... 184.3.2连接模板和结构变量 ........................................................................ 194.3.3完成组态.......................................................................................... 194.3.4运⾏效果 (20)5两种画⾯模板建⽴⽅法的⽐较 (21)附录-推荐⽹址 (22)C o p y r i g h t ?S i e m e n s A G C o p y r i g h t y e a r A l l r i g h t s r e s e r v e d 1⽰例说明1.1⽰例任务假设某⽣产现场有3台电机,每台电机都有电机名字、速度实际值、速度设定值、启停状态等参数需要显⽰在WinCC 画⾯中,需达到的效果如图1-1所⽰。
