




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
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ì)象所在畫面名,“按鈕8”為對(duì)象名稱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;=說明:在觸發(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,請確認(rèn)三廳相關(guān)門是否關(guān)好,或者請解鎖。,提示框,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;=說明:在觸發(fā)器中選擇變量觸發(fā)。3、趨勢面板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ì)話框調(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的位置,以此類推,就可以做出物體移動(dòng)畫面了,要做全局腳本-10、WinCC中調(diào)用SQL語言 1、創(chuàng)建一個(gè) SQL文件,此文件在ISQL中建立,文件內(nèi)包含所要執(zhí)行的SQL
10、語句。Windows對(duì)話框?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è)簡單的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)修改用戶密碼 1、 點(diǎn)擊“開始”-“設(shè)置”-“控制面板”-“管理工具”-“數(shù)據(jù)源(ODBC)”,打開ODBC數(shù)據(jù)源管理器 2、在用戶DSN頁面的用戶數(shù)據(jù)源中找到與當(dāng)前項(xiàng)目所關(guān)聯(lián)的一項(xiàng),其名稱為“CC_項(xiàng)目名_項(xiàng)目建立日期時(shí)間”,記下該項(xià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ù)庫的聯(lián)接,其中CC_ass_04-09-21_16:35:22用第二步中記下的名稱取代 if (PWGENChangePassword(GetTagChar(user),GetTagChar(oldpassword),GetTagChar(password),err) /修改密碼,user
15、,oldpassword,password分別為存貯用戶名,原密碼,新密碼的內(nèi)部變量,類型為文本變量8位字符集 /密碼修改成功后的操作,如給用戶提示等 PWGENDisconnect(err); /斷開與數(shù)據(jù)庫的聯(lián)接 4、編譯運(yùn)行程序 5、工作完成 6、與用戶管理相關(guān)的函數(shù)定義存貯在APPLIB目錄下的USEGENAP.H文件中,可根據(jù)上面示例自行完成添加用戶,修改權(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ī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) /過負(fù)荷 PlaySoundA(D:DCSDATACG
24、_winccHorn發(fā)電機(jī)過負(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 - 簡短描述使用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);/自定義代碼/在那里用戶可以使用返回值做某事GetBackFlashColorOn函數(shù)參數(shù):“l(fā)pszPictureName”是在其中組態(tài)該對(duì)象的畫面的名稱?!癎roup 1”是該對(duì)象的名稱。1). 讀出該對(duì)象的開狀態(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);/自定義代碼/在那里用戶可以使用返回值做某事GetBackFlashColorOn函數(shù)參數(shù):“l(fā)pszPictureName”是在其中組態(tài)該對(duì)象的畫面的名稱?!癎roup 1”是該對(duì)象的名稱。1). 讀出該對(duì)象的開狀態(tài)的當(dāng)
27、前背景閃爍顏色以及flashcol_on中的緩沖區(qū)。2). 執(zhí)行處理返回值的自定義代碼。 3. long int GetBorderFlashColorOff(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函數(shù),指定取消激活狀態(tài)的邊框或線閃爍顏色。讀出閃爍顏色的實(shí)例long int flashcol_on;/獲得背景閃爍顏色 flashcol_on = GetBackFlashColorOn(lpszPictureName,Group 1);/自定義代碼/在那里用戶可以使用返回值做某事GetBackFlashColorOn函數(shù)參數(shù):“l(fā)pszP
28、ictureName”是在其中組態(tài)該對(duì)象的畫面的名稱。“Group 1”是該對(duì)象的名稱。4. long int GetBorderFlashColorOn(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函數(shù),指定激活狀態(tài)的邊框或線閃爍顏色。讀出閃爍顏色的實(shí)例long int flashcol_on;/獲得背景閃爍顏色 flashcol_on = GetBackFlashColorOn(lpszPictureName,Group 1);/自定義代碼/在那里用戶可以使用返回值做某事GetBackFlashColorOn函數(shù)參數(shù):“l(fā)pszPictu
29、reName”是在其中組態(tài)該對(duì)象的畫面的名稱?!癎roup 1”是該對(duì)象的名稱。5. BOOL GetFlashBackColor(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函數(shù),指定是否激活背景閃爍。讀出“閃爍背景激活”屬性的實(shí)例BOOL bflash_col;/了解閃爍是開還是關(guān) bflash_col = GetFlashBackColor(lpszPictureName,Group 1);if(bflash_col)/ 自定義代碼/ 閃爍是否被激活else/ 自定義代碼/ 閃爍是否被取消激活GetFlashBackColor函數(shù)參數(shù):
30、“l(fā)pszPictureName”是在其中組態(tài)該對(duì)象的畫面的名稱?!癎roup 1”是該對(duì)象的名稱。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ù),使用列表類型“位”時(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ì)象的畫面的名稱?!癐O Field1”是該對(duì)象的名稱。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ù)類型。讀出布爾型屬性的實(shí)例BOOL bHiddenInput;/獲得隱藏輸入的狀態(tài) bHiddenInpu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 度房屋租賃安全責(zé)任合同
- 14 健康過冬天(教學(xué)設(shè)計(jì))2024-2025學(xué)年統(tǒng)編版道德與法治一年級(jí)上冊
- 度快遞站點(diǎn)承包合同轉(zhuǎn)讓書
- 新技術(shù)入股合同范本
- 2024-2025學(xué)年人教版(2024)信息技術(shù)四年級(jí)上冊 第13課 多彩的數(shù)字世界 教學(xué)設(shè)計(jì)
- 10《傳統(tǒng)美德源遠(yuǎn)流長》第2課時(shí)教學(xué)設(shè)計(jì)-2024-2025學(xué)年道德與法治五年級(jí)上冊統(tǒng)編版
- 學(xué)校書包采購合同范本
- 12熱脹冷縮 教學(xué)設(shè)計(jì)-2024-2025學(xué)年冀人版(2017)科學(xué)三年級(jí)上冊
- 4 火山噴發(fā)的成因及作用 教學(xué)設(shè)計(jì)-2024-2025學(xué)年科學(xué)五年級(jí)上冊教科版
- 供餐餐具合同范本
- 2025勞動(dòng)合同法重點(diǎn)法條導(dǎo)讀附案例詳解
- 2025年內(nèi)蒙古自治區(qū)政府工作報(bào)告測試題及參考答案
- 2024年全國中學(xué)生生物學(xué)聯(lián)賽試題及答案詳解
- 小學(xué)班會(huì)-交通安全伴我行(共25張課件)
- 建筑施工現(xiàn)場安全警示(案例)
- 《生產(chǎn)與運(yùn)作管理 第4版》課件 第1、2章 概論、需求預(yù)測與管理
- 護(hù)理禮儀與人文關(guān)懷
- 患者隱私保護(hù)的考試試題及答案
- 2025年中考數(shù)學(xué)一輪教材復(fù)習(xí)-第六章 圓 與圓有關(guān)的概念及性質(zhì)
- 2025年村兩委工作計(jì)劃
- 2025年日歷(日程安排-可直接打印)
評(píng)論
0/150
提交評(píng)論