wincc全套脚本总结_第1页
wincc全套脚本总结_第2页
wincc全套脚本总结_第3页
wincc全套脚本总结_第4页
wincc全套脚本总结_第5页
已阅读5页,还剩74页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1> wince全局脚本动作藏控件#include ,zapdefap h"int gscAction ( void )/ WINCC:TAGNAME.SECTION.START/ syntax: #define TagNamelnAction "DMTagName"/ next TagID : 1/ WINCC:TAGNAME.SECTION.ENDint value;value=GetTagBit为触发的变量。if(value=l)SetVisibleClianxi.pdP,"按钮8", TRUE) ;/lianxi. pdl 为控制

2、对彖所在画面名,“按钮 8”为对彖名称elseSetVisibleClianxi. pdl,"按钮8,z, FALSE) ;/lianxi. pdl/ WINCC:PICNAME.SECTION.START/ syntax: #define PicNamelnAction "PictureName"/ next PicID : 1/ WINCC:PICNAME.SECTION.ENDreturn 0; 说明:在触发器里选择变量IM_in2、wince全局脚本动作-提示框#include ,?apdefap hint gscAction( void )/ WINCC

3、:TAGNAME.SECTION.START/ syntax: #define TagNamelnAction "DMTagName"/ next TagID : 1/ WINCC: TAGN.ME_SECTION_END int value:value二GetTagBit("IM_in"); if(value=l)Mess適eBox (NULL, ”请确认三厅相关门是否关好,或者请解锁。提示框 ,MB_0K MB.ICONEXCLAMATION MB.SETFOREGROUND MB.SYSTEMMODAL);/ WINCC:PICNAME.SECTI

4、ON.START/ syntax: #define PicNamelnAction "PictureName"/ next PicID : 1/ WINCC:PICNAME.SECTION.ENDreturn 0; 说明:在触发器中选择变量触发。3、趋势面板char * str_a = NULL;mt Hi;iiit Lo;sti_a = GetTagChar(MTrendTagName 1H);Lo= GetTagSWord(HTiendLon);Hi= GetTagSWord(HTrendHr,);SetPiopWord(lpszPictureNaiiie/,qushi

5、,nTienclIndex,0);SetPiopChaiXlpszPictuieNamequslu'Y'TiendTagNamestra);SetPiopWord(lpszPictureNaiiie/,qushi,nValueAxisBegmValueH,Lo);SetPiopWord(lpszPictureNaiiie/,qushi,nValueAxisEnd;alue,Hi);、获取位号SetTagChairendTagNameryTrocessValueArchivePT 111 M);/Retuin-Type: BOOL SetTagSWordfTiendHiOO);S

6、etTagSWoidfTrendLoO);SetTagByte(HTrendenM, 1);5、调用登陆函#pragnia code(Museadnmi.dirr)#mclude TWRT_APIJr#pragnia codeQif (strcmp(GetTagChar(,CurrentUserH)/H, )=0)PWRTLogin(C);6、时间同步void SetCpuTimeQ#piagnia code(nkernel32.dirr);void GetLocalTime(SYSTEMTIME *lpst);#pragnia codeQ;SYSTEMTIME timeBOOL ret;/p

7、iiiitf(n Start function SetCpuTmieinn);GetLocalTune (&time);ret= SetTagMultiWait(M%d%d%d%d%d%d%dM,Mdata_yearnjune.wYear-2000,Mdata_month,tiine.wMontli."datadavjime.wDay;MdataJioiunjiiiie.wHouiMdata_MINUTEH.time.wNIinute,"dataSECOND'time.wSecond,-dataFLAGl)7、对话框调用BOOL A;BOOLB;HWND h

8、wnd=NULL;mt RetMsg;A=G筑TagEitCTJ_ANNILr);/RenimTyp卍 BOOL hwnd=FmdWmdow(NULL:,WmCC-运行系统-J; if(A=0)RetMsg =MessageBox (hwnd.确定要停机?”停机警告役 MB_OKCANCEL|MB_SYSTEMMODAL|MB_SETFOREGROUND);if(RetMsg=LDOK)SetTagBitC'TJ.ANNIU 1);MessageBox (hwnd, ” 停机”,”停机警告”,MB_OKME_SYSTEMMODAL|MB_SETFOREGROUND);SetTagBit

9、C'TJ.ANNIUO);else B=0;else8、声音报警#pragnia code(nWiimim.dir,)VOID WINAPI PlaySoundA(char* pszSound,char* hmode,DWORD dwflag);#pragnia codeQif<GetTagFloat(nLIST555H)>500)PlaySoundA(nD:DCSDATACG_wmccHoinHoin_Attention.wavM,NULL4); if(GetTagFloatCLIST555")<300)PlaySoundA(nD :DCSDATACG_w

10、mccHoinalsndmgr. wav*NULL. 1);9、水平移动建立内部变量BOOL-Q,无符号32位-P全局动作iiit a;iiit al;a=GetTagBit(nQM);al=GetTagDWord(,PH);al=al+10;if(al>=100)al=0;SetTagDWoidfTal);然后用一个按钮控制二进制变量Q,为启动信号。物体的X位置对应的是变量P,设置为模 拟量。当P为1的时候对应的X位置。P为2的时候对应X的位置,以此类推,就可以做出 物体移动画面了,要做全局脚本10、WinCC中调用SQL语言仁创建一个SQL文件,此文件在ISQL中建立,文件内包含所要

11、执行的SQL语句.Windows 对话框实现。具体如下:2、在WinCC中用C Script调用上述SQL文件,如下所示:#in clude&quot;apdefap.h&quot;void OnLButtonDown(char* IpszPictureName,char* IpszObjectName,char* IpszPropertyName,UINT nFlagsjnt x,int y)char*a=&quot;c:siemenscommonSQLANYISQL-q-bcUID=DBA;PWD=SQL;DBF=E:testsqltestsqlRT.DB;DBN=

12、CC_testsql_99-12-03-12:4&26R;READE:testsqltest.sql&quot;Printf(&quot;%sm&quot;,a);ProgramExcute(a);下面是一个简单的SQL文件内容:select *from pde#hd#t#test;output to e:test2.txt FORMAT ascii注意:文件名及路径中不要带空格。11、设置或重置一个变量void OnClick(char* IpszPictureName, char* IpszObjectName, char* IpszPropertyName

13、)BOOL 乙z=GetTagBit(&quot;MyBitVariable&quot;);/ 获得变量值if (z=0)SetTagBit(&quot;MyBitVariable&quot;,1); 设置变量值elseSetTagBit(&quot;MyBitVariable&quot;,0);12、运行时图形产生动态旋转#inelude &quot;apdefap.h&quot;long _main(char* IpszPictureName, char* IpszObjectName, char*IpszPropertyNa

14、me)static int x=25,y,z;/x为半径的初始值为25, y为切换变量,z为搅拌机运行状态变量 z=GetTagBit(&quot;202搅拌机运行&quot;); 取得PLC搅拌机的运行状态 if(z!=O)switch(y)case 0:x=x-4;y=1; break; default:x=x+4;if(x&gt;=25) y=o; break; return x;13、WINCC“如何在程序中动态修改用户密码1、点击“开始”-“设置”“控制面板”“管理工具”-“数据源(ODBC) ”,打开ODBC 数据源管理器2、在用户DSN页面的用户数据源中找

15、到与当前项目所关联的一项,其名称为“CC_项目名 _项目建立日期时间”,记下该项的名称3、在脚本中加入以下代码:#pragma code("UseGen.dll")include "USEGENAP.H"#pragma code()LPCMN_ERROR err; /定义的LPCMN_ERROR型变量,在函数调用中需使用if (PWGENConnect("CC_ass_04-09-21_16:35:22",err)/ 建立与数据库的联接,其中CC_ass_04-09-21_16:35:22用第二步中记下的名称取代if(PWGENCha

16、ngePassword(GetTagChar("user"),GetTagChar("oldpassword"),GetTagChar ("password"),err) /修改密码,user,oldpassword,password分别为存贮用户名,原密码,新密 码的内部变量,类型为文本变量8位字符集密码修改成功后的操作,如给用户提示等PWGENDisconnect(err); 断开与数据库的联接4、编译运行程序5、工作完成6、与用户管理相关的函数定义存贮在APPLIB 录卞的USEGENAP.H文件中,可根据上 面示例自行完成添加

17、用户,修改权限等功能。14>WinCC如何实现鼠标O nMouseOVer事件用WINDOWAPI函数GetCusoiPos获取当前鼠标位置,用GetWmdowRect函数获取窗I I位 置,两值相减得鼠标在WINCC frame上的相对位置。用全局脚本(设定为Is定时刷新), 然后获取要OiiMouseOver事件的物体的位置,并与鼠标位置相比较,如一致则触发自己定 义的动作。#iiiclude Hapdefap.hn mt gscAction( void )#pragnia code(Muser32.dir*);BOOL GetCusoiPos(POINT IpPomt); 获取鼠标

18、的位置(绝对位置-对应屏幕分辨率) BOOL GetWmdowRect(HTSID hwnd,LPRECT IpRect); 获取窗体位置#piagnia codeQ;POINT pPos;RECT iRec;HWND hwnd;BOOL bRet,bRet2;long lLeftJTopJWidthJHeight;long 1XJY;char szSti100;hwnd=FmdWmdow(NULL/,WinCC-Runtmie - ”); /如语言为中文应为WuiCC 运行系统 if (hvnd=0) pimtf(HniEnor! WmCc Handle is %d,hwnd);goto o

19、ver; bRet=GetCursorPos(&pPos);if (bRet=0) goto over;bRet2=GetWmdowRect(hwnd.&rRec);if (bRet2=0) goto over;lX=pPos.x-rRec.left; /鼠标 对置1 Y=pPos.v-rRec.top; 鼠标 位置如呆为非全屏模式,需将上述数值中的高height判断减去标题栏的宽度/priiitf(nThe Current Cusoi Pos is x:%d,y:%din,pPos.x,pPos.y);/priiitf(HThe Cusoi Pos in Window is

20、x:%d?y:%drn,pPos.x-lLeft2,pPos.y-lTop2); lLeft=GetIft(nNewPdlO.Pdr,TextlH); /Return - Type :long mt lTop=GetTop(nNewPdlO.PdrMTextlH); /Return - Type :long int lWidth=GetWidth(nNewPdlOTdl,TextlH); /Return - Type :long int lHeight=GetHeight(HNewPdlO.PdrMTextr,); /Return - Type :long int if (lX>=lLe

21、ft)&&(lY>=lTop)&&(lX<=lLeft-FlWidth)&&(lY<=lTop+lHeight) sprmtf(szStr/%d,%dMJXJY);SetText(HNewPdlO.Pdr,nTextrszStr); /TReturn - Type :char*/priiitf(HThe Text! Pos is x:%d,y:%dinH,lLeft2jTop-lTop2);over:return 0;15、如何在退出WINCC监控时直接关闭电脑1. 利用动态向导2. 在脚本中加入 DMExitWinCCEx (

22、DM_SDMODE_SYSTEM);也町以16、ii WINCC API函数读出当前报警消息1、使用GMsgFunction中读出当前报警信息的ED (dwMsgNr);2、使用MSRTGetMsgCSData函数读出该报警信息ID对应文本库TEXTLIB中的文本LD (dwTextEDl );3、使用MSRTGetMsgText函数读出该文本ID的文本。信息到达处理:如果读取文本成功,则置文本变量MSG。信息离去处理:如果MsgNr与上一次相同,则复位MSG,如果不是,则继续保持信息。 具体函数说明请看ODK文档BOOL GMsgFunction( char* pszMsgData)#pra

23、gnia code(Mmsrtcli.dlln)# i nclude Hmsrtapi.hH#pragnia codeQ;MSG_TEXT_STRUCT tMeld;MSG CSDATA STRUCT sM;CMN_ERROR err;BOOL bRet;DWORD dwTextIDl;DWORD dwMsgNum;char szMsg255;#define TAG.MSG "MSG"MSG RTDATA STRUCT niRT;meniset( &mRT、0, sizeof( MSG_RTDATA_STRUCT ); if( pszMsgData != NULL

24、)pszMsgData,pnntf( HMeldung : %s pszMsgData ); sscaiif("%ld%ld,%04d02d02d%02d%02d%02d%03d,%ld, %ld. %ld, %d%d”,& niRT. dwMsgNr, / Meldungsnununer&niRT.dwMsgState, / Status MSG_STATE_COME° _GO_QUIT,._QUIT_SYSTEM& niRT.stMsgTime.wYeai; / Tag&niRT.stMsgTime.wMontli, / Monat&am

25、p; niRT.stMsgTime.wDay, / Jalu& niRT. stMsgTime. wHoui; / Stunde& niRT.stMsgTime.wMmute, / Minute&niRT.stMsgTime.wSecond, / Sekunde& niRT.stMsgTime.wMilliseconds, / Millisekunde&niRT.dwTiineDifi / Zeitdauer der aiistehenden Meldung& niRT.dv<ountei / Interner Meldungsz?hler

26、&mRT.dwFlags, / Flags( intern)& niRT.wPValueUsed, &mRT.wTextValueUsed);*code for dcountif (mRTdvMsgSme=MSG_STATE_COME) 信息到达处理dwMsgNum=niRT. dwMsgNr;pnntf(MrnThe Alaim Message No is %d ?rnH,dwMsgNum);bRet=MSRTGetMsgCSData(dwMsgNum,&sM,&亡 u);if(bRet=TRUE)dwTextID 1=sM.dwTextID 0;pn

27、ntf(MrnThe TextID of The MessageNr %d is %d !rnH,dwMsgNum,dwTextID 1);bRet=MSRTGetMsgText( 1 .dwTextID 1,&tMeld, &w);if(bRet=TRUE)sprmtf(szMsg/,%s,tMeld.szText);pnntf(MrnThe Text of TextID %d is %s !rnH.dwTextID 1 ,szMsg); if (mRTdvMsgSme=MSG_STATE_GO)/信息离去处理dwMsgNum=niRT. dwMsgNr;if (dvMsgN

28、um=G战TagDWoid(TAG_MSG_NR) SetTagChar(TAG-MSGnn);*code for dcount/ Meldungsdaten euilesen/ Piozesswerte lesen, falls gew?§? lnschtpnntf(,rNr : %d, St: %x, %d-%d-%d %d:%d:%d.%d, Dui: %d. Cut %d, Fl %drnM , niRT.dwMsgNr,niRT. d wMsgState,niRT. stMsgT iine. wDay,niRT. stMsgTune. wMonth,niRT.stMsgTm

29、ie.wYeai;niRT.stMsgTmie.wHour,niRT.stMsgTiine.wMmute,niRT.stMsgTiine.wSecond,niRT.stMsgTune.wMilliseconds, niRT.dwTimeDiff,niRT.dwCounter, niRT.dwFlags );SetTagChai(TAG_MSGszMsg); retuin( TRUE);17、实现用户登陆日志(wince中用c脚本实现?)用户登陆口志:(包括用户的登陆退出信息,以便查询在什么时间段是哪个用户在使用这个 监控软件)# i nclude Hapdefap.h"mt gscA

30、ction( void )#piagnia code(,kernel32.dllH)VOID GetLocalTune(LPSYSTEMTIME lpSvstemTime);#piagnia codeQchar* username;charbufI128;static char preuser128;unsigned 比b,c、d&f;FILE* fp;SYSTEMTIME sysTmie;读取系统时间,并且复制给变量a,b,c,d,e,fGetLocalTmie (&sysTime);a=svsTune.wHour;b=svsTune.wMinute;c=svsTune.wS

31、econd;fsvsTune.wYear;e=sysTiine.wMonth;d=sysTuue.wDav;得到当前用户名称username = G 亡代 ntUsei”);fp= fbpen(Mc:wincclog.txf Ha+H);if(sucmp(useiname, pieuser)!=0) /如果当前用户名称和前一个用户名不同if(strcmp(useniaine, ',n) != 0)&&(strcmp(preusei nn) = 0) /如果当前用户名称不空同时前一 个用户名为空sprintf(buf "用户:st 登陆时间是:t %d-%d-%

32、d,%dd-%dn", username,a,b,c,d,e,f); fputs(buf fp);elseif(strcmp(usernaine, = 0)&&(strcmp(preusei; != 0) /如果当前用户名称为空同时前一 个用户名不空sprmtf(buf "用户:%st 退出时间是:t %d-%d-%d,d-%ddn", preusei;a,b,cj,e,f); fputs(bu£ fp);elsesprmtf(buf "用户:%st 退出时间是:t %d-%d-%d,d-%ddn", preusei;

33、a,b,cj,e,f);fputs(bu£ fp);sprmtf(buf "用户st 登陆时间是:t %d-%d-%d,d-%ddn", username,a5b,c,d,e,f); fputs(bu£ fp);sticpy(preuser, username);fclose(fp);return 0;18、全局脚本声音报警#pragnia code(”Winnimdll”)VOID WINAPI PlaySoundA(char* pszSoundxhar* hmode,DWORD dwflag);#pragnia codeQif (GetTagBit(

34、nXYH)=0)if(GetTagFloat("LIST555")>500)热井液位PlaySoundA(” D:DCSDATACG_winccHom 热井液位高 1 .wav",NULL,0);if(GetTagFloat("LIST555")<300)热井液位PlaySoimdA(”D:DCSDATACG_winccHom 热井液位低 1 .wav",NULL,0);iftGetTagFloat("TE421AH)> 100|GetTagFloat("TE421B,)> 100|GetT

35、agFloat(,TE423AM)> 100 | GetTagFloat("TE423B")>100 | GetTagFloat("TE425,r)>100 | GetTagFloat("TE427")> 100|GetTagFloat(,TE442,)> 100)/轴瓦温度PlaySoundA(” D:DCSDATACG_winccHom 轴瓦温度高 1 .wav",NULL,0);if(GetTagFloat(” TIE485”)>45)冷油器PlaySoimdACDWDCSDATACG_win

36、ccHom 冷 油 器出 丨 I 油 温 高.wavNULL.O);if(GetTagFloat(HPT091 H)<0.5)进汽压力PlaySoimdA(,D:DCSDATACG-wmccHoni 蒸汽压力低.wavfNULL,O);if(GetTagFloat(HPT109M)>40)/真空低PlaySoimdA(,D:DCSDATACG-wmccHoni 排汽压力高.wavfNULL,O);if(GetTagFloat(HPT 131 ”) <O 13)润滑油压力低PlaySoimdA(,D:DCSDATACG-wmccHoni 润滑油压力低 1 .wavNULL.O)

37、;if(GetTagFloat(HPDT213 ”)>0.05|GetTagFloat(MPDT215n)>0.05|GetTagBit(HPDS071 H)=0|GetTagBit(MPDS073H)=0)滤油器差压PlaySoimdA(HD:DCSDATACG_wmccHorn 滤油器差压高.wavfNULL,O); if(GetTagFloafPT121”)<065)主油泵出丨I压力PlaySoimdACDWDCSDATACG_winccHom 主 油泵出 I I 压力 低.wavNULL.O);if(GetTagFloat(HLIST551 H)<-190)油箱

38、油位PlaySoimdA(HD:DCSDATACG_wmccHoni 油箱油位低.waVNULL,O);if(GetTagFloat(nVE735AH)>52 | GetTagFloat(HVE737AH)>52|GetTagFloat(nVE745AM)>52 | GetTagBit(nXE202M)=l | GetTagBit(MXE204n)=l | GetTagBit(nXE206n)= 1)振动大PlaySoimdA(HD:DCSDATACG_wmccHoni 轴瓦振动高.waVNULL,O);if(GetTagFloat(nZE769n)>0.4| GetT

39、agFloat(nZE769H)<-0.4|GetTagBit(nZE208n)=l)汽机转子轴向位移PlaySoundA(” D:DCSDATACG_winccHom 轴相位移高.wav",NULL,0); if(GetTagFloat(”ZDE785”)>3 | GetTagFloat("ZDE785")<-2 | GetTagBit(,'VE209,)=l)汽机转子胀差PlaySoundA(” D:DCSDATACG_winccHom 胀差高.wav",NULL, 0);if(GetTagFloat(',AI_00

40、94")>3240)/转速PlaySoundA(” D:DCSDATACG_winccHom 汽轮机转速高.wav",NULL,0);iftGetTagBit(nDI_0175”)= 1|GetTagBitC'DI.0180“)= 1)保护跳闸PlaySoundA(” D:DCSDATACG_winccHom 发 电机保护跳闸.wav'1,NULL,0); iftGetTagBit(nDI_0177”)= 1|GetTagBit("DI_0181 “)= 1)定子转子一点接地PlaySoundA(” D:DCSDATACG_winccHom

41、发电机转子接地.wav'1,NULL,0); if(GetTagBit(nDI_0176”)= 1)/过负荷PlaySoundA("D:DCSDATACG_wmccWHoin 发电机过负荷.wav",NULL,0); iftGetTagBit(nDI_0182")= 1)失磁PlaySoundA(” D:DCSDATACG_winccHom 发电机失磁.wav",NULL,0);if(GetTagBit("SOE_15,')=l)/ETS 动作PlaySoundA("D:DCSDATACG_wmccHoinETS 动作

42、.wav",NULL,0);19、闪烁边框图片的脚本Flash -简短描述使用Flash组中的函数可以修改或调用各种闪烁属性。l.long mt GetBackFlashColoiOff(LPCTSTR lpszPictureName, LPCTSTR IpszObjectName)函 数,指定取消激活状态的闪烁背景色读出闪烁颜色的实例long iiit flashcol_on;获得背景闪烁颜色Flash col_on = GetBackFlashColoiOn(lpszPictiueNanie,"Group T');自定义代码在那里用户可以使用返回值做某事GetB

43、ackFlashColorOn 函数参数:“ lpszPicnneName ”是在其中组态该对象的画面的名称。 “Group 1”是该对彖的名称。1) .读出该对彖的开状态的当前背景闪烁颜色以及flashcol_on中的缓冲区。2) .执行处理返回值的自定义代码。2. long mt GetBackFlashColoiOn(LPCTSTR IpszPictureNanie, LPCTSTR lpszObjectName)函 数,指定激活状态的背景闪烁颜色。读出闪烁颜色的实例long iiit flashcol_on;获得背景闪烁颜色Flash col_on = GetBackFlashColo

44、iOn(lpszPictiueNanie,"Group T');自定义代码在那里用户可以使用返回值做某事GetBackFlashColorOn 函数参数:“ lpszPicnneName ”是在其中组态该对象的画面的名称。 “Group 1”是该对彖的名称。1) .读出该对彖的开状态的当前背景闪烁颜色以及flashcol_on中的缓冲区。2) .执行处理返回值的自定义代码。3. long int GetBoideiFlashColoiOff(LPCTSTR IpszPictuieName, LPCTSTR lpszObjectName)函 数,指定取消激活状态的边框或线闪烁颜

45、色。读出闪烁颜色的实例long iiit flashcol_on;获得背景闪烁颜色flashcol_on = GetBackFlashColorOn(lpszPictiueNanie,"Group T');自定义代码在那里用户可以使用返回值做某事GetBackFlashColorOn 函数参数:“ lpszPicnneName ”是在其中组态该对象的画面的名称。“Group 1”是该对彖的名称。4. long int GetBorderFlashColoiOn(LPCTSTR IpszPictureNanie, LPCTSTR IpszObjectNanie)函 数,指定激活

46、状态的边框或线闪烁颜色。读出闪烁颜色的实例long iiit flashcol_on;获得背景闪烁颜色flashcol_on = GetBackFlashColoiOn(lpszPictuieNanie,"Group T');自定义代码在那里用户可以使用返回值做某事GetBackFlashColoiOii 函数参数:“ lpszPicnueName ”是在其中组态该对象的画面的名称。“Group 1”是该对彖的名称。5. BOOL GetFlasliBackColoi(LPCTSTR lpszPictmeName, LPCTSTR IpszObjectNanie)函数,指 定

47、是否激活背景闪烁。读出“闪烁背景激活”属性的实例BOOL bflash_col;了解闪烁是开还是关bflash_col = GetFlasliBackColoi(lpszPictmeName,"Group 1");if(bflash_col)/自定义代码闪烁是否被激活else/自定义代码闪烁是否被取消激活GetFlasliBackColoi 函数参数:“ lpszPicnueName ”是在其中组态该对象的画面的名称。“Group 1”是该对彖的名称。1) .读出背景色闪烁是否被激活以及bflash.col中的缓冲区。2) .根据该函数的返回值执行自定义代码。20. I/O

48、 脚本使用1_0组中的函数可以修改或调用影响输入和输出值的各种属性。1. chai* GetAssigmnents(LPCTSTR lpszPicnueName, LPCTSTR IpszObjectNanie)函数,对于列 表,分配文本给数值范围2. BOOL GetAssumeOiiExit(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,使 用I/O域时,它指定退出该域时是否应用输入的数值。3. BOOL GetAssumeOnFull(LPCTSTR lpszPictureNaine, LPCTSTR lpszObjectName)

49、函数,使 用I/O域时,它指定完成输入时是否应用输入的数值。4. long iiit GetBitNumbei(LPCTSTR IpszPictuieName, LPCTSTR lpszObjectName)函数,使用列 表类型“位”时,它指定输出值中相关的位。读出布尔型属性的实例BOOL bHiddeiiliiput;获得隐藏输入的状态bHiddeiilnput=GetHiddenInput(lpszPicnireNaine,',IO Field 1");if(bHiddenInput)/自定义代码隐藏输入是否被激活else/自定义代码隐藏输入是否被取消激活GetHidde

50、nlnput 函数参数:“ lpszPictureName ”是在其中组态该对象的画面的名称。“ IO Field 1 ”是该对象的名称。1) .读出文本是否是粗体字以及bHiddeiilnput中的缓冲区。2) .根据该函数的返回值执行自定义代码。5. BOOL GetCleaiOnEnor(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,使用 DO域时,它指定错误输入后是否激活删除内容。6. long int GetDataFoiniat(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函

51、数,对于 DO域,它指定域内容的数据类型。读出布尔型属性的实例BOOL bHiddeiilnput;获得隐藏输入的状态bHiddeiilnput=GetHiddeiiInput(lpszPictureNaine,',IO Field 1");if(bHiddenInput)/自定义代码隐藏输入是否被激活else/自定义代码隐藏输入是否被取消激活21 tag 脚本使用来自Tag组的函数可以设置或调用变量。1. BOOL GetTagBitStateWait(Tag Tag_Name, PDWORD lp_dwstate)函数,建立数据类型“二进制变量”的过程变量的数值。直接从P

52、LC读取该数值。也返回变量的 状态。读出二进制类型变量的实例DWORD dwstate;BOOL bValue;dwstate = OxFFFFFFFF;获得该变量值/dwstate是变屋状态bValue=GetTagBitStateWait("gs_tag_bit",&dwstate);/ 创建包含该变量值的字符串if (bValue)/自定义代码该变量的数值是否是tme.else/自定义代码该变量的数值是否是falseGetTagB itStateWait 函数参数:“gs_tajb”是该变量的名称。“&dwstate”是应在其中存储变量状态的变量地址。

53、1) .读出该变量值以及bstate中的缓冲区。该函数将变量状态存储在dwstate中。2) .根据该函数的返回值执行自定义代码。22、Wince项目脚本使用来自WmCC组的函数可以在运行系统中定义各种设置。使用System子组中的函数可以操作WinCC运行系统。1. BOOL DeactivateRTPiojectQ函数,取消激活该项目。取消激活WmCC运行系统的实例取消激活运行系统DeactivateRTPioject ();该函数取消激活WmCC运行系统。2. BOOL ExitWinCC()函数,终 ll: WinCC3. 退出WinCC的实例退出 W111CCExitWmCC ();

54、该函数终止WinCC。WinCC组包含影响整个WinCC系统的函数。1. BOOL GetHWDuig(LPCTSTR IpszPictureNaine, LPCTSTR IpszObjectNaine, LPCTSTR IpProperties)函数运行时该函数町实现诊断的直接启动,由事件触发。必须在对彖上组态、运用该事件。 如果该事件发生,硬件诊断功能从关联PLC的STEP7被启动。为了使用该功能,必须满足下列条件:WinCC项目,带有从其进行访问的画面,而且STEP7项目必须在同一台计算机上。必须将 WmCC 项目存储为 STEP7 项目(STEP7 PiojektwincpiojWin

55、CC Piojekt)的子目 录。已将S7变量映射到WmCCo2. BOOL GetHWDiagLevel(LPCTSTR lpszPictureName, LPCTSTR IpszObjectName, LPCTSTR IpProperties, DWORD dwLevel)函数根据在dwLevel卜面指定的用户管理员功能号为激活的用户执行用户配置文件级测试。 之后,运行时诊断被直接启动并由事件触发,须在对彖上组态该事件。如果该事件发生,硬件诊断功能从关联PLC的STEP7被启动。为了使用该功能,必须满足下列条件:在AVinCC中激活的用户必须有必要的用户配置文件级。WinCC项目,带有从其进行访问的画面,而且STEP7项目必须在同一台计算机上。必须将 WinCC 项目存储为 STEP7 项目(STEP7 PiojektwincpiojWinCC Piojekt)的子目 录.已将S7变量映射到WmCCo3. BOOL GetKopFupAxvl(LPCTSTR lpszPictureName, LPCTSTR IpszObjectNaine, LPCTSTR IpProperties)函数该函数执行WmCC Step7编辑器“KFA”的网络激活。执行该函数,完成两项子任务:建立从WmCC访问网络所需要的数据。将该数据传送到Step

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论