1、Wincc 中常用的 C 动作(2011-04-06 22:26:53)转载标签: 杂谈分类: WinCC使用技巧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 ();5.结束
2、监控并关闭计算机(会弹出确认对话框)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.点击事件弹出对话框,通过点击弹出对话框的确定和取消按钮实现对变量的置位或取消:int r;r=MessageBox(NULL, “YES为
3、开,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_DISPLAY“)=1 )SetTagBit(“COLSE_DISPLAY“,0);SetTagBit(“D
4、ISPLAY_NO“,0); /Return-Type: BOOLSetTagBit(“DISPLAY_COMMENT“,0);else SetTagBit(“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,“真的要启动制水吗?“,“操作提示“,MB_YESNO|MB_ICONQUE
5、STION|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,“WinCC-Runtime - “); /如果运行语言为英
6、文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.打开编辑画面的脚本#pragma option(m
7、bcs)#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 only neces
8、sary 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点击变为 1方法 3:或者做两个按钮,按钮一:显示,直接连接 m1.0,是-不显示,否-显示 。事件,直接连接,源,常数 1,变量M1.0;按钮二:事件,直接连接,源,常数 0,变量 M1.0;用按钮一覆盖按钮二