请教:如何读出WINCC6.2的系统时间? 点击:889 | 回复:5



日九旮

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:69帖 | 337回
  • 年度积分:0
  • 历史总积分:636
  • 注册:2007年3月11日
发表于:2009-01-08 07:52:14
楼主

请教:如何读出WINCC6.2的系统时间?

网上的脚本通不过编译

#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);

运行到"【 GetLocalTime(&time); ‘出错?




kbtseAutomation

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2009-01-10 14:13:06
1楼
VOID GetLocalTime(LPSYSTEMTIME lpSystemTime);

stauty

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 41回
  • 年度积分:0
  • 历史总积分:5
  • 注册:2008年9月10日
发表于:2009-01-15 16:50:30
2楼
系统时间的获得,有两种办法,一是建立TAG,二是使用函数获取系统时间
方法一:
在[Tag Management]添加新的驱动"System Info.chn",然后在新添加的[SYSTEM INFO]新建连接,这样就可以创建实际TAG了;
下面新建几个TAG: [color=#0000FF][参考图片一][/color]
名字:date, 数据类型:text tag 8-bit character set,地址设定为Function:date,format:"MM-DD-YYYY"
名字:time, 数据类型:text tag 8-bit character set,地址设定为Function:Time,format:"HH:MM:SS"
根据上面的方法依次建立year,mon,day,week等TAG,请分别设置对应的format内容
TAG建立完成了,就可以读到系统时间了。新建一个图形文件,分别放置几个静态文本框[static text],把TEXT属性连接到上面新建的TAG,就可以显示系统日期时间,利用WEEK还能显示今天是星期几了. [color=#0000FF][[参考图片二>

方法二: 使用C脚本获得系统时间
time_t tp;
struct tm* TimeStruct;

time(&tp);
TimeStruct = localtime(&tp);

//系统时间已经获得
//年: TimeStruct -> tm_year+1900
//月: TimeStruct -> tm_mon+1
//日: TimeStruct -> tm_mday
//星期: TimeStruct -> tm_wday *注意这个,因为C函数手册不在我这里,tm_wday可能是表示星期几的

yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10208回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2009-01-16 08:49:34
3楼

如果是Wincc6以上,那么使用VBS脚本将更简单,DATE,TIME,NOW等函数都可以返回日期时间,且日期的运算也会非常简单。

指令代码也仅仅需要1行就可以了。

 

以上

shenwei4125

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 7回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2007年10月02日
发表于:2009-02-23 13:53:53
4楼

在画面NewPdl0_3建立一个静态文本1控件。在静态文本1控件属性中选择字体----文本----VBS动作。添加以下代码

Dim x
Set x=HMIRuntime.Screens("NewPdl0_3").ScreenItems("静态文本1")
x.Text=Time

颤栗の火焰

  • 精华:1帖
  • 求助:0帖
  • 帖子:11帖 | 28回
  • 年度积分:0
  • 历史总积分:87
  • 注册:2005年12月21日
发表于:2009-02-27 13:10:49
5楼
SYSTEM INFO里有,整的这么麻烦干嘛

热门招聘
相关主题

官方公众号

智造工程师