网站标志
导航菜单
当前日期时间
当前时间:
购物车
购物车中有 0 件商品 去结算 我的订单
商品搜索
商品搜索:
文章正文
WINCC常用的C动作
作者:管理员    发布于:2015-05-31 21:06:51    文字:【】【】【

 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.结束监控并关闭计算机(会弹出确认对话框)
HWND hWnd = NULL;//Author:Smartsys
 int 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为开,NO为关", "确定开命令:", MB_YESNO |MB_SYSTEMMODAL);
 if (r==IDYES)
 SetTagBit("TAGNAME",TRUE);
 else
 SetTagBit("TAGNAME",FALSE);

 7.开显示关显示:(要在内部变量中建立三个二进制变量COLSE_DISPLAY、DISPLAY_NO和DISPLAY_COMMENT)
// Funktion: Bit in Doppelwort setzen;

 if (GetTagBitWait("COLSE_DISPLAY")==1 )
 {SetTagBit("COLSE_DISPLAY",0);
 SetTagBit("DISPLAY_NO",0); //Return-Type: BOOL
 SetTagBit("DISPLAY_COMMENT",0);
 }
 else  
 {SetTagBit("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,"真的要启动制水吗?","操作提示",MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND|MB_SYSTEMMODAL) == 6)
 { SetTagBit("30T制水启动",1);

 //Return-Type :BOOL

 }
 }
 else

 {if(MessageBox(NULL,"真的要停止制水吗?","操作提示",MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND|MB_SYSTEMMODAL) == 6)
 { SetTagBit("30T制水停止",1);

 }}

 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("hiddVtext",TRUE); //Return-Type: BOOL
 //Return-Type: BOOL
 }
 else
 {SetTagBit("hiddVtext",FALSE);
 }

 10.打开编辑画面的脚本
#pragma option(mbcs)
 #ifdef RUN_ON_WEBNAVIGATOR

 #else
    HWND hExplorerWindow= NULL;
    HWND hRuntimeWindow= NULL;

    hExplorerWindow= FindWindow("WinCCExplorerFrameWndClass",NULL);
    hRuntimeWindow= FindWindow("PDLRTisAliveAndWaitsForYou",NULL);

    if(hExplorerWindow)
       {
       ShowWindow(hExplorerWindow, SW_MINIMIZE); // This entry is only necessary for Windows 2000
       ShowWindow(hExplorerWindow, SW_SHOWNORMAL);
       SetForegroundWindow(hExplorerWindow);
    }
    else
       printf("\r\n SetForeground failed");
 #endif

 11.如何在WINCC中制作一个保持型按钮
 方法1:
if( GetTagBit("M10") )
    SetTagBit("M10",0);
 else
    SetTagBit("M10",1);
方法2:
SetTagBit("M1.0",(SHORT)!GetTagBit("M1.0"));
求反指令,如果为1点击变为0,
 如果为0点击变为1
方法3:
 或者做两个按钮,
 按钮一:显示,直接连接m1.0,是--不显示,否--显示 。事件,直接连接,源,常数1,变量M1.0;
按钮二:事件,直接连接,源,常数0,变量M1.0;
 用按钮一覆盖按钮二。

浏览 (90) | 评论 (0) | 评分(0) | 支持(0) | 反对(0) | 发布人:管理员
将本文加入收藏夹
新闻详情
脚注栏目
|
脚注信息
机电工程网(C) 2015-2020 All Rights Reserved.    联系我们