wincc常用C脚本.._第1页
wincc常用C脚本.._第2页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、.用户注销:#pragma code (useadm in. dll)#in elude PWRT_api.h#pragma code()PWRTLogout();2. 用户登录:#pragma code (useadm in. dll)#in clude PWRT_api.h#pragma code()PWRTLogi n( c);3. 关闭项目并退出 wince :ExitWi nCC ();4. 退出运行到 wince 资源管理器:DeactivateRTProject ();按钮变三种颜色#in clude apdefap.hlong _main( char* IpszPictureN

2、ame, char* IpszObjectName, char* IpszPropertyName)#pragma optio n( mbes)if(GetTagWord(TX/ZSH001)=1)return OxOOOOffOO;elseif(GetTagWord(TX/ZSL001)=1)return OxOOOOOOff;elsereturn OxOOcOcOcO;一个调用按钮变色#in clude apdefap.hlong _main( char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)#prag

3、ma optio n( mbes)if(GetTagWord(NewTag)=0)return OxOOOOffOO;elsereturn OxOOffffff;5.结束监控并关闭计算机(会弹出确认对话框)HWND hWnd = NULL;/Author:Smartsysint iRet;hWnd = FindWindow(NULL,WinCC-运行系统-”);iRet=MessageBox(hWnd,结束监控并关闭计算机 ,关闭操作站 ”,MB_YESNO|MB_ICONWARNING|MB_APPLMODAL);if(iRet=IDYES)DMExitWi nCCEx (DM_SDMODE

4、_POWEROFF);6点击事件弹出对话框,通过点击弹出对话框的确定和取消按钮实现对变量的置位或取消:int r;r=MessageBox(NULL, YES 为开,NO 为关,确定开命令:, MB_YESN|MB_SYSTEMMODAL); if(r=IDYES)SetTagBit(TAGNAME,TRUE);elseSetTagBit(TAGNAME,FALSE);7. 开显示关显示:(要在内部变量中建立三个二进制变量COLSE_DISPLA、DISPLAY_NODISPLAY_COMMENT/ Fun kti on: Bit in Doppelwort setze n;if (GetTa

5、gBitWait(COLSE_DISPLAY)=1 )SetTagBit(COLSE_DISPLAY,O);SetTagBit(DISPLAY_NO,0); /Return-Type: BOOLSetTagBit(DISPLAY_COMMENT,0);elseSetTagBit(COLSE_DISPLAY,1);SetTagBit(DISPLAY_NO,1); /Return-Type: BOOLSetTagBit(DISPLAY_COMMENT,0);8. 开阀确认:BOOL a;a=GetTagBit(30T 制水启动);/Return-Type :short intif (a=0)if(

6、MessageBox(NULL, 真的要启动制水吗?,”操作提示”,MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND|MB_SYSTEMMODAL) = 6) SetTagBit(30T制水启动,1);/Return-Type :BOOLelseif(MessageBox(NULL, 真的要停止制水吗?,”操作提示”,MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND|MB_SYSTEMMODAL) = 6) SetTagBit(30T制水停止,1);9. 将 WinCC 运行画面最小化HWND Win CCHw nd;Win

7、CCHw nd=Fi ndWi ndow(NULL,Wi nCC-R un time - ); /如果运行语言为英文if (WinCCHwnd=O) WinCCHwnd=FindWindow(NULL,WinCC-运行系统-);/如果运行语言为中文CloseWi ndow(Wi nCCHw nd);10. 显示或不显示(其中hiddVtext 为内部的二进制变量)if(GetTagBit(hiddVtext)=O) /Return-Type: BOOLSetTagBit(hiddVtext,TRUE); /Return-Type: BOOL/Return-Type: BOOLelseSetTa

8、gBit(hiddVtext,FALSE);10.打开编辑画面的脚本#pragma optio n( mbcs)#ifdef RUN_ON_WEBNAVIGATOR#elseHWND hExplorerWi ndow= NULL;HWND hRu ntimeWi ndow= NULL;hExplorerWi ndow= Fin dWi ndow(Wi nCCExplorerFrameWndClass,NULL);hRun timeWi ndow= Fin dWi ndow(PDLRTisAliveA ndWaitsForYou,NULL); if(hExplorerWindow)ShowWi

9、ndow(hExplorerWi ndow, SW_MINIMIZE); / This entry is onlyn ecessary for Win dows 2000ShowWi ndow(hExplorerWi ndow, SW_SHOWNORMAL);SetForegro undWin dow(hExplorerWi ndow);elseprin tf(r n SetForegro und failed);#en dif11. 如何在 WINC(中制作一个保持型按钮方法 1:if( GetTagBit(M10)SetTagBit(M10,0);elseSetTagBit(M10,1);

10、方法 2:SetTagBit(M1.0,(SHORT)!GetTagBit(M1.0);求反指令,如果为 1 点击变为 0, 如果为 0 点击变为 1方法 3:或者做两个按钮,按钮一:显示,直接连接 m1.0,是-不显示,否-显示。事件,直接连接,源, 常数 1,变量 M1.0;按钮二:事件,直接连接,源,常数0,变量 M1.0;用按钮一覆盖按钮二12 变量每秒加 1DWORD a;a=GetTagDWord(Ta nk);a+=1;if(a100) (a=0);SetTagDWord(Ta nk,a);return 0;WINCC 动画脚本电机风扇旋转(几何-起始角度):#in clude

11、apdefap.hlong _main( char* IpszPictureName, char* IpszObjectName, char*IpszPropertyName)static DWORD f=20;if (GetTagBit(DI 电机运行信号)f= f+30;if (f=360) (f=0);return f;电机风扇旋转(几何-结束角度):#in elude apdefap.hlong _main( char* IpszPictureName, char* IpszObjectName, char*IpszPropertyName)static DWORD i=80;if (

12、GetTagBit(DI 电机运行信号)i = i+30;if (i=360) (i=0); return i;*物料水平右移动(几何-位置 X)(停车后,物料回到原点)*#in clude apdefap.hlong _main( char* lpszPictureName, char* lpszObjectName, char*lpszPropertyName)static int a=350;if (GetTagBit(DI 电机运行信号)& (a=720)(a=350);if (!GetTagBit(DI电机运行信号)(a=350);return a;物料水平右移动(几何-位置

13、 X)(停车后,物料停在该点)#include apdefap.hlong _main( char* IpszPictureName, char* IpszObjectName, charIpszPropertyName)static int a=350;if (GetTagBit(DI电机运行信号)& (a=720)(a=350);return a;物料向上移动(几何-位置丫)(停车后,物料停在该点)#in clude apdefap.hlong _main( char* IpszPictureName, char* IpszObjectName, char*IpszProperty

14、Name)static int b=450;if (GetTagBit(DI 电机运行信号)& (b=290)b-=10;if (btm_year-100+2000,ptm-tm_mon+1,ptm-tm_mday);return(p);时分秒(静态文本)#in clude apdefap.hchar* _main( char* IpszPictureName, char* IpszObjectName, char*IpszPropertyName)time_t timer ; struct tm *ptm; char *p;time(&timer);ptm =localtim

15、e(& timer);p =SysMalloc(9);spri ntf(p,%02d:%02d:%02d,ptm-tm_hour,ptm-tm_mi n,ptm-tm_ sec);return(p); 登陆到指定的用户名无须手动输入(按钮操作)#in clude apdefap.hvoid On LButt on Dow n(char* lpszPictureName, char* lpszObjectName,char* lpszPropertyName, UINT nF lags, int x, int y)#pragma code(useadm in. dll)#i nclude

16、 PWRT_API.H#pragma code()PWRTSilentLogin( 用户名,口令);*显示登陆对话框无须热键(按钮操作)*#in elude apdefap.hvoid On LButt on Dow n(char* IpszPictureName, char* IpszObjectName, char*lpszPropertyName, UINT nF lags, int x, int y)#pragma code (useadmi n.dll)#i nclude PWRT_api.h#pragma code()PWRTLogi n(c);退出 WINCC 运行(按钮操作)#

17、in clude apdefap.hvoid On LButt on Dow n(char* lpszPictureName, char* lpszObjectName, char*lpszPropertyName, UINT nF lags, int x, int y)DeactivateRTProject ();单位递增按钮(到上限不提示出错)#in clude apdefap.hvoid On Click(char* lpszPictureName, char* lpszObjectName, char*lpszPropertyName)DWORD value;value=GetTagD

18、Word(AI 标签);if (value90) (value= 上限);else value=value+10;SetTagDWord(AI 标签 ”,value);单位递减按钮(到下限不提示出错)#in clude apdefap.hvoid OnClick(char* IpszPictureName, char* IpszObjectName, char*IpszPropertyName)DWORD value;value=GetTagDWord(AI 标签);if (value10) (value= 下限);else value=value-10;SetTagDWord(AI 标签 ”

19、,value);*单位递增按钮(到上限提示出错)二#in clude apdefap.hvoid On Click(char* lpszPictureName, char* lpszObjectName, char*lpszPropertyName)DWORD value;HWND hWnd=NULL ;hWnd=FindWindow(NULL,Wincc-运行系统-);value=GetTagDWord(AI 标签);if (value0) (value=value-10);else MessageBox(hWnd,已到达下限值!,错误,MB_OK|MBCONWARNING|MB_APPLM

20、ODAL);SetTagDWord(AI 标签 ”,value);*自动登陆到指定的用户(画面属性-其它一授权)三#in clude apdefap.hlong _main( char* lpszPictureName, char* lpszObjectName, char*lpszPropertyName)#pragma code(useadm in. dll)#i nclude PWRT_API.H#pragma code()PWRTSilentLogin( 用户名,口令);return(OXO);三询问框(最好用于单机启动,组启也可,2 个按钮,NO 不操作)*#in clude apd

21、efap.hvoid On LButt on Dow n(char* lpszPictureName, char* lpszObjectName,char* lpszPropertyName, UINT nF lags, int x, int y)HWND hWnd=NULL;int 上位启动信号;hWnd=FindWindow(NULL,WinCC C-Course);if (GetTagBit(DI 备妥)上位启动信号=MessageBox(hWnd, 电源已备妥,您现在确定要启动吗?,启动!,MB_YESNO|MBCONQUESTION|MB_APPLMODAL);prin tf(rnE

22、xample 3rn);if (上位启动信号=IDNO) (pri ntf(User selected NO button rn);else (SetTagByte(上位启动信号,1);elseMessageBox(hWnd,电源未备妥,请查证后重试!,启动!,MB_OK|MBCONHAND|MB_APPLMODAL);*询问框(最好用于单机启动,组启也可,3 个按钮,NO 复位)*#in clude apdefap.hvoid On LButt on Dow n(char* IpszPictureName, char* IpszObjectName, char*lpszPropertyNam

23、e, UINT nF lags, int x, int y)HWND hWnd=NULL;int 上位启动信号;hWnd=FindWindow(NULL,WinCC C-Course);if (GetTagBit(DI 备妥)上位启动信号=MessageBox(hWnd,电源已备妥,您现在确定要启动吗?,启动!,MB_YESNOCANCEL|MBCONQUESTION|MB_APPLMODAL);if (上位启动信号=IDCANCEL)(pri ntf(User selected NO butt on,1);rn);elseif (上位启动信号=IDYES) (SetTagByte(上位启动信

24、号else (SetTagByte(上位启动信号,0);elseMessageBox(hWnd,电源未备妥,请查证后重试!,启动!MB_OK|MBCONHAND|MB_APPLMODAL);*搅拌器左侧扇页(几何一宽度)*#in clude apdefap.hlong _main( char* IpszPictureName, char* IpszObjectName, char*lpszPropertyName)static int h=50;static int u=0;if (GetTagBit(DI电机运行信号)if (h0)&(h=0)&( u=75)&(h125)(h+=2);return h;if (u75)(u-=2);return u;u=125;h=75;return h;return u;if (!GetTagBit(DI电机运行信号)h=75;u=125;return h;return u;n=层数+1初始画面程序(画面空地-属性-事件-其它-打开画面-动

温馨提示

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

评论

0/150

提交评论