wincc的n个经典问题解答之一 点击:17877 | 回复:63



如火

    
  • 精华:172帖
  • 求助:0帖
  • 帖子:803帖 | 5249回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2005-09-29 15:34:00
楼主
1、问: 如何触发计算机扬声器的声音? 答: 编写如下C-Action: #pragma code("kernel32.dll"); BOOL Beep(DWORD dwFreq,DWORD dwDuration); #pragma code(); Beep(500,500); 2、问: 如何通过C脚本来确定报警信息? 答: 首先必须在画面中插入报警控件,可以用如下两种方式来确认信息: (1)、确认单条信息 4版本和高于此版本的WinCC BOOL OnBtnSinglAckn(char*lpszPictureName,char*lpszObjectName) 5版本和高于此版本的WinCC BOOL AXC_OnBtnSinglAckn(char*lpszPictureName,char*lpszObjectName) (2)、确认报警窗口所有可见的报警 4版本和低于此版本的WinCC BOOL OnBtnVisibleAckn(char*lpszPictureName,char*lpszObjectName) 5版本和高于此版本的WinCC BOOL AXC_OnBtnVisibleAckn(char*lpszPictureName,char*lpszObjectName) 3、问: 如何在WinCC中读取系统时间? 答: 通过如下C-Action: #pragma code("kernel32.dll"); Void GetLocalTimes(SYSTEMTIME*lpst); #pragma code(); SYSTEMTIME time; 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" void onClick(char*lpszPictureName,char*lpszObjectName, char*lpszPropertyName) {ProgramExcute("c:\\win98\\control.exe timedate.cpl");} 其中执行的程序路径,需根据具体情况填写。 5、问: 如何在WinCC中调用SQL语言? 答: 1、创建一个 SQL文件,此文件在ISQL中建立,文件内包含所要执行的SQL语句。Windows对话框实现。具体如下: 2、在WinCC中用C Script 调用上述SQL文件,如下所示: #include"apdefap.h" void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags,int x,int y) { 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 *from pde#hd#t#test; output to e:\\test2.txt FORMAT ascii 注意:文件名及路径中不要带空格。 6、问: 如何整点启动归档? 答: 在"Globle Script"下的Project function编写程序函数:cyclicarchive BOOL cyclicarchive() { #pragma code("kernel.dll"); void GetLocalTime(SYSTEMTIME*lpsz); #pragma code(); SYSTEMTIME time; Int t1; GetLocalTime(&time); T1=time.wMinute; If(t1==00) { SetTagBit("startarchive",1); Return(BOOL) (GetTagBit("startarchive")); } } 在Tagloging中的"Properties of process tag"中的"archive tag"Tab下的Archive type选择Cycle-selective,在"Event"标签下的"StartEvent"内选择cyclicarchive函数。 7、问: How can I set and reset a WinCC variable by mouse click with C script? 答: The following function shows how you can alternately set and reset a WinCC variable by mouse click. #include "apdefap.h" void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) { BOOL z; z=GetTagBit("MyBitVariable"); if (z==0) SetTagBit("MyBitVariable",1); else SetTagBit("MyBitVariable",0); } 8、问: How can I program a waiting function (Sleep) in WinCC? 答: The following sample program shows how the "Sleep" is used. #pragma code("Kernel32.dll") void Sleep(int milliseconds); #pragma code() Sleep(1000); //time specification in milliseconds Warning: If you use Sleep(), processing the C script is interrupted for the time indicated. Requests for the interrupted function cannot be processed during this time. 9、问: How can I output a SIMATIC timer minutes and seconds in WinCC? 答: If you want to output a SIMATIC Timer in minutes and seconds in WinCC, then in WinCC please use a static text in the Graphics Designer to which you interface the following action: char* _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) { char *p; DWORD hilf; int min, sec; p=SysMalloc(10); hilf=GetTagDWord("Time"); min=hilf/60000; sec=hilf%60000/1000; sprintf(p,"%d min %d sec",min,sec); return p; } The "Time" variable linked to the I/O field must have the following properties: •Data type "32-bit value without sign" •Format adaptation "DwordToSimaticBCDTimer" •Address: data area "Times" and addressing "Word"



ds

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 200回
  • 年度积分:0
  • 历史总积分:417
  • 注册:2006年7月20日
发表于:2006-07-21 15:34:00
21楼
好东西,谢谢

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2006-07-21 15:46:00
22楼
谢谢!

--------------------------------------
http://www.gkcity.com/SearchEngin/search.htm?sortlink=0.681

还你漂漂拳

  • 精华:0帖
  • 求助:2帖
  • 帖子:19帖 | 25回
  • 年度积分:0
  • 历史总积分:95
  • 注册:2006年2月17日
发表于:2006-07-24 10:53:00
23楼
扬声器的触发用鼠标好象很简单,但是用STEP7传上来的变量如何触发呢?高手:赐教了!

menldying

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 23回
  • 年度积分:0
  • 历史总积分:30
  • 注册:2006年8月26日
发表于:2006-10-24 16:03:00
24楼
不错

刘正刚

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 216回
  • 年度积分:0
  • 历史总积分:237
  • 注册:2006年11月10日
发表于:2006-11-12 15:55:00
25楼
永远支持。

贾古庄

  • 精华:0帖
  • 求助:0帖
  • 帖子:21帖 | 202回
  • 年度积分:0
  • 历史总积分:204
  • 注册:2006年2月27日
发表于:2006-11-12 17:19:00
26楼
好贴

yuhoucaihong

  • 精华:0帖
  • 求助:0帖
  • 帖子:13帖 | 546回
  • 年度积分:0
  • 历史总积分:5061
  • 注册:2003年5月28日
发表于:2006-11-12 17:47:00
27楼
xiexie 支持

minory

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 36回
  • 年度积分:0
  • 历史总积分:118
  • 注册:2006年11月29日
发表于:2006-11-29 02:04:00
28楼
不好意思问一下Global Script 从那里登陆啊

天天秦

  • 精华:1帖
  • 求助:0帖
  • 帖子:12帖 | 82回
  • 年度积分:0
  • 历史总积分:647
  • 注册:2002年2月03日
发表于:2006-12-31 12:29:00
29楼
好东西,谢谢

天天秦

  • 精华:1帖
  • 求助:0帖
  • 帖子:12帖 | 82回
  • 年度积分:0
  • 历史总积分:647
  • 注册:2002年2月03日
发表于:2006-12-31 12:29:00
30楼
好东西,谢谢

酷客

  • [版主]
  • 精华:9帖
  • 求助:31帖
  • 帖子:1460帖 | 7990回
  • 年度积分:457
  • 历史总积分:59176
  • 注册:2004年7月13日
发表于:2007-01-02 11:30:00
31楼
写的还不错哦

云海感冒了

  • 精华:0帖
  • 求助:0帖
  • 帖子:13帖 | 587回
  • 年度积分:0
  • 历史总积分:708
  • 注册:2006年3月31日
发表于:2007-02-09 12:38:00
32楼

masz0223

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 122回
  • 年度积分:0
  • 历史总积分:291
  • 注册:2007年4月14日
发表于:2007-04-27 18:11:00
33楼
谢谢了,保存了

云海感冒了

  • 精华:0帖
  • 求助:0帖
  • 帖子:13帖 | 587回
  • 年度积分:0
  • 历史总积分:708
  • 注册:2006年3月31日
发表于:2007-04-28 15:36:00
34楼
可以给我一份吗?yunhai2006@163.com 谢谢!

supman

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 444回
  • 年度积分:0
  • 历史总积分:525
  • 注册:2006年11月16日
发表于:2007-05-07 16:26:00
35楼
真是高手中的高手呀,佩服

萧冰

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 88回
  • 年度积分:0
  • 历史总积分:183
  • 注册:2005年10月15日
发表于:2007-05-18 15:56:00
36楼
收藏了

龙窟

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 9回
  • 年度积分:0
  • 历史总积分:59
  • 注册:2007年1月15日
发表于:2007-06-04 14:27:00
37楼
扬声器的声音如何用一个I/O域的(上下限)值来触发呢?问题比较初级,还望高手指点一下!

ytzidonghua

  • 精华:4帖
  • 求助:0帖
  • 帖子:228帖 | 12358回
  • 年度积分:2938
  • 历史总积分:29770
  • 注册:2004年4月26日
发表于:2007-06-10 14:49:00
38楼
多谢!

chang guo

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 7回
  • 年度积分:0
  • 历史总积分:8
  • 注册:2007年5月10日
发表于:2007-06-22 10:56:00
39楼
请问哪位朋友有WinCC flexible 2005的授权啊 这个软件我是第一次用没有授权.请问哪位大哥可以给我一份啊?急!谢谢!
chang.guo@agatos.com

eyu5210000

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 28回
  • 年度积分:0
  • 历史总积分:69
  • 注册:2006年8月26日
发表于:2007-07-15 10:56:00
40楼
我把代码复制过去,怎么无法编译成功啊??请高人指教

热门招聘
相关主题

官方公众号

智造工程师