ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:17.85KB ,
资源ID:1806210      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-1806210.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(wincc常用C脚本功能.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

wincc常用C脚本功能.docx

1、wincc常用C脚本功能.用户注销:#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 ();按钮变三种颜色#include apdefap.hlong _main(char* lpszPictureName, c

2、har* lpszObjectName, char* lpszPropertyName)#pragma option(mbcs)if(GetTagWord(TX/ZSH001)=1)return 0x0000ff00;elseif(GetTagWord(TX/ZSL001)=1)return 0x000000ff;elsereturn 0x00c0c0c0;一个调用按钮变色#include apdefap.hlong _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)#pragma option(

3、mbcs)if(GetTagWord(NewTag)=0)return 0x0000ff00;elsereturn 0x00ffffff;5.结束监控并关闭计算机(会弹出确认对话框)HWND hWnd = NULL;/Author:Smartsysint iRet;hWnd = FindWindow(NULL,WinCC-运行系统 - );iRet=MessageBox(hWnd,结束监控并关闭计算机,关闭操作站,MB_YESNO|MB_ICONWARNING|MB_APPLMODAL);if(iRet=IDYES)DMExitWinCCEx (DM_SDMODE_POWEROFF);6.点击

4、事件弹出对话框,通过点击弹出对话框的确定和取消按钮实现对变量的置位或取消:int r;r=MessageBox(NULL, YES为开,NO为关, 确定开命令:, MB_YESNO |MB_SYSTEMMODAL);if (r=IDYES)SetTagBit(TAGNAME,TRUE);elseSetTagBit(TAGNAME,FALSE);7.开显示关显示:(要在内部变量中建立三个二进制变量COLSE_DISPLAY、DISPLAY_NO和DISPLAY_COMMENT)/ Funktion: Bit in Doppelwort setzen;if (GetTagBitWait(COLSE

5、_DISPLAY)=1 )SetTagBit(COLSE_DISPLAY,0);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(MessageBox(NULL

6、,真的要启动制水吗?,操作提示,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 WinCCHwnd;WinCCHwnd=FindWindow(NULL,WinC

7、C-Runtime - ); /如果运行语言为英文if (WinCCHwnd=0) WinCCHwnd=FindWindow(NULL,WinCC-运行系统 - ); /如果运行语言为中文CloseWindow(WinCCHwnd);10.显示或不显示(其中hiddVtext为内部的二进制变量)if(GetTagBit(hiddVtext)=0) /Return-Type: BOOLSetTagBit(hiddVtext,TRUE); /Return-Type: BOOL/Return-Type: BOOLelseSetTagBit(hiddVtext,FALSE);10.打开编辑画面的脚本#

8、pragma option(mbcs)#ifdef RUN_ON_WEBNAVIGATOR#elseHWND hExplorerWindow= NULL;HWND hRuntimeWindow= NULL;hExplorerWindow= FindWindow(WinCCExplorerFrameWndClass,NULL);hRuntimeWindow= FindWindow(PDLRTisAliveAndWaitsForYou,NULL);if(hExplorerWindow)ShowWindow(hExplorerWindow, SW_MINIMIZE); / This entry is

9、 only necessary for Windows 2000ShowWindow(hExplorerWindow, SW_SHOWNORMAL);SetForegroundWindow(hExplorerWindow);elseprintf(rn SetForeground failed);#endif11.如何在WINCC中制作一个保持型按钮方法1:if( GetTagBit(M10) )SetTagBit(M10,0);elseSetTagBit(M10,1);方法2:SetTagBit(M1.0,(SHORT)!GetTagBit(M1.0);求反指令,如果为1点击变为0,如果为0点

10、击变为1方法3:或者做两个按钮,按钮一:显示,直接连接m1.0,是-不显示,否-显示 。事件,直接连接,源,常数1,变量M1.0;按钮二:事件,直接连接,源,常数0,变量M1.0;用按钮一覆盖按钮二12变量每秒加1DWORD a;a=GetTagDWord(Tank);a+=1;if(a100) (a=0);SetTagDWord(Tank,a);return 0;WINCC动画脚本电机风扇旋转(几何-起始角度):#include apdefap.hlong _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropert

11、yName)static DWORD f=20;if (GetTagBit(DI电机运行信号) f= f+30;if (f=360) (f=0);return f;电机风扇旋转(几何-结束角度):#include apdefap.hlong _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)static DWORD i=80;if (GetTagBit(DI电机运行信号) i = i+30;if (i=360) (i=0);return i;*物料水平右移动(几何-位置X)(停车后,物料回到原点)

12、*#include 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;物料水平右移动(几何-位置X)(停车后,物料停在该点)#include apdefap.hlong _main(char* lpszPictureName, char* lpszObjectName,

13、char* lpszPropertyName)static int a=350;if (GetTagBit(DI电机运行信号) & (a=720) (a=350);return a;物料向上移动(几何-位置Y)(停车后,物料停在该点)#include apdefap.hlong _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)static int b=450;if (GetTagBit(DI电机运行信号) & (b=290) b-=10;if (btm_year-100+2000,ptm-tm_

14、mon+1,ptm-tm_mday);return(p);时分秒(静态文本)#include apdefap.hchar* _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)time_t timer ;struct tm *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);登陆到指定

15、的用户名无须手动输入(按钮操作)#include apdefap.hvoid OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)#pragma code(useadmin.dll)#include PWRT_API.H#pragma code()PWRTSilentLogin(用户名, 口令);*显示登陆对话框无须热键(按钮操作)*#include apdefap.hvoid OnLButtonDown(char* lpszPi

16、ctureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)#pragma code (useadmin.dll)#include PWRT_api.h#pragma code( )PWRTLogin(c);退出WINCC运行(按钮操作)#include apdefap.hvoid OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, in

17、t y)DeactivateRTProject ();单位递增按钮(到上限不提示出错)#include apdefap.hvoid OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)DWORD value;value=GetTagDWord(AI标签);if (value90) (value=上限);else value=value+10;SetTagDWord(AI标签,value);单位递减按钮(到下限不提示出错)#include apdefap.hvoid OnClick(char* l

18、pszPictureName, char* lpszObjectName, char* lpszPropertyName)DWORD value;value=GetTagDWord(AI标签);if (value10) (value=下限);else value=value-10;SetTagDWord(AI标签,value);*单位递增按钮(到上限提示出错)*#include apdefap.hvoid OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)DWORD value;HWND hW

19、nd=NULL ;hWnd=FindWindow(NULL,Wincc-运行系统- );value=GetTagDWord(AI标签);if (value0) (value=value-10);else MessageBox(hWnd, 已到达下限值!, 错误,MB_OK|MB_ICONWARNING|MB_APPLMODAL);SetTagDWord(AI标签,value);*自动登陆到指定的用户(画面属性-其它授权)*#include apdefap.hlong _main(char* lpszPictureName, char* lpszObjectName, char* lpszPro

20、pertyName)#pragma code(useadmin.dll)#include PWRT_API.H#pragma code()PWRTSilentLogin(用户名, 口令);return(0X0);*询问框(最好用于单机启动,组启也可,2个按钮,NO不操作)*#include apdefap.hvoid OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)HWND hWnd=NULL;int 上位启动信号;hWnd=

21、FindWindow(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 rn);else (SetTagByte(上位启动信号,1);elseMessageBox(hWnd,电源未备妥,请查证后重试!,启动!,MB_OK|MB_ICONHAND|MB_APPLM

22、ODAL);*询问框(最好用于单机启动,组启也可,3个按钮,NO复位)*#include apdefap.hvoid OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)HWND hWnd=NULL;int上位启动信号;hWnd=FindWindow(NULL,WinCC C-Course);if (GetTagBit(DI备妥)上位启动信号=MessageBox(hWnd, 电源已备妥,您现在确定要启动吗?,启动!,MB_YES

23、NOCANCEL|MB_ICONQUESTION|MB_APPLMODAL);if (上位启动信号=IDCANCEL) (printf(User selected NO button rn);elseif (上位启动信号=IDYES) (SetTagByte(上位启动信号,1);else (SetTagByte(上位启动信号,0);elseMessageBox(hWnd, 电源未备妥,请查证后重试!,启动!,MB_OK|MB_ICONHAND|MB_APPLMODAL);*搅拌器左侧扇页(几何宽度)*#include apdefap.hlong _main(char* lpszPictureN

24、ame, char* lpszObjectName, 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;*显示层按钮*Sub X6309X94AE2X0000X0000_X6309X94AE2X00

25、00X60C5_X6309X94AE2X0000X653E_OnLButtonDown(ByVal Item, ByVal Flags, ByVal x, ByVal y)Dim objScreenDim CountLayerSet objScreen = HMIRuntime.Screens(layer)For CountLayer=1 To 32 Step 1objScreen.Layers(CountLayer).Visible = vbFalseNextobjScreen.Layers(n).Visible = vbTrueEnd Subn=层数+1初始画面程序(画面空地-属性-事件-其它-打开画面-动作)*打印按钮*#include apdefap.hvoid OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)WinExec

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2