WINCC动画脚本
默认分类 2008-01-21 15:19:23 阅读310 评论0 字号:大中小 订阅
电机风扇旋转(几何---起始角度):
#include \"apdefap.h\"
long _main(char* lpszPictureName, lpszPropertyName)
{
static DWORD f=20;
if (GetTagBit(\"DI电机运行信号\")) {
f= f+30; '起始角度变化量'
if (f==360) (f=0);
}
return f;
}
char* lpszObjectName, char*
电机风扇旋转(几何---结束角度):
#include \"apdefap.h\"
long _main(char* lpszPictureName, char* lpszObjectName, char*
lpszPropertyName)
{
static DWORD i=80; '大于起始角度60'
if (GetTagBit(\"DI电机运行信号\")) {
i = i+30; '等于起始角度变化量'
if (i==360) (i=0);
}
return i;
}
**物料水平右移动(几何---位置X)(停车后,物料回到原点)**
#include \"apdefap.h\"
long _main(char* lpszPictureName, char* lpszObjectName, lpszPropertyName)
{
static int a=350;
if (GetTagBit(\"DI电机运行信号\") && (a<=730)) {
a+=20;
if (a>=720) (a=350);
}
if (!GetTagBit(\"DI电机运行信号\")) (a=350);
return a;
}
物料水平右移动(几何---位置X)(停车后,物料停在该点)
#include \"apdefap.h\"
long _main(char* lpszPictureName, char* lpszObjectName, char*
char*
lpszPropertyName)
{
static int a=350;
if (GetTagBit(\"DI电机运行信号\") && (a<=730)) {
a+=20;
if (a>=720) (a=350);
}
return a;
}
物料向上移动(几何---位置Y)(停车后,物料停在该点)
#include \"apdefap.h\"
long _main(char* lpszPictureName, char* lpszObjectName, lpszPropertyName)
{
char*
static int b=450;
if (GetTagBit(\"DI电机运行信号\") && (b>=290)) {
b-=10;
if (b<=280) (b=450);
}
return b;
}
年月日(静态文本)
#include \"apdefap.h\"
char* _main(char* lpszPictureName, lpszPropertyName)
{
time_t timer ;
struct tm *ptm;
char* lpszObjectName, char*
char *p;
time(&timer);
ptm =localtime(&timer);
p =SysMalloc(9);
sprintf(p,\"%04d/%02d/%02d\m->tm_mday);
return(p);
}
时分秒(静态文本)
#include \"apdefap.h\"
char* _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\
return(p);
}
登陆到指定的用户名无须手动输入(按钮操作)
#include \"apdefap.h\"
void 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.h\"
void OnLButtonDown(char* lpszPictureName, 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.h\"
void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)
{
{
DeactivateRTProject ();
}
}
单位递增按钮(到上限不提示出错)
#include \"apdefap.h\"
void OnClick(char* lpszPictureName, lpszPropertyName)
{
char* lpszObjectName, char*
DWORD value;
value=GetTagDWord(\"AI标签\");
if (value>90) (value=上限); '上限值为100'
else value=value+10; '单位增加量为10'
SetTagDWord(\"AI标签\
}
单位递减按钮(到下限不提示出错)
#include \"apdefap.h\"
void OnClick(char* lpszPictureName, char* lpszPropertyName)
{
DWORD value;
value=GetTagDWord(\"AI标签\");
if (value<10) (value=下限); '下限值为0'
char*
lpszObjectName,
else value=value-10; '单位减小量为10'
SetTagDWord(\"AI标签\
}
**单位递增按钮(到上限提示出错)**
#include \"apdefap.h\"
void OnClick(char* lpszPictureName, char* lpszObjectName, char*
lpszPropertyName)
{
DWORD value;
HWND hWnd=NULL ;
hWnd=FindWindow(NULL,\"Wincc-运行系统- \");
value=GetTagDWord(\"AI标签\");
if (value<=90) (value=value+10); '上限值为100,单位增加量为10'
else MessageBox(hWnd,\"已到达上限值!\错误
\
SetTagDWord(\"AI标签\
}
**单位递减按钮(到下限提示出错)**
#include \"apdefap.h\"
void OnClick(char* lpszPictureName, char* lpszObjectName, lpszPropertyName)
{
DWORD value;
HWND hWnd=NULL ;
hWnd=FindWindow(NULL,\"Wincc-运行系统- \");
value=GetTagDWord(\"AI标签\");
if (value>0) (value=value-10); '下限值为0,单位减小量为10'
else MessageBox(hWnd,\" 已到达下限值!\char*
错误
\
SetTagDWord(\"AI标签\
}
**自动登陆到指定的用户(画面属性--其它—授权)**#include \"apdefap.h\"
long _main(char* lpszPictureName, char* lpszPropertyName)
{
#pragma code(\"useadmin.dll\")
#include \"PWRT_API.H\"
#pragma code()
PWRTSilentLogin(\"用户名\口令\");
return(0X0);
}
lpszObjectName, char*
**询问框(最好用于单机启动,组启也可,2个按钮,NO不操作)**
#include \"apdefap.h\"
void 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_YESNO|MB_ICONQUESTION|MB_APPLMODAL);
printf(\"\\r\\nExample 3\\r\\n\");
if (上位启动信号==IDNO) (printf(\"User selected NO button \\r\\n\"));
else (SetTagByte(\"上位启动信号\
}
else
MessageBox(hWnd,\"电源未备妥,请查证后重试!\启动!\
MB_OK|MB_ICONHAND|MB_APPLMODAL);
}
**询问框(最好用于单机启动,组启也可,3个按钮,NO复位)**
#include \"apdefap.h\"
void 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_YESNOCANCEL|MB_ICONQUESTION|MB_APPLMODAL);
if (上位启动信号==IDCANCEL) (printf(\"User selected NO button \\r\\n\"));
else
{
if (上位启动信号==IDYES) (SetTagByte(\"上位启动信号\
else (SetTagByte(\"上位启动信号\
}
}
else
MessageBox(hWnd,\" 电源未备妥,请查证后重试!\启动!\
MB_OK|MB_ICONHAND|MB_APPLMODAL);
}
**搅拌器左侧扇页(几何—宽度)**
#include \"apdefap.h\"
long _main(char* lpszPictureName, lpszPropertyName)
{
static int h=50;
static int u=0;
if (GetTagBit(\"DI电机运行信号\"))
{
if ((h>0)&&(h<=50))
{
char* lpszObjectName, char*
(h-=2);
return h;
}
if ((u>=0)&&(u<50))
{
(u+=2);
return u;
}
u=0;
h=50;
return h;
return u;
}
if (!GetTagBit(\"DI电机运行信号\")){
h=50;
u=0;
return h;
return u;
}
}
**搅拌器左侧扇页(几何—位置X,右侧扇页没有位置变化)**
#include \"apdefap.h\"
long _main(char* lpszPictureName, char* lpszObjectName, lpszPropertyName)
{
static int h=75;
static int u=125;
char*
if (GetTagBit(\"DI电机运行信号\"))
{
if ((h>=75)&&(h<125))
{
(h+=2);
return h;
}
if ((u<=125)&&(u>75))
{
(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_X6309X94AE2X0000X60C5_X6309X94AE2X0000X653E
_OnLButtonDown(ByVal Item, ByVal Flags, ByVal x, ByVal y)
Dim objScreen
Dim CountLayer
Set objScreen = HMIRuntime.Screens(\"layer\")
For CountLayer=1 To 32 Step 1
objScreen.Layers(CountLayer).Visible = vbFalse
Next
objScreen.Layers(n).Visible = vbTrue
End Sub
n=层数+1
初始画面程序(画面空地--属性--事件--其它--打开画面--动作)
**打印按钮**
#include \"apdefap.h\"
void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)
{
WinExec(\"PRTSCR.EXE -hardcopy\
}
**一个圈代表电机两种状态**
#include \"apdefap.h\"
void OnClick(char* lpszPictureName, char* lpszObjectName, lpszPropertyName)
{
char* opentag=\"DI1电机运行信号\";
char* closetag=\"DI2电机运行信号\";
BOOL open,close;
open = GetTagBit(opentag);
char*
close = GetTagBit(closetag);
if (open)
return CO_GREEN;
if (close)
return CO_BLUE;
}
**(VB脚本)上位电机颜色**
IF DI电机运行信号=0 THEN
IF 电机上位故障信号=0 THEN
100*(DI电机备妥信号*(DI集中位置信号+DI本地位置信号))
ELSE:500*电机上位故障信号*(DI电机备妥信号*(DI集中位置信号+DI本地位置信号))+700*电机上位故障信号
ENDIF
ELSE:300*DI电机运行信号*DI集中位置信号+400*DI电机运行信号*DI本地位置信
号+200*DI电机运行信号
ENDIF
值:无备妥=0(黄色) 有备妥=100(白色) 无备妥有运行信号(接触器粘连)=200(黑色)
集中运行=500(亮绿) 本地运行=600(暗绿)
有备妥故障=1200(亮红) 无备妥故障=700(暗红)
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- dcrkj.com 版权所有 赣ICP备2024042791号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务