wincc 常用脚本

合集下载

wincc 常用脚本

wincc 常用脚本

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" 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”。

注意可以使用PASSLoginDialog 函数来代替PWRTLogin 或者PWRTLogout 函数。

这个函数需要和函数PWRTLogin 相同的参数。

wincc-全套脚本总结

wincc-全套脚本总结
"data_FLAG",1
)
}
-------------------------------------
——————7、对话框调用——————
BOOL A;
BOOL B;
}
// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
// next PicID : 1
// WINCC:PICNAME_SECTION_END
return 0;
}
=====================================================
int value;
value=GetTagBit("IM_in");//"IM_in"为触发的变量。
if(value==1)
{
SetVisible("lianxi.pdl","按钮8",TRUE);//lianxi.pdl为控制对象所在画etVisible("lianxi.pdl","按钮8",FALSE);//lianxi.pdl
SetPropWord(lpszPictureName,"qushi","ValueAxisEndValue",Hi);
————————————————————————
——————4、获取位号————————
SetTagChar("TrendTagName1","ProcessValueArchive\\PT111");//Return-Type: BOOL

wincc-全套脚本总结

wincc-全套脚本总结

—————-1、wincc全局脚本动作-——-—-—隐藏控件——————#include "apdefap.h"int gscAction( void ){// WINCC:TAGNAME_SECTION_START// syntax: #define TagNameInAction "DMTagName"// next TagID : 1// WINCC:TAGNAME_SECTION_ENDint value;value=GetTagBit(”IM_in”);//"IM_in”为触发的变量.if(value==1){SetVisible("lianxi.pdl”,”按钮8",TRUE);//lianxi。

pdl为控制对象所在画面名,“按钮8”为对象名称}else{SetVisible(”lianxi.pdl","按钮8",FALSE);//lianxi.pdl}// WINCC:PICNAME_SECTION_START// syntax:#define PicNameInAction "PictureName”// next PicID : 1// WINCC:PICNAME_SECTION_ENDreturn 0;}=====================================================说明:在触发器里选择变量IM_in-—————2、wincc全局脚本动作-——-提示框————--#include "apdefap.h”int gscAction( void ){// WINCC:TAGNAME_SECTION_START// syntax: #define TagNameInAction "DMTagName”// next TagID : 1// WINCC:TAGNAME_SECTION_ENDint value;value=GetTagBit(”IM_in”);if(value==1){MessageBox(NULL,”请确认三厅相关门是否关好,或者请解锁。

WINCC常用 脚本

WINCC常用 脚本
----------------------------------------------
11、在画面中显示用户名
1.组态静态文本
2.字体属性中的文本,连接系统变量@CurrentUser
----------------------------------------------
(2)新密码设置(C)
SetOutputValueChar(lpszPictureName,lpszObjectName,GetInputValueChar(lpszPictureName,lpszObjectName));
注:字符串格式的输入输出域》事件》属性主题》输出/输入》输出值》更改》以上代码。
{
MessageBox (Handle, "新密码和旧密码不能相同 !", "请重新输入密码", MB_OK |
MB_ICONEXCLAMATION | MB_SYSTEMMODAL);
}
else
{
// this 2 lines are necessary to get the DSN-Name of the project
a=MsgBox("hello!",vbYesNo)
If vbYes=a Then
objCon2.text="ok" '如点击是,则按钮文本变为ok
Else
objCon2.text="no" '如点击否,则按钮文本变为no
End If
注:放置按钮,起名按钮1.
----------------------------------------------

wincc-脚本大全

wincc-脚本大全
if (RetMsg==IDOK)
{
SetTagBit("TJ_ANNIU",1);
MessageBox (hwnd, "停机", "停机警告", MB_OK|MB_SYSTEMMODAL|MB_SETFOREGROUND);
SetTagBit("TJ_ANNIU",0);
}
else B=0;
}
else
————————————————————————
——————4、获取位号————————
SetTagChar("TrendTagName1","ProcessValueArchive\\PT111");//Return-Type: BOOL
SetTagSWord("TrendHi",200);
SetTagSWord("TrendLo",0);
z=GetTagBit("202搅拌机运行"); //取得PLC搅拌机的运行状态
if(z!=0)
{
switch(y)
{
case 0:
x=x-4;
if(x<=0)
y=1;
break;
default :
x=x+4;
if(x>=25)
y=0;
break;
}
}
return x;
}
——————12、运行时图形产生动态旋转——————
#include "apdefap.h"
long _main(char* lpszPictureName, char* lpszObjectName, char*

wincc常用C脚本功能

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-全套脚本总结

wincc-全套脚本总结

——————1、wincc全局脚本动作-------隐藏控件——————#include "apdefap.h"int gscAction( void ){// WINCC:TAGNAME_SECTION_START// syntax: #define TagNameInAction "DMTagName"// next TagID : 1// WINCC:TAGNAME_SECTION_ENDint value;value=GetTagBit("IM_in");//"IM_in"为触发的变量。

if(value==1){SetVisible("lianxi.pdl","按钮8",TRUE);//lianxi.pdl为控制对象所在画面名,“按钮8”为对象名称}else{SetVisible("lianxi.pdl","按钮8",FALSE);//lianxi.pdl}// WINCC:PICNAME_SECTION_START// syntax: #define PicNameInAction "PictureName"// next PicID : 1// WINCC:PICNAME_SECTION_ENDreturn 0;}=====================================================说明:在触发器里选择变量IM_in——————2、wincc全局脚本动作----提示框——————#include "apdefap.h"int gscAction( void ){// WINCC:TAGNAME_SECTION_START// syntax: #define TagNameInAction "DMTagName"// next TagID : 1// WINCC:TAGNAME_SECTION_ENDint value;value=GetTagBit("IM_in");if(value==1){MessageBox(NULL,"请确认三厅相关门是否关好,或者请解锁。

Wincc常用C脚本及常用功能

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是要显示的子画面。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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" 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”。

注意可以使用PASSLoginDialog 函数来代替PWRTLogin 或者PWRTLogout 函数。

这个函数需要和函数PWRTLogin 相同的参数。

PWRTLogin 和PASSLoginDialog 函数可以调用登录界面,在上面可以登录或者注销。

函数PWRTLogout 被正确执行并且不调用登录界面。

正确执行后这两个函数都返回“1”。

然而,登录不会等到显示对话框之后。

注意如果使用多个显示器,为了能使登录对话框显示在合适的显示器上,需要WinCC Basic Process Control (OS项目编辑器)。

不使用WinCC Basic Process Control 时,可以指定显示器编号,但登录对话框始终显示在第一个显示器上。

#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,"@PasswordIn",TRUE);SetOperation(lpszPictureName,"@OK",TRUE);Set_Focus(lpszPictureName,"@LoginIn"); //次函数表示将光标重新聚焦到当前画面中,名称为“@Loginin”对象中SetVisible(lpszPictureName,lpszObjectName,FALSE);SetVisible函数是用来执行是否显示的函数在利用画面窗口实现画面切换中使用了SetPictureName函数实现画面属性的更改使用了SetPropChar函数SetPictureName("@MAIN.pdl", "Alarm", "AlarmList.pdl"); //调用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 *TagName,char *Unit) //定义变量//void *可以指向任何类型的数据//Open_AI_Pannel名称{char AI_TemplateName[80]; //80为最大字符长度char str_Title[80];char str_Unit[80];char str_Loop_Name[80];strcpy(AI_TemplateName,"AI_Template");//strcpy复制地址strcat(AI_TemplateName,AI_Num); //strcat两个char类型链接strcpy(str_Title,TagName);strcat(str_Title," AI Loop Control 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_TemplateName,"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,"._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("PID_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_name[80];char tagname[80];char str_Title[80];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); //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_Num,char *TagName,char *Unit){char PID_TemplateName[80];char str_Title[80];char str_Unit[80];char str_Loop_Name[80];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 the Picture window NO visible ?-??2??é??£??é2?ó?SetPropChar("@MAIN.pdl",PID_TemplateName,"TagPrefix",TagName); //Set the ObjectName as TagPrefix -??μ?±?á??ó?°×oSetPropBOOL("@MAIN.pdl",PID_TemplateName,"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,"._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("PID_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。

相关文档
最新文档