wincc读取系统时间的脚本编译无法通过

在编译wincc读取系统时间的C脚本
 #pragma code("kernel32.dll")
  
  VOID GetLocalTime(SYSTEMTIME *lpst);
  
  #pragma code();
  
   
  SYSTEMTIME zeit;
  
   
  GetLocalTime(&zeit);
  
   
  SetTagWord("varname",zeit.wYear);
  
  SetTagWord("varname",zeit.wMonth);
  
  SetTagWord("varname",zeit.wDayOfWeek);
  
  SetTagWord("varname",zeit.wDay);
  
  SetTagWord("varname",zeit.wHour);
  
  SetTagWord("varname",zeit.wMinute);
  
  SetTagWord("varname",zeit.wSecond);
  
  SetTagWord("varname",zeit.wMilliseconds);
  
 时(在内部变量新建组zeit),提示"error(0086):function'_main'does not return a valve
 该动作没有包含解释代码."
 不知道怎么回事,请指教!

问题补充:
我是想通过一个静态文本显示系统时间,脚本做在:静态文本属性>字体>文本 里,不知道放置脚本的地方对不对?

最佳答案

1。语句“VOID GetLocalTime(SYSTEMTIME *lpst);”有错误,应修改为“void GetLocalTime(SYSTEMTIME *lpst)”;
 2。从语句“SYSTEMTIME zeit;”第一个字符“S”开始,至语句“SetTagWord("varname",zeit.wMilliseconds);”最后一个字符“;”结束,没有加“{}”方向括符号。
 3。正确的完整C脚本代码如下:
 #pragma code("kernel32.dll")
 void GetLocalTime(SYSTEMTIME *lpst)
 {
   SYSTEMTIME zeit;
   GetLocalTime(&zeit);
   SetTagWord("varname",zeit.wYear);
   SetTagWord("varname",zeit.wMonth);
   SetTagWord("varname",zeit.wDayOfWeek);
   SetTagWord("varname",zeit.wDay);
   SetTagWord("varname",zeit.wHour);
   SetTagWord("varname",zeit.wMinute);
   SetTagWord("varname",zeit.wSecond);
   SetTagWord("varname",zeit.wMilliseconds);
 }
 

提问者对于答案的评价:
谢谢,我在全局脚本里把这个脚本放进去,可以通过,但是我去读zeit变量组里的变量,但是我在画面里建一个静态文本去读zeit变量组里的某个变量,显示数值都是0啊,不知道哪里有问题

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc273112.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 上午9:41
下一篇 2019年6月11日 上午9:42

相关推荐