wincc用c语言弹出确认窗口,wincc常用C动作

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; 用按钮一覆盖按钮二

  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在一个大型的项目中 一个大型的项目中 一个大型的项目中 一个大型的项目中 可能 会需要控制 会需要控制 会需要控制 几十 个阀门或者 个阀门或者 十几个 十几个 电 机类,这些阀门或者电控制方式都是相同的。 机类,这些阀门或者电控制方式都是相同的。 机类,这些阀门或者电控制方式都是相同的。 机类,这些阀门或者电控制方式都是相同的。 机类,这些阀门或者电控制方式都是相同的。 机类,这些阀门或者电控制方式都是相同的。 机类,这些阀门或者电控制方式都是相同的。 机类,这些阀门或者电控制方式都是相同的。 如果 我们为每一个 我们为每一个 我们为每一个 阀门 或者 电机 都制作一个控面板来,也是可以的只工过 都制作一个控面板来,也是可以的只工过 都制作一个控面板来,也是可以的只工过 都制作一个控面板来,也是可以的只工过 都制作一个控面板来,也是可以的只工过 都制作一个控面板来,也是可以的只工过 都制作一个控面板来,也是可以的只工过 都制作一个控面板来,也是可以的只工过 都制作一个控面板来,也是可以的只工过 都制作一个控面板来,也是可以的只工过 程要繁琐些。 程要繁琐些。 下面 介绍 2种控制方法,第 控制方法,第 控制方法,第 一种是为每个阀门或者 一种是为每个阀门或者 一种是为每个阀门或者 一种是为每个阀门或者 一种是为每个阀门或者 电机配置一个 控制画面,第二种是作电机配置一个 控制画面,第二种是作电机配置一个 控制画面,第二种是作电机配置一个 控制画面,第二种是作电机配置一个 控制画面,第二种是作电机配置一个 控制画面,第二种是作电机配置一个 控制画面,第二种是作通用 的控制画面,然后 的控制画面,然后 的控制画面,然后 的控制画面,然后 在主画面中 在主画面中 通过 C脚本 调用这个画面。 用这个画面。 用这个画面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值