首页 wincc全套脚本总结

wincc全套脚本总结

举报
开通vip

wincc全套脚本总结RevisedbyBLUEontheafternoonofDecember12,2020.wincc全套脚本总结——————1、wincc全局脚本动作-------隐藏控件——————#include"apdefap.h"intgscAction(void){//WINCC:TAGNAME_SECTION_START//syntax:#defineTagNameInAction"DMTagName"//nextTagID:1//WINCC:TAGNAME_SECTION_ENDintvalue;value=G...

wincc全套脚本总结
RevisedbyBLUEontheafternoonofDecember12,2020.wincc全套脚本 总结 初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf ——————1、wincc全局脚本动作-------隐藏控件——————#include"apdefap.h"intgscAction(void){//WINCC:TAGNAME_SECTION_START//syntax:#defineTagNameInAction"DMTagName"//nextTagID:1//WINCC:TAGNAME_SECTION_ENDintvalue;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:#definePicNameInAction"PictureName"//nextPicID:1//WINCC:PICNAME_SECTION_ENDreturn0;}=====================================================说明:在触发器里选择变量IM_in——————2、wincc全局脚本动作----提示框——————#include"apdefap.h"intgscAction(void){//WINCC:TAGNAME_SECTION_START//syntax:#defineTagNameInAction"DMTagName"//nextTagID:1//WINCC:TAGNAME_SECTION_ENDintvalue;value=GetTagBit("IM_in");if(value==1){MessageBox(NULL,"请确认三厅相关门是否关好,或者请解锁。","提示框",MB_OK|MB_ICONEXCLAMATION|MB_SETFOREGROUND|MB_SYSTEMMODAL);}//WINCC:PICNAME_SECTION_START//syntax:#definePicNameInAction"PictureName"//nextPicID:1//WINCC:PICNAME_SECTION_ENDreturn0;}=============================说明:在触发器中选择变量触发。——————3、趋势面板——————————char*str_a=NULL;intHi;intLo;str_a=GetTagChar("TrendTagName1");Lo=GetTagSWord("TrendLo");Hi=GetTagSWord("TrendHi");SetPropWord(lpszPictureName,"qushi","TrendIndex",0);SetPropChar(lpszPictureName,"qushi","TrendTagName",str_a);SetPropWord(lpszPictureName,"qushi","ValueAxisBeginValue",Lo);SetPropWord(lpszPictureName,"qushi","ValueAxisEndValue",Hi);——————————————————————————————4、获取位号————————SetTagChar("TrendTagName1","ProcessValueArchive\\PT111");//Return-Type:BOOLSetTagSWord("TrendHi",200);SetTagSWord("TrendLo",0);SetTagByte("Trenden",1);——————————————————————————————5、调用登陆函数——————#pragmacode("useadmin.dll")#include"PWRT_API.H"#pragmacode()if(strcmp(GetTagChar("@CurrentUser"),"")==0){PWRTLogin('c');}-------------------------------------——————6、时间同步——————voidSetCpuTime(){#pragmacode("kernel32.dll");voidGetLocalTime(SYSTEMTIME*lpst);#pragmacode();SYSTEMTIMEtimeBOOLret;//printf("StartfunctionSetCpuTime\r\n");GetLocalTime(&time);ret=SetTagMultiWait("%d%d%d%d%d%d%d","data_year",time.wYear-2000,"data_month",time.wMonth,"data_day",time.wDay,"data_hour",time.wHour,"data_MINUTE",time.wMinute,"data_SECOND",time.wSecond,"data_FLAG",1)}-------------------------------------——————7、对话框调用——————BOOLA;BOOLB;HWNDhwnd=NULL;intRetMsg;A=GetTagBit("TJ_ANNIU");//Return-Type:BOOLhwnd=FindWindow(NULL,"WinCC-运行系统-");if(A==0){RetMsg=MessageBox(hwnd,"确定要停机","停机警告",MB_OKCANCEL|MB_SYSTEMMODAL|MB_SETFOREGROUND);if(RetMsg==IDOK){SetTagBit("TJ_ANNIU",1);MessageBox(hwnd,"停机","停机警告",MB_OK|MB_SYSTEMMODAL|MB_SETFOREGROUND);SetTagBit("TJ_ANNIU",0);}elseB=0;}else{}------------------------------------------——————8、声音报警——————#pragmacode("Winmm.dll")VOIDWINAPIPlaySoundA(char*pszSound,char*hmode,DWORDdwflag);#pragmacode()if(GetTagFloat("LIST555")>500)PlaySoundA("D:\\DCSDATA\\CG_wincc\\Horn\\Horn_Attention.wav",NULL,1);if(GetTagFloat("LIST555")<300)PlaySoundA("D:\\DCSDATA\\CG_wincc\\Horn\\alsndmgr.wav",NULL,1);-----------------------------------------------——————9、水平移动——————建立内部变量BOOL-Q,无符号32位-P全局动作inta;inta1;a=GetTagBit("Q");a1=GetTagDWord("P");if(a==1){a1=a1+10;}if(a1>=100){a1=0;}SetTagDWord("P",a1);然后用一个按钮控制二进制变量Q,为启动信号。物体的X位置对应的是变量P,设置为模拟量。当P为1的时候对应的X位置。P为2的时候对应X的位置,以此类推,就可以做出物体移动画面了,要做全局脚本-----------------------------------------------——————10、WinCC中调用SQL语言——————1、创建一个SQL文件,此文件在ISQL中建立,文件内包含所要执行的SQL语句。Windows对话框实现。具体如下:2、在WinCC中用CScript调用上述SQL文件,如下所示:#include"apdefap.h"voidOnLButtonDown(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName,UINTnFlags,intx,inty){char*a="c:siemenscommonSQLANYISQL-q-b-cUID=DBA;PWD=SQL;DBF=E:testsqltestsqlRT.DB;DBN=CC_testsql_99-12-03-12:48:26R;READE:testsqltest.sql";Printf("%srn",a);ProgramExcute(a);}下面是一个简单的SQL文件 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 :select*frompde#hd#t#test;outputtoe:test2.txtFORMATascii注意:文件名及路径中不要带空格。——————11、设置或重置一个变量——————voidOnClick(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName){BOOLz;z=GetTagBit("MyBitVariable");//获得变量值if(z==0)SetTagBit("MyBitVariable",1);//设置变量值elseSetTagBit("MyBitVariable",0);}——————12、运行时图形产生动态旋转——————#include"apdefap.h"long_main(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName){staticintx=25,y,z;//x为半径的初始值为25,y为切换变量,z为搅拌机运行状态变量z=GetTagBit("202搅拌机运行");//取得PLC搅拌机的运行状态if(z!=0){switch(y){case0:x=x-4;if(x<=0)y=1;break;default:x=x+4;if(x>=25)y=0;break;}}returnx;}——————13、WINCC--如何在程序中动态修改用户密码——————点击“开始”--》“设置”--》“控制面板”--》“管理工具”--》“数据源(ODBC)”,打开ODBC数据源管理器2、在用户DSN页面的用户数据源中找到与当前项目所关联的一项,其名称为“CC_项目名_项目建立日期时间”,记下该项的名称3、在脚本中加入以下代码:#pragmacode("UseGen.dll")#include"USEGENAP.H"#pragmacode()LPCMN_ERRORerr;//定义的LPCMN_ERROR型变量,在函数调用中需使用if(PWGENConnect("CC_ass_04-09-21_16:35:22",err))//建立与数据库的联接,其中CC_ass_04-09-21_16:35:22用第二步中记下的名称取代{if(PWGENChangePassword(GetTagChar("user"),GetTagChar("oldpassword"),GetTagChar("password"),err))//修改密码,user,oldpassword,password分别为存贮用户名,原密码,新密码的内部变量,类型为文本变量8位字符集{//密码修改成功后的操作,如给用户提示等}}PWGENDisconnect(err);//断开与数据库的联接4、编译运行程序5、工作完成6、与用户管理相关的函数定义存贮在APPLIB目录下的USEGENAP.H文件中,可根据上面示例自行完成添加用户,修改权限等功能。——————14、WinCC如何实现鼠标OnMouseOVer事件——————用WINDOWAPI函数GetCusorPos获取当前鼠标位置,用GetWindowRect函数获取窗口位置,两值相减得鼠标在WINCCframe上的相对位置。用全局脚本(设定为1s定时刷新),然后获取要OnMouseOver事件的物体的位置,并与鼠标位置相比较,如一致则触发自己定义的动作。#include"apdefap.h"intgscAction(void){#pragmacode("user32.dll");BOOLGetCusorPos(POINTlpPoint);//获取鼠标的位置(绝对位置-对应屏幕分辨率)BOOLGetWindowRect(HWNDhwnd,LPRECTlpRect);//获取窗体位置#pragmacode();POINTpPos;RECTrRec;HWNDhwnd;BOOLbRet,bRet2;longlLeft,lTop,lWidth,lHeight;longlX,lY;charszStr[100];hwnd=FindWindow(NULL,"WinCC-Runtime-");//如语言为中文应为"WinCC运行系统-"if(hwnd==0){printf("rnError!WinCcHandleis%d",hwnd);gotoover;}bRet=GetCursorPos(&pPos);if(bRet==0)gotoover;bRet2=GetWindowRect(hwnd,&rRec);if(bRet2==0)gotoover;lX=pPos.x-rRec.left;//鼠标对{置lY=pPos.y-rRec.top;//鼠标位置//如果为非全屏模式,需将上述数值中的高height判断减去标 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 栏的宽度//printf("TheCurrentCusorPosisx:%d,y:%drn",pPos.x,pPos.y);//printf("TheCusorPosinWindowisx:%d,y:%drn",pPos.x-lLeft2,pPos.y-lTop2);lLeft=GetLeft("NewPdl0.Pdl","Text1");//Return-Type:longintlTop=GetTop("NewPdl0.Pdl","Text1");//Return-Type:longintlWidth=GetWidth("NewPdl0.Pdl","Text1");//Return-Type:longintlHeight=GetHeight("NewPdl0.Pdl","Text1");//Return-Type:longintif((lX>=lLeft)&&(lY>=lTop)&&(lX<=lLeft+lWidth)&&(lY<=lTop+lHeight)){sprintf(szStr,"%d,%d",lX,lY);SetText("NewPdl0.Pdl","Text1",szStr);//Return-Type:char*}//printf("TheText1Posisx:%d,y:%drn",lLeft2,lTop-lTop2);over:return0;}—————————————————————————————————————————————15、如何在退出WINCC监控时直接关闭电脑——————利用动态向导2.在脚本中加入DMExitWinCCEx(DM_SDMODE_SYSTEM);也可以——————16、过WINCCAPI函数读出当前报警消息——————1、使用GMsgFunction中读出当前报警信息的ID(dwMsgNr);2、使用MSRTGetMsgCSData函数读出该报警信息ID对应文本库TEXTLIB中的文本ID(dwTextID1);3、使用MSRTGetMsgText函数读出该文本ID的文本。信息到达处理:如果读取文本成功,则置文本变量MSG。信息离去处理:如果MsgNr与上一次相同,则复位MSG,如果不是,则继续保持信息。具体函数说明请看ODK文档BOOLGMsgFunction(char*pszMsgData){#pragmacode("msrtcli.dll")#include"msrtapi.h"#pragmacode();MSG_TEXT_STRUCTtMeld;MSG_CSDATA_STRUCTsM;CMN_ERRORerr;BOOLbRet;DWORDdwTextID1;DWORDdwMsgNum;charszMsg[255];#defineTAG_MSG"MSG"MSG_RTDATA_STRUCTmRT;memset(&mRT,0,sizeof(MSG_RTDATA_STRUCT));if(pszMsgData!=NULL){printf("Meldung:%srn",pszMsgData);sscanf(pszMsgData,"%ld,%ld,%04d.%02d.%02d,%02d:%02d:%02d:%03d,%ld,%ld,%ld,%d,%d",&mRT.dwMsgNr,//Meldungsnummer&mRT.dwMsgState,//StatusMSG_STATE_COME,.._GO,.._QUIT,.._QUIT_SYSTEM&mRT.dwTimeDiff,//ZeitdauerderanstehendenMeldung&mRT.dwCounter,//InternerMeldungszhler&mRT.dwFlags,//Flags(intern)&mRT.wPValueUsed,&mRT.wTextValueUsed);//**************************************************************************************codefordcountif(mRT.dwMsgState==MSG_STATE_COME)//信息到达处理{dwMsgNum=mRT.dwMsgNr;printf("rnTheAlarmMessageNois%d!rn",dwMsgNum);bRet=MSRTGetMsgCSData(dwMsgNum,&sM,&err);if(bRet==TRUE){dwTextID1=sM.dwTextID[0];printf("rnTheTextIDofTheMessageNr%dis%d!rn",dwMsgNum,dwTextID1);bRet=MSRTGetMsgText(1,dwTextID1,&tMeld,&err);if(bRet==TRUE){sprintf(szMsg,"%s",tMeld.szText);printf("rnTheTextofTextID%dis%s!rn",dwTextID1,szMsg);}}}if(mRT.dwMsgState==MSG_STATE_GO)//信息离去处理{dwMsgNum=mRT.dwMsgNr;if(dwMsgNum==GetTagDWord(TAG_MSG_NR))SetTagChar(TAG_MSG,"");}//**************************************************************************************codefordcount//Meldungsdateneinlesen//Prozesswertelesen,fallsgew§1nscht}printf("Nr:%d,St:%x,%d-%d-%d%d:%d:%d.%d,Dur:%d,Cnt%d,Fl%drn",lliseconds,mRT.dwTimeDiff,mRT.dwCounter,mRT.dwFlags);SetTagChar(TAG_MSG,szMsg);return(TRUE);}——————17、实现用户登陆日志(wincc中用c脚本实现)——————用户登陆日志:(包括用户的登陆退出信息,以便查询在什么时间段是哪个用户在使用这个监控软件)#include"apdefap.h"intgscAction(void){#pragmacode("kernel32.dll")VOIDGetLocalTime(LPSYSTEMTIMElpSystemTime);#pragmacode()char*username;charbuf[128];staticcharpreuser[128];unsigneda,b,c,d,e,f;FILE*fp;SYSTEMTIMEsysTime;//读取系统时间,并且复制给变量a,b,c,d,e,fGetLocalTime(&sysTime);a=sysTime.wHour;b=sysTime.wMinute;c=sysTime.wSecond;f=sysTime.wYear;e=sysTime.wMonth;d=sysTime.wDay;//得到当前用户名称username=GetTagChar("@CurrentUser");fp=fopen("c:wincclog.txt","a+");if(strcmp(username,preuser)!=0)//如果当前用户名称和前一个用户名不同{if((strcmp(username,"")!=0)&&(strcmp(preuser,"")==0))//如果当前用户名称不空同时前一个用户名为空{sprintf(buf,"用户:%st登陆时间是:t%d-%d-%d,%d-%d-%dn",username,a,b,c,d,e,f);fputs(buf,fp);}else{if((strcmp(username,"")==0)&&(strcmp(preuser,"")!=0))//如果当前用户名称为空同时前一个用户名不空{sprintf(buf,"用户:%st退出时间是:t%d-%d-%d,%d-%d-%dn",preuser,a,b,c,d,e,f);fputs(buf,fp);}else{sprintf(buf,"用户:%st退出时间是:t%d-%d-%d,%d-%d-%dn",preuser,a,b,c,d,e,f);fputs(buf,fp);sprintf(buf,"用户:%st登陆时间是:t%d-%d-%d,%d-%d-%dn",username,a,b,c,d,e,f);fputs(buf,fp);}}}strcpy(preuser,username);fclose(fp);return0;}——————18、全局脚本--声音报警——————#pragmacode("Winmm.dll")VOIDWINAPIPlaySoundA(char*pszSound,char*hmode,DWORDdwflag);#pragmacode()if(GetTagBit("XY")==0){if(GetTagFloat("LIST555")>500)//热井液位{PlaySoundA("D:\\DCSDATA\\CG_wincc\\Horn\\热井液位高1.wav",NULL,0);}if(GetTagFloat("LIST555")<300)//热井液位{PlaySoundA("D:\\DCSDATA\\CG_wincc\\Horn\\热井液位低1.wav",NULL,0);}if(GetTagFloat("TE421A")>100||GetTagFloat("TE421B")>100||GetTagFloat("TE423A")>100||GetTagFloat("TE423B")>100||GetTagFloat("TE425")>100||GetTagFloat("TE427")>100||GetTagFloat("TE442")>100)//轴瓦温度{PlaySoundA("D:\\DCSDATA\\CG_wincc\\Horn\\轴瓦温度高1.wav",NULL,0);}if(GetTagFloat("TIE485")>45)//冷油器出口油温{PlaySoundA("D:\\DCSDATA\\CG_wincc\\Horn\\冷油器出口油温高.wav",NULL,0);}if(GetTagFloat("PT091")<0.5)//进汽压力{PlaySoundA("D:\\DCSDATA\\CG_wincc\\Horn\\蒸汽压力低.wav",NULL,0);}if(GetTagFloat("PT109")>40)//真空低{PlaySoundA("D:\\DCSDATA\\CG_wincc\\Horn\\排汽压力高.wav",NULL,0);}if(GetTagFloat("PT131")<0.13)//润滑油压力低{PlaySoundA("D:\\DCSDATA\\CG_wincc\\Horn\\润滑油压力低1.wav",NULL,0);}if(GetTagFloat("PDT213")>0.05||GetTagFloat("PDT215")>0.05||GetTagBit("PDS071")==0||GetTagBit("PDS073")==0)//滤油器差压{PlaySoundA("D:\\DCSDATA\\CG_wincc\\Horn\\滤油器差压高.wav",NULL,0);}if(GetTagFloat("PT121")<0.65)//主油泵出口压力{PlaySoundA("D:\\DCSDATA\\CG_wincc\\Horn\\主油泵出口压力低.wav",NULL,0);}if(GetTagFloat("LIST551")<-190)//油箱油位{PlaySoundA("D:\\DCSDATA\\CG_wincc\\Horn\\油箱油位低.wav",NULL,0);}if(GetTagFloat("VE735A")>52|GetTagFloat("VE737A")>52|GetTagFloat("VE745A")>52||GetTagBit("XE202")==1||GetTagBit("XE204")==1||GetTagBit("XE206")==1)//振动大{PlaySoundA("D:\\DCSDATA\\CG_wincc\\Horn\\轴瓦振动高.wav",NULL,0);}if(GetTagFloat("ZE769")>0.4||GetTagFloat("ZE769")<-0.4||GetTagBit("ZE208")==1)//汽机转子轴向位移{PlaySoundA("D:\\DCSDATA\\CG_wincc\\Horn\\轴相位移高.wav",NULL,0);}if(GetTagFloat("ZDE785")>3||GetTagFloat("ZDE785")<-2||GetTagBit("VE209")==1)//汽机转子胀差{PlaySoundA("D:\\DCSDATA\\CG_wincc\\Horn\\胀差高.wav",NULL,0);}if(GetTagFloat("AI_0094")>3240)//转速{PlaySoundA("D:\\DCSDATA\\CG_wincc\\Horn\\汽轮机转速高.wav",NULL,0);}if(GetTagBit("DI_0175")==1||GetTagBit("DI_0180")==1)//保护跳闸{PlaySoundA("D:\\DCSDATA\\CG_wincc\\Horn\\发电机保护跳闸.wav",NULL,0);}if(GetTagBit("DI_0177")==1||GetTagBit("DI_0181")==1)//定子转子一点接地{PlaySoundA("D:\\DCSDATA\\CG_wincc\\Horn\\发电机转子接地.wav",NULL,0);}if(GetTagBit("DI_0176")==1)//过负荷{PlaySoundA("D:\\DCSDATA\\CG_wincc\\Horn\\发电机过负荷.wav",NULL,0);}if(GetTagBit("DI_0182")==1)//失磁{PlaySoundA("D:\\DCSDATA\\CG_wincc\\Horn\\发电机失磁.wav",NULL,0);}if(GetTagBit("SOE_15")==1)//ETS动作{PlaySoundA("D:\\DCSDATA\\CG_wincc\\Horn\\ETS动作.wav",NULL,0);}}----------------------------------------------------------------------------------------------——————19、闪烁边框图片的脚本——————Flash-简短描述使用Flash组中的函数可以修改或调用各种闪烁属性。1.longintGetBackFlashColorOff(LPCTSTRlpszPictureName,LPCTSTRlpszObjectName)函数,指定取消激活状态的闪烁背景色读出闪烁颜色的实例{longintflashcol_on;//获得背景闪烁颜色Flashcol_on=GetBackFlashColorOn(lpszPictureName,"Group1");//自定义代码//在那里用户可以使用返回值做某事}GetBackFlashColorOn函数参数:“lpszPictureName”是在其中组态该对象的画面的名称。“Group1”是该对象的名称。1).读出该对象的开状态的当前背景闪烁颜色以及flashcol_on中的缓冲区。2).执行处理返回值的自定义代码。2.longintGetBackFlashColorOn(LPCTSTRlpszPictureName,LPCTSTRlpszObjectName)函数,指定激活状态的背景闪烁颜色。读出闪烁颜色的实例{longintflashcol_on;//获得背景闪烁颜色Flashcol_on=GetBackFlashColorOn(lpszPictureName,"Group1");//自定义代码//在那里用户可以使用返回值做某事}GetBackFlashColorOn函数参数:“lpszPictureName”是在其中组态该对象的画面的名称。“Group1”是该对象的名称。1).读出该对象的开状态的当前背景闪烁颜色以及flashcol_on中的缓冲区。2).执行处理返回值的自定义代码。3.longintGetBorderFlashColorOff(LPCTSTRlpszPictureName,LPCTSTRlpszObjectName)函数,指定取消激活状态的边框或线闪烁颜色。读出闪烁颜色的实例{longintflashcol_on;//获得背景闪烁颜色flashcol_on=GetBackFlashColorOn(lpszPictureName,"Group1");//自定义代码//在那里用户可以使用返回值做某事}GetBackFlashColorOn函数参数:“lpszPictureName”是在其中组态该对象的画面的名称。“Group1”是该对象的名称。4.longintGetBorderFlashColorOn(LPCTSTRlpszPictureName,LPCTSTRlpszObjectName)函数,指定激活状态的边框或线闪烁颜色。读出闪烁颜色的实例{longintflashcol_on;//获得背景闪烁颜色flashcol_on=GetBackFlashColorOn(lpszPictureName,"Group1");//自定义代码//在那里用户可以使用返回值做某事}GetBackFlashColorOn函数参数:“lpszPictureName”是在其中组态该对象的画面的名称。“Group1”是该对象的名称。5.BOOLGetFlashBackColor(LPCTSTRlpszPictureName,LPCTSTRlpszObjectName)函数,指定是否激活背景闪烁。读出“闪烁背景激活”属性的实例{BOOLbflash_col;//了解闪烁是开还是关bflash_col=GetFlashBackColor(lpszPictureName,"Group1");if(bflash_col){//自定义代码//闪烁是否被激活}else{//自定义代码//闪烁是否被取消激活}}GetFlashBackColor函数参数:“lpszPictureName”是在其中组态该对象的画面的名称。“Group1”是该对象的名称。1).读出背景色闪烁是否被激活以及bflash_col中的缓冲区。2).根据该函数的返回值执行自定义代码。——————20、I/0脚本——————使用i_o组中的函数可以修改或调用影响输入和输出值的各种属性。char*GetAssignments(LPCTSTRlpszPictureName,LPCTSTRlpszObjectName)函数,对于列 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf ,分配文本给数值范围BOOLGetAssumeOnExit(LPCTSTRlpszPictureName,LPCTSTRlpszObjectName)函数,使用I/O域时,它指定退出该域时是否应用输入的数值。BOOLGetAssumeOnFull(LPCTSTRlpszPictureName,LPCTSTRlpszObjectName)函数,使用I/O域时,它指定完成输入时是否应用输入的数值。4.longintGetBitNumber(LPCTSTRlpszPictureName,LPCTSTRlpszObjectName)函数,使用列表类型“位”时,它指定输出值中相关的位。读出布尔型属性的实例{BOOLbHiddenInput;//获得隐藏输入的状态bHiddenInput=GetHiddenInput(lpszPictureName,"IOField1");if(bHiddenInput){//自定义代码//隐藏输入是否被激活}else{//自定义代码//隐藏输入是否被取消激活}}GetHiddenInput函数参数:“lpszPictureName”是在其中组态该对象的画面的名称。“IOField1”是该对象的名称。1).读出文本是否是粗体字以及bHiddenInput中的缓冲区。2).根据该函数的返回值执行自定义代码。5.BOOLGetClearOnError(LPCTSTRlpszPictureName,LPCTSTRlpszObjectName)函数,使用I/O域时,它指定错误输入后是否激活删除内容。6.longintGetDataFormat(LPCTSTRlpszPictureName,LPCTSTRlpszObjectName)函数,对于I/O域,它指定域内容的数据类型。读出布尔型属性的实例{BOOLbHiddenInput;//获得隐藏输入的状态bHiddenInput=GetHiddenInput(lpszPictureName,"IOField1");if(bHiddenInput){//自定义代码//隐藏输入是否被激活}else{//自定义代码//隐藏输入是否被取消激活}}——————21tag脚本——————使用来自Tag组的函数可以设置或调用变量。1.BOOLGetTagBitStateWait(TagTag_Name,PDWORDlp_dwstate)函数,建立数据类型“二进制变量”的过程变量的数值。直接从PLC读取该数值。也返回变量的状态。读出二进制类型变量的实例{DWORDdwstate;BOOLbValue;dwstate=0xFFFFFFFF;//获得该变量值//dwstate是变量状态bValue=GetTagBitStateWait("gs_tag_bit",&dwstate);//创建包含该变量值的字符串if(bValue){//自定义代码//该变量的数值是否是true..}else{//自定义代码//该变量的数值是否是false}}GetTagBitStateWait函数参数:“gs_tag_bit”是该变量的名称。“&dwstate”是应在其中存储变量状态的变量地址。1).读出该变量值以及bstate中的缓冲区。该函数将变量状态存储在dwstate中。2).根据该函数的返回值执行自定义代码。——————22、Wincc项目脚本——————使用来自WinCC组的函数可以在运行系统中定义各种设置。使用System子组中的函数可以操作WinCC运行系统。1.BOOLDeactivateRTProject()函数,取消激活该项目。取消激活WinCC运行系统的实例{//取消激活运行系统DeactivateRTProject();}该函数取消激活WinCC运行系统。BOOLExitWinCC()函数,终止WinCC退出WinCC的实例{//退出winccExitWinCC();}该函数终止WinCC。WinCC组包含影响整个WinCC系统的函数。1.BOOLGetHWDiag(LPCTSTRlpszPictureName,LPCTSTRlpszObjectName,LPCTSTRlpProperties)函数运行时该函数可实现诊断的直接启动,由事件触发。必须在对象上组态、运用该事件。如果该事件发生,硬件诊断功能从关联PLC的STEP7被启动。为了使用该功能,必须满足下列条件:WinCC项目,带有从其进行访问的画面,而且STEP7项目必须在同一台计算机上。必须将WinCC项目存储为STEP7项目(STEP7Projekt\wincproj\WinCCProjekt)的子目录。已将S7变量映射到WinCC。2.BOOLGetHWDiagLevel(LPCTSTRlpszPictureName,LPCTSTRlpszObjectName,LPCTSTRlpProperties,DWORDdwLevel)函数根据在dwLevel下面指定的用户管理员功能号为激活的用户执行用户配置文件级测试。之后,运行时诊断被直接启动并由事件触发,须在对象上组态该事件。如果该事件发生,硬件诊断功能从关联PLC的STEP7被启动。为了使用该功能,必须满足下列条件:在WinCC中激活的用户必须有必要的用户配置文件级。WinCC项目,带有从其进行访问的画面,而且STEP7项目必须在同一台计算机上。必须将WinCC项目存储为STEP7项目(STEP7Projekt\wincproj\WinCCProjekt)的子目录.已将S7变量映射到WinCC。3.BOOLGetKopFupAwl(LPCTSTRlpszPictureName,LPCTSTRlpszObjectName,LPCTSTRlpProperties)函数该函数执行WinCCStep7编辑器“KFA”的网络激活。执行该函数,完成两项子任务:建立从WinCC访问网络所需要的数据。将该数据传送到Step7并使用AUTAPI定位Step7程序中操作数的利用点。4.BOOLGetKopFupAwlLevel(LPCTSTRlpszPictureName,LPCTSTRlpszObjectName,LPCTSTRlpProperties,DWORDdwLevel)函数根据在dwLevel下面指定的用户管理员功能号为激活的用户执行用户配置文件级测试,然后访问Step7编辑器“KFA”。作为三项子任务执行该函数:建立从WinCC进行网络访问所需要的数据。在WinCC中为激活的用户执行用户配置文件级测试。将该数据传送到Step7并使用AUTAPI定位Step7程序中操作数的利用点。5.voidOnDeactivateExecute()函数终止WinCC时调用该函数。由于它是 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 函数,可以插入指令,然后执行它们。6.voidOnErrorExecute(CCAPErrorExecuteErrorExecute)函数执行动作或函数而发生错误时由系统调用OnErrorExecute。此函数能够确定出错的准确原因。由系统调用该函数,并且不要求附加的调用命令。由于包括作为标准函数的此函数,可以改变输出的类型。7.voidOnTime(CCAPTimetime)函数OnTime只能由系统调用。该函数给出所有动作的运行时间或确定哪个动作的运行时间超出了指定时间。通过APDIAG可以激活和取消激活时间测量。由于此函数是一个标准函数,所以可以通过修改函数代码来改变输出的类型。结构定义CCAPTimetypedefstruct{DWORDdwCurrentThreadID;当前线程的线程IDDWORDdwCode;代码BOOLbCycle;周期/非周期char*szApplicationName;应用程序的名称char*szFunctionName;函数的名称LPVOIDlpParam;指向动作堆栈的指针DWORDdwParamSize;动作堆栈的大小doubledblTime;DWORDdwFlags;标记}CCAPTime;组成部分dwCodedwCode结构元素提供OnTime调用信息:dwCode=113用每个动作的时间调用dwCode=114用一个动作的超时调用dwFlagsdwFlags结构元素提供输出类型的信息:dwFlags=TRUE结果被输出到文件中。dwFlags=FALSE结果被输出到诊断窗口中——————23、Alarm脚本——————Alarm组包含控制WinCC报警控件的函数。标准函数可用于工具栏中的每一个按钮。这些函数可用来创建自定义工具栏,例如选择画面,或者定义控件上的设置。1.voidAcknowledgeMessage(DWORDMsgNr)函数,确认消息系统中带编号的消息,该编号被传递为参数。使用标准函数操作WinCC报警控件的实例{//确认选择的报警记录消息AcknowledgeMessage(GetTagWord("U08i_MsgNr"));}指定待确认的消息号。在本例中是从变量读取的。2.BOOLAXC_OnBtnArcLong(char*lpszPictureName,char*pszMsgWin)函数,在消息窗口中该函数表示消息存储在长期归档中。使用标准函数操作WinCC报警控件的实例{//跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst("gs_alarm_00","Control1");}AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。Control1是WinCC报警控件的对象名。3.BOOLAXC_OnBtnArcShort(char*lpszPictureName,char*pszMsgWin)函数,在消息窗口中该函数表示消息存储在短期归档中。使用标准函数操作WinCC报警控件的实例{//跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst("gs_alarm_00","Control1");}AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。Control1是WinCC报警控件的对象名。4.BOOLAXC_OnBtnComment(char*lpszPictureName,char*pszMsgWin)函数外部消息窗口操作,该函数显示先前所选消息的注释。使用标准函数操作WinCC报警控件的实例{//跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst("gs_alarm_00","Control1");}AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。Control1是WinCC报警控件的对象名。5.BOOLAXC_OnBtnEmergAckn(char*lpszPictureName,char*pszMsgWin)函数,外部消息窗口操作,此函数打开确认对话框(紧急确认/复位)。使用标准函数操作WinCC报警控件的实例{//跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst("gs_alarm_00","Control1");}AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。Control1是WinCC报警控件的对象名。6.BOOLAXC_OnBtnHornAckn(char*lpszPictureName,char*pszMsgWin)函数,外部消息窗口操作,该函数确认蜂鸣器信号。使用标准函数操作WinCC报警控件的实例{//跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst("gs_alarm_00","Control1");}AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。Control1是WinCC报警控件的对象名。7.BOOLAXC_OnBtnInfo(char*lpszPictureName,char*pszMsgWin)函数,外部消息窗口操作,该函数显示信息文本。使用标准函数操作WinCC报警控件的实例{//跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst("gs_alarm_00","Control1");}AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。Control1是WinCC报警控件的对象名。8.BOOLAXC_OnBtnLock(char*lpszPictureName,char*pszMsgWin)函数,外部消息窗口操作,该函数打开“设置锁定”对话框。使用标准函数操作WinCC报警控件的实例{//跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst("gs_alarm_00","Control1");}AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。Control1是WinCC报警控件的对象名。9.BOOLAXC_OnBtnLockUnlock(char*lpszPictureName,char*pszMsgWin),函数,该函数锁住在消息窗口中选择的消息。之后,不再归档该消息。该函数释放在锁定列表中选择的消息。使用标准函数操作WinCC报警控件的实例{//跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst("gs_alarm_00","Control1");}AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。Control1是WinCC报警控件的对象名。10.BOOLAXC_OnBtnLockWin(char*lpszPictureName,char*pszMsgWin)函数,外部消息窗口操作.该函数调用锁定列表。使用标准函数操作WinCC报警控件的实例{//跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst("gs_alarm_00","Control1");}AXC_OnBtnMsgFirst函数参数:“gs_al
本文档为【wincc全套脚本总结】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥18.0 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
欧阳
暂无简介~
格式:doc
大小:1MB
软件:Word
页数:0
分类:企业经营
上传时间:2021-09-16
浏览量:59