请教WINCC问题 点击:898 | 回复:13



春华★秋实

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:103帖 | 1038回
  • 年度积分:0
  • 历史总积分:3013
  • 注册:2007年5月17日
发表于:2008-01-14 10:21:00
楼主
在WINCC组态手册2上看到这样的方法:
先在画面添加一“文本文档”;然后编辑C动作,如下:
time_t timer;
struct tm *ptm;
char *p;
time(&timer);
ptm=localtime(&timer);
p=SysMalloc(9);
sprintf(p,"%02d:%02d:%02d",ptm->tm_mday,ptm->tm_mon,ptm->tm_year);
return(p);
可我发现运行时不正确,显示如下:

请问该怎么解决?



闪电游侠

  • 精华:0帖
  • 求助:5帖
  • 帖子:32帖 | 485回
  • 年度积分:0
  • 历史总积分:1206
  • 注册:2006年2月09日
发表于:2008-02-02 16:15:00
1楼
我的一样

yu2018

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 40回
  • 年度积分:0
  • 历史总积分:82
  • 注册:2002年7月25日
发表于:2008-02-03 10:35:00
2楼

sprintf(p,"%02d:%02d:%02d",ptm->tm_mday,ptm->tm_mon,ptm->tm_year);

tm_year = 2008(实际年份)- 1900(基数)

把ptm->tm_year改成ptm->tm_year+1900

春华★秋实

  • 精华:0帖
  • 求助:0帖
  • 帖子:103帖 | 1038回
  • 年度积分:0
  • 历史总积分:3013
  • 注册:2007年5月17日
发表于:2008-02-18 09:18:00
3楼
TO yh2018:
我还没试验。但我感觉不好啊。因为实际年份在变化啊,那到2009就要再去改动啊...

yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10208回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2008-02-18 10:00:00
4楼
您玩Wincc6为什么不用VBS来写时间呢?
Time()返回时间  Date()返回当前日期,Now()返回当前时间日期等等众多处理时间的函数?

一句代码就可以了。

组态手册是基于Wincc5的手册,Wincc5只有C脚本。
因此虽组态手册可以看,但是不要依赖于组态手册,要灵活思路。

以上!

Good Luck!

春华★秋实

  • 精华:0帖
  • 求助:0帖
  • 帖子:103帖 | 1038回
  • 年度积分:0
  • 历史总积分:3013
  • 注册:2007年5月17日
发表于:2008-02-18 15:19:00
5楼
TO yuanle:
谢谢您的指导!!可怎么利用这个函数(例如NOW)把时间日期显示出来呢?

yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10208回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2008-02-18 16:40:00
6楼
Sub名=Now()
这样就返回了,也就显示出来了。

春华★秋实

  • 精华:0帖
  • 求助:0帖
  • 帖子:103帖 | 1038回
  • 年度积分:0
  • 历史总积分:3013
  • 注册:2007年5月17日
发表于:2008-02-19 09:02:00
7楼
....  没试出来 :(  
我VB不熟悉,只会一丁点

珍珠奶茶

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 5回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2008年2月15日
发表于:2008-02-19 09:47:00
8楼
最简单的办法,用WinCC自带的控件
 

yu2018

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 40回
  • 年度积分:0
  • 历史总积分:82
  • 注册:2002年7月25日
发表于:2008-02-19 10:34:00
9楼
tm_year:  Year (current year minus 1900)


tm_year的值就为现在年份与1900年的差值,与2008,2009,...无关



-------------------------------------------------
我还没试验。但我感觉不好啊。因为实际年份在变化啊,那到2009就要再去改动啊...

西瓜太凉

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 11回
  • 年度积分:0
  • 历史总积分:19
  • 注册:2007年12月27日
发表于:2008-02-21 09:09:00
10楼
图形编辑器中出现
StgOpenStorage hr = 80030002 There are insufficicient resources to open another shared file
是怎么回事?
该怎么解决
谢谢

春华★秋实

  • 精华:0帖
  • 求助:0帖
  • 帖子:103帖 | 1038回
  • 年度积分:0
  • 历史总积分:3013
  • 注册:2007年5月17日
发表于:2008-02-21 09:37:00
11楼
转****的方法:
运行regedit,在HKEY_LOCAL_MACHINE\SOFTWARE\SIEMENS\WINCC\GRAPHICS DESIGNER\DYNAMICWIZARD   下新建字符串--database,值为c:\Program Files\Siemens\WinCC\WSCRIPTS\Dynmiz.dwd
注意:值要根据WINCC安装路径而定

ranranplay

  • 精华:1帖
  • 求助:0帖
  • 帖子:18帖 | 382回
  • 年度积分:0
  • 历史总积分:773
  • 注册:2005年9月27日
发表于:2008-02-22 16:55:00
12楼
"sprintf(p,"%02d:%02d:%02d",ptm->tm_mday,ptm->tm_mon,ptm->tm_year);"这句话有问题。
应该改成:
sprintf(p,"%02d:%02d[color=#FF0000]:%04d[/color]",ptm->tm_mday,ptm->tm_mon,ptm->tm_year);

Nickleen

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 146回
  • 年度积分:0
  • 历史总积分:186
  • 注册:2007年10月18日
发表于:2008-02-26 11:24:00
13楼
ranranlay兄还是程序高手啊 这会公司的项目不用WinCC了 改用FactoryTalk View了 不知道该怎么下手学习......

热门招聘
相关主题

官方公众号

智造工程师