wincc常用C脚本功能文档格式.docx
- 文档编号:20067234
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:14
- 大小:17.86KB
wincc常用C脚本功能文档格式.docx
《wincc常用C脚本功能文档格式.docx》由会员分享,可在线阅读,更多相关《wincc常用C脚本功能文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
)==0)
return0x00ffffff;
5.结束监控并关闭计算机(会弹出确认对话框)
HWNDhWnd=NULL;
//Author:
Smartsys
intiRet;
hWnd=FindWindow(NULL,"
WinCC-运行系统-"
iRet=MessageBox(hWnd,"
结束监控并关闭计算机"
"
关闭操作站"
MB_YESNO|MB_ICONWARNING|MB_APPLMODAL);
if(iRet==IDYES)
DMExitWinCCEx(DM_SDMODE_POWEROFF);
6.点击事件弹出对话框,通过点击弹出对话框的确定和取消按钮实现对变量的置位或取消:
intr;
r=MessageBox(NULL,"
YES为开,NO为关"
"
确定开命令:
MB_YESNO|MB_SYSTEMMODAL);
if(r==IDYES)
SetTagBit("
TAGNAME"
TRUE);
FALSE);
7.开显示关显示:
(要在部变量中建立三个二进制变量COLSE_DISPLAY、DISPLAY_NO和DISPLAY_COMMENT)
//Funktion:
BitinDoppelwortsetzen;
if(GetTagBitWait("
COLSE_DISPLAY"
)==1)
{SetTagBit("
0);
DISPLAY_NO"
//Return-Type:
BOOL
DISPLAY_COMMENT"
else
1);
8.开阀确认:
BOOLa;
a=GetTagBit("
30T制水启动"
//Return-Type:
shortint
if(a==0)
if(MessageBox(NULL,"
真的要启动制水吗?
"
操作提示"
MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND|MB_SYSTEMMODAL)==6)
{SetTagBit("
//Return-Type:
BOOL
{if(MessageBox(NULL,"
真的要停止制水吗?
30T制水停止"
}}
9.将WinCC运行画面最小化
HWNDWinCCHwnd;
WinCCHwnd=FindWindow(NULL,"
WinCC-Runtime-"
//如果运行语言为英文
if(WinCCHwnd==0)WinCCHwnd=FindWindow(NULL,"
//如果运行语言为中文
CloseWindow(WinCCHwnd);
10.显示或不显示(其中hiddVtext为部的二进制变量)
if(GetTagBit("
hiddVtext"
)==0)//Return-Type:
//Return-Type:
10.打开编辑画面的脚本
#ifdefRUN_ON_WEBNAVIGATOR
#else
HWNDhExplorerWindow=NULL;
HWNDhRuntimeWindow=NULL;
hExplorerWindow=FindWindow("
WinCCExplorerFrameWndClass"
NULL);
hRuntimeWindow=FindWindow("
PDLRTisAliveAndWaitsForYou"
if(hExplorerWindow)
ShowWindow(hExplorerWindow,SW_MINIMIZE);
//ThisentryisonlynecessaryforWindows2000
ShowWindow(hExplorerWindow,SW_SHOWNORMAL);
SetForegroundWindow(hExplorerWindow);
printf("
rnSetForegroundfailed"
#endif
11.如何在WINCC中制作一个保持型按钮
方法1:
if(GetTagBit("
M10"
))
方法2:
M1.0"
(SHORT)!
GetTagBit("
));
求反指令,如果为1点击变为0,
如果为0点击变为1
方法3:
或者做两个按钮,
按钮一:
显示,直接连接m1.0,是--不显示,否--显示。
事件,直接连接,源,常数1,变量M1.0;
按钮二:
事件,直接连接,源,常数0,变量M1.0;
用按钮一覆盖按钮二
12变量每秒加1
DWORDa;
a=GetTagDWord("
Tank"
a+=1;
if(a>
100)(a=0);
SetTagDWord("
a);
return0;
WINCC动画脚本
电机风扇旋转(几何---起始角度):
static
DWORD
f=20;
if
(GetTagBit("
DI电机运行信号"
))
{
f=f+30;
if(f==360)(f=0);
returnf;
电机风扇旋转(几何---结束角度):
i=80;
)){
i=i+30;
if(i==360)(i=0);
returni;
**物料水平右移动(几何---位置X)(停车后,物料回到原点)**
int
a=350;
)
&
&
(a<
=730))
a+=20;
if(a>
=720)
(a=350);
if(!
returna;
物料水平右移动(几何---位置X)(停车后,物料停在该点)
if
(a>
物料向上移动(几何---位置Y)(停车后,物料停在该点)
b=450;
(b>
=290))
b-=10;
(b<
=280)
(b=450);
returnb;
年月日(静态文本)
char*_main(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName)
time_t
timer;
structtm*ptm;
char*p;
time(&
timer);
ptm=localtime(&
p=SysMalloc(9);
sprintf(p,"
%04d/%02d/%02d"
ptm->
tm_year-100+2000,ptm->
tm_mon+1,ptm->
tm_mday);
return(p);
时分秒(静态文本)
%02d:
%02d"
tm_hour,ptm->
tm_min,ptm->
tm_sec);
登陆到指定的用户名无须手动输入(按钮操作)
voidOnLButtonDown(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName,UINTnFlags,intx,inty)
#pragmacode("
PWRT_API.H"
PWRTSilentLogin("
用户名"
口令"
**显示登陆对话框无须热键(按钮操作)**
#pragmacode()
退出WINCC运行(按钮操作)
单位递增按钮(到上限不提示出错)
voidOnClick(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName)
DWORDvalue;
value=GetTagDWord("
AI标签"
if(value>
90)(value=上限);
elsevalue=value+10;
value);
单位递减按钮(到下限不提示出错)
if(value<
10)(value=下限);
elsevalue=value-10;
**单位递增按钮(到上限提示出错)**
HWNDhWnd=NULL;
hWnd=FindWindow(NULL,"
Wincc-运行系统-"
=90)(value=value+10);
elseMessageBox(hWnd,"
已到达上限值!
错误"
MB_OK|MB_ICONWARNING|MB_APPLMODAL);
**单位递减按钮(到下限提示出错)**
0)(value=value-10);
已到达下限值!
错误"
**自动登陆到指定的用户(画面属性--其它—授权)**
return(0X0);
**询问框(最好用于单机启动,组启也可,2个按钮,NO不操作)**
HWNDhWnd=NULL;
int上位启动信号;
WinCCC-Course"
if(GetTagBit("
DI备妥"
))
上位启动信号=MessageBox(hWnd,"
电源已备妥,您现在确定要启动吗?
启动!
MB_YESNO|MB_ICONQUESTION|MB_APPLMODAL);
\r\nExample3\r\n"
if(上位启动信号==IDNO)
(printf("
UserselectedNObutton\r\n"
else(SetTagByte("
上位启动信号"
1));
MessageBox(hWnd,"
电源未备妥,请查证后重试!
MB_OK|MB_ICONHAND|MB_APPLMODAL);
**询问框(最好用于单机启动,组启也可,3个按钮,NO复位)**
int上位启动信号;
电源已备妥,您现在确定要启动吗?
MB_YESNOCANCEL|MB_ICONQUESTION|MB_APPLMODAL);
if(上位启动信号==IDCANCEL)
(上位启动信号==IDYES)
(SetTagByte("
0));
电源未备妥,请查证后重试!
**搅拌器左侧扇页(几何—宽度)**
h=50;
u=0;
if((h>
0)&
(h<
=50))
(h-=2);
returnh;
if((u>
=0)&
(u<
50))
(u+=2);
returnu;
u=0;
h=50;
)){
**搅拌器左侧扇页(几何—位置X,右侧扇页没有位置变化)**
h=75;
u=125;
=75)&
125))
(h+=2);
if((u<
=125)&
(u>
75))
(u-=2);
u=125;
h=75;
**显示层按钮**
SubX6309X94AE2X0000X0000_X6309X94AE2X0000X60C5_X6309X94AE2X0000X653E_OnLButtonDown(ByValItem,ByValFlags,ByValx,ByValy)
DimobjScreen
DimCountLayer
SetobjScreen=HMIRuntime.Screens("
layer"
ForCountLayer=1To32Step1
objScreen.Layers(CountLayer).Visible=vbFalse
Next
objScreen.Layers(n).Visible=vbTrue
EndSub
n=层数+1
初始画面程序(画面空地--属性--事件--其它--打开画面--动作)
**打印按钮**
WinExec("
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- wincc 常用 脚本 功能