在编译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