《wincc 常用脚本》由会员分享,可在线阅读,更多相关《wincc 常用脚本(5页珍藏版)》请在金锄头文库上搜索。
1、DeactivateRTProject ();/退出系统#pragma code(useadmin.dll)#include PWRT_api.h#pragma code()char* CUser=NULL;CUser=GetTagChar(CurrentUser);if (strlen(CUser)=0)PWRTSilentLogin(operator,123456);/用户“operator,密码123456”登录OpenPicture(MAIN.pdl);在画面中结合不同按钮来组态下面 C 操作LoginAction for login (for example, mouse click
2、 event):#pragma code (useadmin.dll)#include PWRT_api.h#pragma code()PWRTLogin(c);LogoutAction for logout (for example, mouse click event):#pragma code (useadmin.dll)#include PWRT_api.h#pragma code()PWRTLogout();PWRTLogin 参数必须是 CHAR 字符。它指定了显示对话框的监视器。如果只使用一个监视器,那么保留默认参数“c”或者指定“1”。 注意可以使用 PASSLoginDial
3、og 函数来代替 PWRTLogin或者 PWRTLogout 函数。这个函数需要和函数 PWRTLogin 相同的参数。 PWRTLogin和 PASSLoginDialog 函数可以调用登录界面,在上面可以登录或者注销。 函数 PWRTLogout 被正确执行并且不调用登录界面。 正确执行后这两个函数都返回“1”。然而,登录不会等到显示对话框之后。 注意如果使用多个显示器,为了能使登录对话框显示在合适的显示器上,需要 WinCC Basic Process Control (OS项目编辑器)。不使用 WinCC Basic Process Control 时,可以指定显示器编号,但登录对话
4、框始终显示在第一个显示器上。 #include apdefap.h/调用函数代码void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)SetVisible(lpszPictureName,ERROR,FALSE); /当前画面上有一个名称为ERROR对象,将其隐藏。FALSE或者0都可以SetOperation(lpszPictureName,LoginIn,TRUE); /函数SetOperation是控制画面对象的可操作性SetOperation(lpszPictureName,Pa
5、sswordIn,TRUE);SetOperation(lpszPictureName,OK,TRUE);Set_Focus(lpszPictureName,LoginIn); /次函数表示将光标重新聚焦到当前画面中,名称为“Loginin”对象中SetVisible(lpszPictureName,lpszObjectName,FALSE);SetVisible函数是用来执行是否显示的函数在利用画面窗口实现画面切换中使用了SetPictureName函数实现画面属性的更改使用了SetPropChar函数SetPictureName(MAIN.pdl, Alarm, AlarmList.pdl
6、); /调用MAIN中Alarm画面中的AlarmList画面SetProp是一种函数,功能是增加一个新项,修改一个现有项。实现画面属性的更改使用了SetPropChar函数SetPropChar(MAIN.pdl,Alarm,CaptionText,报警清单); /更改MAIN中Alarm画面中标题属性为报警清单SetPropBOOL(MAIN.Pdl,Alarm,Visible,1); / MAIN画面中中Alarm对象属性被设置为1SetVisible(MAIN.pdl,LoginWindow,TRUE);void Open_AI_Pannel(char *AI_Num,char *Ta
7、gName,char *Unit) /定义变量/ void *可以指向任何类型的数据/ Open_AI_Pannel名称char AI_TemplateName80; / 80为最大字符长度char str_Title80;char str_Unit80;char str_Loop_Name80;strcpy(AI_TemplateName,AI_Template);/ strcpy复制地址strcat(AI_TemplateName,AI_Num); / strcat两个char类型链接strcpy(str_Title,TagName);strcat(str_Title, AI Loop C
8、ontrol Pannel);SetPropChar(MAIN.pdl,AI_TemplateName,CaptionText,str_Title); /置为变量SetPropBOOL(MAIN.pdl,AI_TemplateName,Visible,0);/To make the Picture window NO visible /不显示SetPropChar(MAIN.pdl,AI_TemplateName,TagPrefix,TagName);/Set the ObjectName as TagPrefix ?-?oSetPropBOOL(MAIN.pdl,AI_TemplateNam
9、e,Visible,1);/To make the Picture window visible ?-?strcpy(str_Unit , TagName);strcpy(str_Loop_Name,TagName);/SetPropChar(PID_Pannel.pdl,PidTitle,Text,TagName);/Set the title to the oject name/SetText(PID_Pannel.pdl,Unit01,Unit); /Unit_VL/SetText(PID_Pannel.pdl,Unit02,Unit); /Unit_VLstrcat(str_Unit,
10、._LOOP_UNIT),SetTagChar(str_Unit,Unit);/SetPropWord(PID_Pannel.pdl,SetPointBarCtrl,RangeMin,PID_Zero);/strcat(str_Zero,._PID_ZERO);/SetTagWord(str_Zero,PID_Zero);/SetPropWord(PID_Pannel.pdl,SetPointBarCtrl,RangeMax,PID_Span);/strcat(str_Span,._PID_SPAN);/SetTagWord(str_Span,PID_Span);/SetPropWord(PI
11、D_Pannel.pdl,ProcessValueBarCtrl,RangeMin,PID_Zero);/SetPropWord(PID_Pannel.pdl,ProcessValueBarCtrl,RangeMax,PID_Span);strcat(str_Loop_Name,._LOOP_NAME);SetTagChar(str_Loop_Name,TagName); /str_Loop_Name=TagName DOL电机脚本:void Open_Motor_Pannel(char *Pannel_Num,char * Motor_Name)/char pannel_name80;cha
12、r tagname80;char str_Title80;strcpy(pannel_name,Motor_Template);strcat(pannel_name,Pannel_Num);/SetPropBOOL(MAIN.Pdl,pannel_name,Visible,0);strcpy(tagname,Motor_Name);strcat(tagname,._MOTOR_NAME); /._MOTOR_NAME模版变量名SetTagChar(tagname,Motor_Name);SetPropChar(MAIN.pdl,pannel_name,TagPrefix,Motor_Name)
13、; / TagPrefix变量前缀SetPropChar(MAIN.pdl,pannel_name,PictureName,Motor_Pannel.pdl);/ 画面名称strcpy(str_Title,Motor_Name);strcat(str_Title, MOTOR Control Pannel);SetPropChar(MAIN.Pdl, pannel_name,CaptionText,str_Title); SetPropBOOL(MAIN.Pdl,pannel_name,Visible,1);/让画面窗口可见PID模版void Open_PID_Pannel(char *PID
14、_Num,char *TagName,char *Unit)char PID_TemplateName80;char str_Title80;char str_Unit80;char str_Loop_Name80;strcpy(PID_TemplateName,PID_Template);strcat(PID_TemplateName,PID_Num);strcpy(str_Title,TagName);strcat(str_Title, PID Loop Control Pannel);SetPropChar(MAIN.pdl,PID_TemplateName,CaptionText,str_Title); /a?SetPropBOOL(MAIN.pdl,PID_TemplateName,Visible,0);/To make