wincc全套腳本總結(jié)_第1頁(yè)
wincc全套腳本總結(jié)_第2頁(yè)
wincc全套腳本總結(jié)_第3頁(yè)
wincc全套腳本總結(jié)_第4頁(yè)
wincc全套腳本總結(jié)_第5頁(yè)
已閱讀5頁(yè),還剩67頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1、wincc全局腳本動(dòng)作-隱藏控件#include apdefap.hint gscAction( void )/ WINCC:TAGNAME_SECTION_START/ syntax: #define TagNameInAction DMTagName/ next TagID : 1/ WINCC:TAGNAME_SECTION_ENDint value;value=GetTagBit(IM_in);/IM_in為觸發(fā)的變量。 if(value=1) SetVisible(lianxi.pdl,按鈕8,TRUE);/lianxi.pdl為控制對(duì)象所在畫(huà)面名,“按鈕8”為對(duì)象名稱(chēng)else

2、SetVisible(lianxi.pdl,按鈕8,FALSE);/lianxi.pdl/ WINCC:PICNAME_SECTION_START/ syntax: #define PicNameInAction PictureName/ next PicID : 1/ WINCC:PICNAME_SECTION_END return 0;=說(shuō)明:在觸發(fā)器里選擇變量IM_in2、wincc全局腳本動(dòng)作-提示框#include apdefap.hint gscAction( void )/ WINCC:TAGNAME_SECTION_START/ syntax: #define TagNameI

3、nAction DMTagName/ next TagID : 1/ WINCC:TAGNAME_SECTION_ENDint value;value=GetTagBit(IM_in);if(value=1) MessageBox(NULL,請(qǐng)確認(rèn)三廳相關(guān)門(mén)是否關(guān)好,或者請(qǐng)解鎖。,提示框,MB_OK|MB_ICONEXCLAMATION|MB_SETFOREGROUND|MB_SYSTEMMODAL); / WINCC:PICNAME_SECTION_START/ syntax: #define PicNameInAction PictureName/ next PicID : 1/ WINC

4、C:PICNAME_SECTION_ENDreturn 0;=說(shuō)明:在觸發(fā)器中選擇變量觸發(fā)。3、趨勢(shì)面板char * str_a = NULL;int Hi;int Lo;str_a = GetTagChar(TrendTagName1);Lo= GetTagSWord(TrendLo);Hi= GetTagSWord(TrendHi);SetPropWord(lpszPictureName,qushi,TrendIndex,0);SetPropChar(lpszPictureName,qushi,TrendTagName,str_a);SetPropWord(lpszPictureName,

5、qushi,ValueAxisBeginValue,Lo);SetPropWord(lpszPictureName,qushi,ValueAxisEndValue,Hi);4、獲取位號(hào)SetTagChar(TrendTagName1,ProcessValueArchivePT111);/Return-Type: BOOL SetTagSWord(TrendHi,200);SetTagSWord(TrendLo,0);SetTagByte(Trenden,1);5、調(diào)用登陸函數(shù)#pragma code(useadmin.dll)#include PWRT_API.H#pragma code()i

6、f (strcmp(GetTagChar(CurrentUser),)=0)PWRTLogin(c);-6、時(shí)間同步void SetCpuTime() #pragma code(kernel32.dll); void GetLocalTime(SYSTEMTIME *lpst); #pragma code(); SYSTEMTIME time BOOL ret; /printf(Start function SetCpuTimern); GetLocalTime(&time); ret= SetTagMultiWait(%d%d%d%d%d%d%d, data_year,time.wYear-

7、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、對(duì)話(huà)框調(diào)用BOOL A;BOOL B;HWND hwnd=NULL;int RetMsg;A=GetTagBit(TJ_ANNIU);/Return-Type: BOOL hwnd=FindWindow(NULL,WinCC-運(yùn)行系統(tǒng) - );if (A=0) RetMsg =MessageBox (hwnd, 確定

8、要停機(jī)?, 停機(jī)警告, MB_OKCANCEL|MB_SYSTEMMODAL|MB_SETFOREGROUND); if (RetMsg=IDOK) SetTagBit(TJ_ANNIU,1); MessageBox (hwnd, 停機(jī), 停機(jī)警告, MB_OK|MB_SYSTEMMODAL|MB_SETFOREGROUND); SetTagBit(TJ_ANNIU,0); else B=0;else -8、聲音報(bào)警#pragma code(Winmm.dll) VOID WINAPI PlaySoundA(char* pszSound,char* hmode,DWORD dwflag);#p

9、ragma code()if(GetTagFloat(LIST555)500)PlaySoundA(D:DCSDATACG_winccHornHorn_Attention.wav,NULL,1);if(GetTagFloat(LIST555)=100) a1=0;SetTagDWord(P,a1);然后用一個(gè)按鈕控制二進(jìn)制變量Q,為啟動(dòng)信號(hào)。物體的X位置對(duì)應(yīng)的是變量P,設(shè)置為模擬量。當(dāng)P為1的時(shí)候?qū)?yīng)的X位置。P為2的時(shí)候?qū)?yīng)X的位置,以此類(lèi)推,就可以做出物體移動(dòng)畫(huà)面了,要做全局腳本-10、WinCC中調(diào)用SQL語(yǔ)言 1、創(chuàng)建一個(gè) SQL文件,此文件在ISQL中建立,文件內(nèi)包含所要執(zhí)行的SQL

10、語(yǔ)句。Windows對(duì)話(huà)框?qū)崿F(xiàn)。具體如下:2、在WinCC中用C Script 調(diào)用上述SQL文件,如下所示:#include"apdefap.h"void OnLButtonDown(char* lpszPictureName,char* lpszObjectName,char* lpszPropertyName,UINT nFlags,int x,int y)char*a="c:siemenscommonSQLANYISQL-q-b-cUID=DBA;PWD=SQL;DBF=E:testsqltestsqlRT.DB;DBN=CC_testsql_99-12-

11、03-12:48:26R;READE:testsqltest.sql"Printf("%srn",a);ProgramExcute(a);下面是一個(gè)簡(jiǎn)單的SQL文件內(nèi)容:select *from pde#hd#t#test;output to e:test2.txt FORMAT ascii注意:文件名及路徑中不要帶空格。 11、設(shè)置或重置一個(gè)變量void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)BOOL z;z=GetTagBit("MyBi

12、tVariable");/獲得變量值if (z=0) SetTagBit("MyBitVariable",1); /設(shè)置變量值elseSetTagBit("MyBitVariable",0); 12、運(yùn)行時(shí)圖形產(chǎn)生動(dòng)態(tài)旋轉(zhuǎn)#include "apdefap.h"long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)static int x=25,y,z;/x為半徑的初始值為25,y為切換變量,z為攪拌機(jī)運(yùn)行狀態(tài)變量z=Ge

13、tTagBit("202攪拌機(jī)運(yùn)行"); /取得PLC攪拌機(jī)的運(yùn)行狀態(tài)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; 13、WINCC-如何在程序中動(dòng)態(tài)修改用戶(hù)密碼 1、 點(diǎn)擊“開(kāi)始”-“設(shè)置”-“控制面板”-“管理工具”-“數(shù)據(jù)源(ODBC)”,打開(kāi)ODBC數(shù)據(jù)源管理器 2、在用戶(hù)DSN頁(yè)面的用戶(hù)數(shù)據(jù)源中找到與當(dāng)前項(xiàng)目所關(guān)聯(lián)的一項(xiàng),其名稱(chēng)為“CC_項(xiàng)目名_項(xiàng)目建立日期時(shí)間”,記下該項(xiàng)的名稱(chēng) 3、在腳本中加入以下代碼: #pra

14、gma code(UseGen.dll) #include USEGENAP.H #pragma code() LPCMN_ERROR err; /定義的LPCMN_ERROR型變量,在函數(shù)調(diào)用中需使用 if (PWGENConnect(CC_ass_04-09-21_16:35:22,err) /建立與數(shù)據(jù)庫(kù)的聯(lián)接,其中CC_ass_04-09-21_16:35:22用第二步中記下的名稱(chēng)取代 if (PWGENChangePassword(GetTagChar(user),GetTagChar(oldpassword),GetTagChar(password),err) /修改密碼,user

15、,oldpassword,password分別為存貯用戶(hù)名,原密碼,新密碼的內(nèi)部變量,類(lèi)型為文本變量8位字符集 /密碼修改成功后的操作,如給用戶(hù)提示等 PWGENDisconnect(err); /斷開(kāi)與數(shù)據(jù)庫(kù)的聯(lián)接 4、編譯運(yùn)行程序 5、工作完成 6、與用戶(hù)管理相關(guān)的函數(shù)定義存貯在APPLIB目錄下的USEGENAP.H文件中,可根據(jù)上面示例自行完成添加用戶(hù),修改權(quán)限等功能。 14、WinCC如何實(shí)現(xiàn)鼠標(biāo)OnMouseOVer事件 用WINDOWAPI函數(shù)GetCusorPos獲取當(dāng)前鼠標(biāo)位置,用GetWindowRect函數(shù)獲取窗口位置,兩值相減得鼠標(biāo)在WINCC frame上的相對(duì)位置。

16、用全局腳本(設(shè)定為1s定時(shí)刷新),然后獲取要OnMouseOver事件的物體的位置,并與鼠標(biāo)位置相比較,如一致則觸發(fā)自己定義的動(dòng)作。#include apdefap.hint gscAction( void ) #pragma code(user32.dll); BOOL GetCusorPos(POINT lpPoint); /獲取鼠標(biāo)的位置(絕對(duì)位置-對(duì)應(yīng)屏幕分辨率) BOOL GetWindowRect(HWND hwnd,LPRECT lpRect); /獲取窗體位置 #pragma code(); POINT pPos; RECT rRec; HWND hwnd; BOOL bRet

17、,bRet2; long lLeft,lTop,lWidth,lHeight; long lX,lY; char szStr100;hwnd=FindWindow(NULL,WinCC-Runtime - ); /如語(yǔ)言為中文應(yīng)為WinCC 運(yùn)行系統(tǒng)-if (hwnd=0) printf(rnError! WinCc Handle is %d,hwnd);goto over;bRet=GetCursorPos(&pPos); if (bRet=0) goto over;bRet2=GetWindowRect(hwnd,&rRec); if (bRet2=0) goto over; lX=pPo

18、s.x-rRec.left; /鼠標(biāo) 對(duì)置 lY=pPos.y-rRec.top; /鼠標(biāo) 位置 /如果為非全屏模式,需將上述數(shù)值中的高h(yuǎn)eight判斷減去標(biāo)題欄的寬度 /printf(The Current Cusor Pos is x:%d,y:%drn,pPos.x,pPos.y); /printf(The Cusor Pos in Window is x:%d,y:%drn,pPos.x-lLeft2,pPos.y-lTop2); lLeft=GetLeft(NewPdl0.Pdl,Text1); /Return - Type :long int lTop=GetTop(NewPdl0

19、.Pdl,Text1); /Return - Type :long int lWidth=GetWidth(NewPdl0.Pdl,Text1); /Return - Type :long int lHeight=GetHeight(NewPdl0.Pdl,Text1); /Return - Type :long intif (lX=lLeft)&(lY=lTop)&(lX=lLeft+lWidth)&(lY500) /熱井液位 PlaySoundA(D:DCSDATACG_winccHorn熱井液位高1.wav,NULL,0);if(GetTagFloat(LIST555)100 | Get

20、TagFloat(TE421B)100 | GetTagFloat(TE423A)100 | GetTagFloat(TE423B)100 | GetTagFloat(TE425)100 | GetTagFloat(TE427)100 | GetTagFloat(TE442)100) /軸瓦溫度PlaySoundA(D:DCSDATACG_winccHorn軸瓦溫度高1.wav,NULL,0);if(GetTagFloat(TIE485)45) /冷油器出口油溫 PlaySoundA(D:DCSDATACG_winccHorn冷油器出口油溫高.wav,NULL,0);if(GetTagFloa

21、t(PT091)40) /真空低PlaySoundA(D:DCSDATACG_winccHorn排汽壓力高.wav,NULL,0);if(GetTagFloat(PT131)0.05 | GetTagFloat(PDT215)0.05 | GetTagBit(PDS071)=0 | GetTagBit(PDS073)=0) /濾油器差壓 PlaySoundA(D:DCSDATACG_winccHorn濾油器差壓高.wav,NULL,0);if(GetTagFloat(PT121)0.65) /主油泵出口壓力 PlaySoundA(D:DCSDATACG_winccHorn主油泵出口壓力低.wa

22、v,NULL,0);if(GetTagFloat(LIST551)52 | GetTagFloat(VE737A)52 | GetTagFloat(VE745A)52 | GetTagBit(XE202)=1 | GetTagBit(XE204)=1 | GetTagBit(XE206)=1) /振動(dòng)大PlaySoundA(D:DCSDATACG_winccHorn軸瓦振動(dòng)高.wav,NULL,0);if(GetTagFloat(ZE769)0.4 | GetTagFloat(ZE769)3 | GetTagFloat(ZDE785)3240) /轉(zhuǎn)速 PlaySoundA(D:DCSDATA

23、CG_winccHorn汽輪機(jī)轉(zhuǎn)速高.wav,NULL,0);if(GetTagBit(DI_0175)=1 | GetTagBit(DI_0180)=1) /保護(hù)跳閘 PlaySoundA(D:DCSDATACG_winccHorn發(fā)電機(jī)保護(hù)跳閘.wav,NULL,0);if(GetTagBit(DI_0177)=1 | GetTagBit(DI_0181)=1 ) /定子轉(zhuǎn)子一點(diǎn)接地 PlaySoundA(D:DCSDATACG_winccHorn發(fā)電機(jī)轉(zhuǎn)子接地.wav,NULL,0);if(GetTagBit(DI_0176)=1) /過(guò)負(fù)荷 PlaySoundA(D:DCSDATACG

24、_winccHorn發(fā)電機(jī)過(guò)負(fù)荷.wav,NULL,0);if(GetTagBit(DI_0182)=1) /失磁 PlaySoundA(D:DCSDATACG_winccHorn發(fā)電機(jī)失磁.wav,NULL,0);if(GetTagBit(SOE_15)=1) /ETS動(dòng)作PlaySoundA(D:DCSDATACG_winccHornETS動(dòng)作.wav,NULL,0);-19、閃爍邊框圖片的腳本Flash - 簡(jiǎn)短描述使用Flash組中的函數(shù)可以修改或調(diào)用各種閃爍屬性。1.long int GetBackFlashColorOff(LPCTSTR lpszPictureName, LPCT

25、STR lpszObjectName)函數(shù),指定取消激活狀態(tài)的閃爍背景色讀出閃爍顏色的實(shí)例long int flashcol_on;/獲得背景閃爍顏色 Flash col_on = GetBackFlashColorOn(lpszPictureName,Group 1);/自定義代碼/在那里用戶(hù)可以使用返回值做某事GetBackFlashColorOn函數(shù)參數(shù):“l(fā)pszPictureName”是在其中組態(tài)該對(duì)象的畫(huà)面的名稱(chēng)。“Group 1”是該對(duì)象的名稱(chēng)。1). 讀出該對(duì)象的開(kāi)狀態(tài)的當(dāng)前背景閃爍顏色以及flashcol_on中的緩沖區(qū)。2). 執(zhí)行處理返回值的自定義代碼。 2. long

26、int GetBackFlashColorOn(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函數(shù),指定激活狀態(tài)的背景閃爍顏色。讀出閃爍顏色的實(shí)例long int flashcol_on;/獲得背景閃爍顏色 Flash col_on = GetBackFlashColorOn(lpszPictureName,Group 1);/自定義代碼/在那里用戶(hù)可以使用返回值做某事GetBackFlashColorOn函數(shù)參數(shù):“l(fā)pszPictureName”是在其中組態(tài)該對(duì)象的畫(huà)面的名稱(chēng)?!癎roup 1”是該對(duì)象的名稱(chēng)。1). 讀出該對(duì)象的開(kāi)狀態(tài)的當(dāng)

27、前背景閃爍顏色以及flashcol_on中的緩沖區(qū)。2). 執(zhí)行處理返回值的自定義代碼。 3. long int GetBorderFlashColorOff(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函數(shù),指定取消激活狀態(tài)的邊框或線(xiàn)閃爍顏色。讀出閃爍顏色的實(shí)例long int flashcol_on;/獲得背景閃爍顏色 flashcol_on = GetBackFlashColorOn(lpszPictureName,Group 1);/自定義代碼/在那里用戶(hù)可以使用返回值做某事GetBackFlashColorOn函數(shù)參數(shù):“l(fā)pszP

28、ictureName”是在其中組態(tài)該對(duì)象的畫(huà)面的名稱(chēng)?!癎roup 1”是該對(duì)象的名稱(chēng)。4. long int GetBorderFlashColorOn(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函數(shù),指定激活狀態(tài)的邊框或線(xiàn)閃爍顏色。讀出閃爍顏色的實(shí)例long int flashcol_on;/獲得背景閃爍顏色 flashcol_on = GetBackFlashColorOn(lpszPictureName,Group 1);/自定義代碼/在那里用戶(hù)可以使用返回值做某事GetBackFlashColorOn函數(shù)參數(shù):“l(fā)pszPictu

29、reName”是在其中組態(tài)該對(duì)象的畫(huà)面的名稱(chēng)?!癎roup 1”是該對(duì)象的名稱(chēng)。5. BOOL GetFlashBackColor(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函數(shù),指定是否激活背景閃爍。讀出“閃爍背景激活”屬性的實(shí)例BOOL bflash_col;/了解閃爍是開(kāi)還是關(guān) bflash_col = GetFlashBackColor(lpszPictureName,Group 1);if(bflash_col)/ 自定義代碼/ 閃爍是否被激活else/ 自定義代碼/ 閃爍是否被取消激活GetFlashBackColor函數(shù)參數(shù):

30、“l(fā)pszPictureName”是在其中組態(tài)該對(duì)象的畫(huà)面的名稱(chēng)?!癎roup 1”是該對(duì)象的名稱(chēng)。1). 讀出背景色閃爍是否被激活以及bflash_col中的緩沖區(qū)。2). 根據(jù)該函數(shù)的返回值執(zhí)行自定義代碼。20、I/0腳本 使用i_o組中的函數(shù)可以修改或調(diào)用影響輸入和輸出值的各種屬性。1. char* GetAssignments(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函數(shù),對(duì)于列表,分配文本給數(shù)值范圍2. BOOL GetAssumeOnExit(LPCTSTR lpszPictureName, LPCTSTR lpszObjec

31、tName)函數(shù),使用I/O域時(shí),它指定退出該域時(shí)是否應(yīng)用輸入的數(shù)值。3. BOOL GetAssumeOnFull(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函數(shù),使用I/O域時(shí),它指定完成輸入時(shí)是否應(yīng)用輸入的數(shù)值。4. long int GetBitNumber(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函數(shù),使用列表類(lèi)型“位”時(shí),它指定輸出值中相關(guān)的位。讀出布爾型屬性的實(shí)例BOOL bHiddenInput;/獲得隱藏輸入的狀態(tài) bHiddenInput = GetHiddenIn

32、put(lpszPictureName,IO Field 1);if(bHiddenInput) / 自定義代碼 / 隱藏輸入是否被激活else/ 自定義代碼 / 隱藏輸入是否被取消激活GetHiddenInput函數(shù)參數(shù):“l(fā)pszPictureName”是在其中組態(tài)該對(duì)象的畫(huà)面的名稱(chēng)?!癐O Field1”是該對(duì)象的名稱(chēng)。1). 讀出文本是否是粗體字以及bHiddenInput中的緩沖區(qū)。2). 根據(jù)該函數(shù)的返回值執(zhí)行自定義代碼。 5. BOOL GetClearOnError(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函數(shù),使用I/O域時(shí),它指定錯(cuò)誤輸入后是否激活刪除內(nèi)容。6. long int GetDataFormat(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函數(shù),對(duì)于I/O域,它指定域內(nèi)容的數(shù)據(jù)類(lèi)型。讀出布爾型屬性的實(shí)例BOOL bHiddenInput;/獲得隱藏輸入的狀態(tài) bHiddenInpu

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論