WINCC常用功能
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
WINCC常用功能(2012-06-13 11:22:46)
标签:wincc
功能
问题
文化分类:自动控制
1问:如何触发计算机扬声器的声音?
答:编写如下C-Action:
#pragmacode("kernel32.dll");
BOOLBeep(DWORDdwFreq,DWORDdwDuration);
#pragmacode();
Beep(500,500);
2、问:如何通过C脚本来确定报警信息?
答:首先必须在画面中插入报警控件,可以用如下两种方式来确认信息:
(1)、确认单条信息
4版本和高于此版本的WinCC
BOOLOnBtnSinglAckn(char*lpszPictureName,char*lpszObjectName)
5版本和高于此版本的WinCC
BOOLAXC_OnBtnSinglAckn(char*lpszPictureName,char*lpszObjectName)
(2)、确认报警窗口所有可见的报警
4版本和低于此版本的WinCC
BOOLOnBtnVisibleAckn(char*lpszPictureName,char*lpszObjectName)
5版本和高于此版本的WinCC
BOOLAXC_OnBtnVisibleAckn(char*lpszPictureName,char*lpszObjectName)
3、问:如何在WinCC中读取系统时间?
答:通过如下C-Action:
#pragmacode("kernel32.dll");
VoidGetLocalTimes(SYSTEMTIME*lpst);
#pragmacode();
SYSTEMTIMEtime;
GetLocalTime(&time);
SetTagWord("Varname",time.wYear);
SetTagWord("Varname",time.wMonth);
SetTagWord("Varname",time.wDayOfWeek);
SetTagWord("Varname",time.wDay);
SetTagWord("Varname",time.wHour);
SetTagWord("Varname",time.wMinute);
SetTagWord("Varname",time.wSecond);
SetTagWord("Varname",time.wMilliseconds);
4、问:如何经Windows对话框设置日期时间?
答:通过调用Windows对话框实现。具体如下:
#include"apdefap.h"
voidonClick(char*lpszPictureName,char*lpszObjectName,
char*lpszPropertyName)
{ProgramExcute("c:\\win98\\control.exetimedate.cpl");}
其中执行的程序路径,需根据具体情况填写。
5、问:如何在WinCC中调用SQL语言?
答:1、创建一个SQL文件,此文件在ISQL中建立,文件内包含所要执行的SQL语句。Windows对话框实现。具体如下:
2、在WinCC中用CScript调用上述SQL文件,如下所示:
#include"apdefap.h"
voidOnLButtonDown(char*lpszPictureName,
char*lpszObjectName,
char*lpszPropertyName,
UINTnFlags,intx,inty)
{
char*a="c:\\siemens\\common\\SQLANY\\ISQL-q-b-c
UID=DBA;PWD=SQL;DBF=E:\\testsql\\testsqlRT.DB;
DBN=CC_testsql_99-12-03-12:48:26R;READ
E:testsql\\test.sql";
Printf("%s\r\n",a);
ProgramExcute(a);
}
下面是一个简单的SQL文件内容:
select*frompde#hd#t#test;
outputtoe:\\test2.txtFORMATascii
注意:文件名及路径中不要带空格。
6、问:如何整点启动归档?
答:在"GlobleScript"下的Projectfunction编写程序函数:cyclicarchive
BOOLcyclicarchive()
{
#pragmacode("kernel.dll");
voidGetLocalTime(SYSTEMTIME*lpsz);
#pragmacode();
SYSTEMTIMEtime;
Intt1;
GetLocalTime(&time);
T1=time.wMinute;
If(t1==00)
{
SetTagBit("startarchive",1);
Return(BOOL)(GetTagBit("startarchive"));
}
}
在Tagloging中的"Propertiesofprocesstag"中的"archivetag"Tab下的Archivetype选择Cycle-selective,在"Event"标签下的"StartEvent"内选择cyclicarchive函数。
7、问:HowcanIsetandresetaWinCCvariablebymouseclickwithCscript?
答:ThefollowingfunctionshowshowyoucanalternatelysetandresetaWinCCvariablebymouseclick.
#include"apdefap.h"
voidOnClick(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName)
{
BOOLz;
z=GetTagBit("MyBitVariable");
if(z==0)
SetTagBit("MyBitVariable",1);
else
SetTagBit("MyBitVariable",0);
}
8、问:HowcanIprogramawaitingfunction(Sleep)inWinCC?
答:Thefollowingsampleprogramshowshowthe"Sleep"isused.
#pragmacode("Kernel32.dll")
voidSleep(intmilliseconds);
#pragmacode()