wincc常用C腳本_第1頁
wincc常用C腳本_第2頁
wincc常用C腳本_第3頁
wincc常用C腳本_第4頁
wincc常用C腳本_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、.用戶注銷:#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 ();按鈕變三

2、種顏色#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 "apde

3、fap.h"long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) #pragma option(mbcs)if(GetTagWord("NewTag")=0)return 0x0000ff00;elsereturn 0x00ffffff;5 .結束監(jiān)控并關閉計算機(會彈出確認對話框)HWND hWnd = NULL;/Author:Smartsys int iRet;hWnd = FindWindow(NULL,"WinCC-運行系統-")

4、;iRet=MessageBox(hWnd,"結束監(jiān)控并關閉計算機 ",”關閉操作站”,MB_YESNO|MB_ICONWARNING|MB_APPLMODAL);if(iRet=IDYES)DMExitWinCCEx (DM_SDMODE_POWEROFF);6 .點擊事件彈出對話框,通過點擊彈出對話框的確定和取消按鈕實現對變量的置位或取消:int r;r=MessageBox(NULL, "YES 為開,NO為關",”確定開命令:", MB_YESN|MB_SYSTEMMODAL); if (r=IDYES) SetTagBit("

5、;TAGNAME",TRUE);elseSetTagBit("TAGNAME",FALSE);7 .開顯示關顯示:(要在內部變量中建立三個二進制變量COLSE_DISPLAY DISPLAY_NODISPLAY_COMME NT/ Funktion: Bit in Doppelwort setzen;if (GetTagBitWait("COLSE_DISPLAY")=1 )SetTagBit("COLSE_DISPLAY",0);SetTagBit("DISPLAY_NO",0); /Return-Ty

6、pe: BOOL SetTagBit("DISPLAY_COMMENT",0);) elseSetTagBit("COLSE_DISPLAY",1);SetTagBit("DISPLAY_NO",1); /Return-Type: BOOL SetTagBit("DISPLAY_COMMENT",0);)8 .開閥確認:BOOL a;a=GetTagBit("30T 制水啟動");/Return-Type :short int if (a=0) if(MessageBox(NULL,"

7、 真的要啟動制水嗎?","操作提示 ”,MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND|MB_SYSTEMMODAL) = 6) SetTagBit("30T 制水啟動",1);/Return-Type :BOOL ) ) elseif(MessageBox(NULL,” 真的要停止制水嗎?","操作提示”,MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND|MB_SYSTEMMODAL) = 6) SetTagBit("30T 制水停止",1);

8、)9 .將WinCC運行畫面最小化HWND WinCCHwnd;WinCCHwnd=FindWindow(NULL,"WinCC-Runtime -"); 如果運行語言為英文if (WinCCHwnd=0) WinCCHwnd=FindWindow(NULL,"WinCC-運行系統-");/如果運行語言為中文CloseWindow(WinCCHwnd);10 .顯示或不顯示(其中 hiddVtext為內部的二進制變量)if(GetTagBit("hiddVtext")=0) /Return-Type: BOOL SetTagBit(&

9、quot;hiddVtext",TRUE); /Return-Type: BOOL /Return-Type: BOOL elseSetTagBit("hiddVtext",FALSE); 11 .打開編輯畫面的腳本#pragma option(mbcs)#ifdef RUN_ON_WEBNAVIGATOR#elseHWND hExplorerWindow= NULL;HWND hRuntimeWindow= NULL;hExplorerWindow= FindWindow("WinCCExplorerFrameWndClass",NULL);

10、hRuntimeWindow= FindWindow("PDLRTisAliveAndWaitsForYou",NULL); if(hExplorerWindow) ShowWindow(hExplorerWindow, SW_MINIMIZE); / This entry is onlynecessary for Windows 2000ShowWindow(hExplorerWindow, SW_SHOWNORMAL); SetForegroundWindow(hExplorerWindow); elseprintf("rn SetForeground fai

11、led");#endif12 .如何在 WINCW制作一個保持型按鈕 方法1:if( GetTagBit("M10") SetTagBit("M10",0);elseSetTagBit("M10",1);方法2:SetTagBit(HM1.0H,(SHORT)!GetTagBit(HM1.0H);求反指令,如果為1點擊變?yōu)?,如果為0點擊變?yōu)?方法3:或者做兩個按鈕,按鈕一:顯示,直接連接 m1.0,是-不顯示,否-顯示。事件,直接連接,源, 常數1,變量M1.0;按鈕二:事件,直接連接,源,常數0,變量M1.0;用按鈕一覆

12、蓋按鈕二12變量每秒加1DWORD a;a=GetTagDWord("Tank");a+=1;if(a>100) (a=0);SetTagDWord("Tank",a);return 0;WINCC動畫腳本電機風扇旋轉(幾何-起始角度):#include "apdefap.h"long _main(char* lpszPictureName, char* lpszObjectName, char*lpszPropertyName)static DWORD f=20;if (GetTagBit("DI 電機運行信號&qu

13、ot;)f= f+30;if (f=360) (f=0);return f;)電機風扇旋轉(幾何-結束角度):#include "apdefap.h"long _main(char* IpszPictureName, char* IpszObjectName, char*IpszPropertyName)static DWORD i=80;if (GetTagBit("DI 電機運行信號")i = i+30;if (i=360) (i=0);)return i;)*物料水平右移動(幾何-位置X)(停車后,物料回到原點)*#include "ap

14、defap.h"long _main(char* lpszPictureName, char* lpszObjectName, char*lpszPropertyName)static int a=350;if (GetTagBit("DI電機運行信號")&& (a<=730) a+=20;if (a>=720)(a=350);)if (!GetTagBit("DI 電機運行信號")(a=350);return a;)物料水平右移動(幾何-位置X)(停車后,物料停在該點)#include "apdefap.

15、hlong _main(char* IpszPictureName, char* IpszObjectName, char*IpszPropertyName)static int a=350;if (GetTagBit("DI 電機運行信號")&& (a<=730)a+=20;if (a>=720) (a=350);return a;物料向上移動(幾何-位置Y)(停車后,物料停在該點)#include "apdefap.h"long _main(char* lpszPictureName, char* lpszObjectNa

16、me, char*lpszPropertyName)static int b=450;if (GetTagBit("DI電機運行信號")&& (b>=290)b-=10;if (b<=280) (b=450);return b;年月日(靜態(tài)文本)#include "apdefap.h"char* _main(char* lpszPictureName, char* lpszObjectName, char*lpszPropertyName)time_t timer ;struct tm *ptm;char *p;time(&a

17、mp;timer);ptm =localtime(&timer);p =SysMalloc(9);sprintf(p,"%04d/%02d/%02d",ptm->tm_year-100+2000,ptm->tm_mon +1,ptm->tm_mday);return(p);時分秒(靜態(tài)文本)#include "apdefap.h"char* _main(char* lpszPictureName, char* lpszObjectName, char*lpszPropertyName)time_t timer ;struct t

18、m *ptm;char *p;time(&timer);ptm =localtime(&timer);p =SysMalloc(9);sprintf(p,"%02d:%02d:%02d",ptm->tm_hour,ptm->tm_min,ptm->tm_ sec);return(p);登陸到指定的用戶名無須手動輸入(按鈕操作)#include "apdefap.h"void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPrope

19、rtyName, UINT nFlags, int x, int y)#pragma code("useadmin.dll")#include "PWRT_API.H"#pragma code()PWRTSilentLogin(" 用戶名","口令)* *顯示登陸對話框無須熱鍵(按鈕操作)*#include "apdefap.h"void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, U

20、INT nFlags, int x, int y)#pragma code ("useadmin.dll")#include "PWRT_api.h"#pragma code()PWRTLogin('c');)退出WINCC運行(按鈕操作)#include "apdefap.h"void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)Deactiva

21、teRTProject ();)單位遞增按鈕(到上限不提示出錯)#include "apdefap.h"void OnClick(char* lpszPictureName, char* lpszObjectName, char*lpszPropertyName)DWORD value;value=GetTagDWord("AI標簽");if (value>90) (value= 上限);else value=value+10;SetTagDWord("AI標簽",value);)單位遞減按鈕(到下限不提示出錯)#include

22、 "apdefap.h"void OnClick(char* lpszPictureName, char* lpszObjectName, char*lpszPropertyName)DWORD value;value=GetTagDWord("AI 標簽");if (value<10) (value= 下限);else value=value-10;SetTagDWord("AI標簽",value);)* *單位遞增按鈕(到上限提示出錯)單位遞減按鈕(到下限提示出錯)*#include "apdefap.h#incl

23、ude "apdefap.h"void OnClick(char* lpszPictureName, char* lpszObjectName, char*lpszPropertyName)DWORD value;HWND hWnd=NULL ;hWnd=FindWindow(NULL,"Wincc-運行系統-");value=GetTagDWord("AI 標簽");if (value<=90) (value=value+10);else MessageBox(hWnd,"已到達上限值!","錯誤

24、”,MB_OK|MB_ICONWARNING|MB_APPLMODAL);SetTagDWord("AI標簽",value);)void OnClick(char* IpszPictureName, char* IpszObjectName, char*IpszPropertyName)DWORD value;HWND hWnd=NULL ;hWnd=FindWindow(NULL,"Wincc-運行系統-");value=GetTagDWord("AI標簽");if (value>0) (value=value-10);els

25、e MessageBox(hWnd,"已到達下限值!","錯誤”,MB_OK|MB_ICONWARNING|MB_APPLMODAL);SetTagDWord("AI 標簽",value);* *自動登陸到指定的用戶(畫面屬性-其它一授權)詢問框(最好用于單機啟動,組啟也可,2個按鈕,NO不操作)*#include "apdefap.h"void OnLButtonDown(char* lpszPictureName, char* lpszObjectName,char* lpszPropertyName, UINT nFl

26、ags, int x, int y)HWND hWnd=NULL;int上位啟動信號;#include "apdefap.h"long _main(char* lpszPictureName, char* lpszObjectName, char*lpszPropertyName)#pragma code("useadmin.dll")#include "PWRT_API.H"#pragma code()PWRTSilentLogin(" 用戶名","口令)return(0X0);hWnd=FindWin

27、dow(NULL,"WinCC C-Course");if (GetTagBit("DI 備妥")上位啟動信號=MessageBox(hWnd,"電源已備妥,您現在確定要啟動嗎?","啟動!",MB_YESNO|MB_ICONQUESTION|MB_APPLMODAL);printf("rnExample 3rn");if (上位啟動信號=IDNO) (printf("User selected NO button r'n");else (SetTagByte(&qu

28、ot;上位啟動信號",1);elseMessageBox(hWnd," 電源未備妥,請查證后重試!","啟動!",MB_OK|MB_ICONHAND|MB_APPLMODAL);*詢問框(最好用于單機啟動,組啟也可,3個按鈕,NO復位)*#include "apdefap.h"void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)HWND hWnd=NU

29、LL;int上位啟動信號;hWnd=FindWindow(NULL,"WinCC C-Course");if (GetTagBit("DI 備妥")上位啟動信號=MessageBox(hWnd," 電源已備妥,您現在確定要啟動嗎?","啟動!",MB_YESNOCANCEL|MB_ICONQUESTION|MB_APPLMODAL);if (上位啟動信號=IDCANCEL)(printf("User selected NO buttonrn");elseif (上位啟動信號=IDYES) (Se

30、tTagByte("上位啟動信號",1);else (SetTagByte("上位啟動信號",0);)elseMessageBox(hWnd," 電源未備妥,請查證后重試!","啟動!",MB_OK|MB_ICONHAND|MB_APPLMODAL);)*攪拌器左側扇頁(幾何一寬度)*#include "apdefap.h"long _main(char* lpszPictureName, char* lpszObjectName, char*lpszPropertyName)static in

31、t h=50;static int u=0;if (GetTagBit("DI電機運行信號")if (h>0)&&(h<=50) (h-=2);return h; ) if (u>=0)&&(u<50) (u+=2);return u; ) u=0; h=50;return h;return u;)if (!GetTagBit("DI 電機運行信號")h=50;u=0;return h;return u;) )*攪拌器左側扇頁(幾何一位置X,右側扇頁沒有位置變化)*#include "apdefap.h"long _main(char* lpszPictureName, char* lpszObjectName, char*lpszPropertyName)static int h=75;static int u=125;if (GetTagBit("DI電機運行信號")if (h>=75)&&(h<1

溫馨提示

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

評論

0/150

提交評論