回复:如何用c脚本实现wincc同步于PLC的时间??

有谁共鸣

  • 帖子

    2153
  • 精华

    21
  • 被关注

    6

论坛等级:侠圣

注册时间:2005-05-07

普通 普通 如何晋级?

发布于 2006-09-01 13:51:30

0楼

设置系统的日期和时钟要用WIN API函数SetLocalTime实现:

刚刚测试通过的设置系统时钟的脚本程序:
#include "apdefap.h"
void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)
{
#pragma code("kernel32.dll")
BOOL SetLocalTime(CONST SYSTEMTIME *lpSystemTime);
VOID GetLocalTime(LPSYSTEMTIME lpSystemTime);
#pragma code()

SYSTEMTIME st;
int iRet;
HWND hwnd=NULL;

st.wYear=GetTagWord("year");//输入年份,year为16位无符号数
st.wMonth=GetTagWord("month");//输入月份,month为16位无符号数
st.wDay=GetTagWord("day");//输入天,day为16位无符号数
st.wHour=GetTagWord("hour");//输入小时,hour为16位无符号数
st.wMinute=GetTagWord("minute");//输入分钟,minute为16位无符号数
st.wSecond=GetTagWord("second");//输入秒,second为16位无符号数

hwnd==FindWindow(NULL,"WinCC-运行系统 - ");
if (SetLocalTime(&st))
{
iRet=MessageBox(hwnd,"时间修改成功!","对话框",MB_OKMB_ICONSTOPMB_SYSTEMMODAL);
}
else
{
iRet=MessageBox(hwnd,"时间修改不成功!","对话框",MB_OKMB_ICONSTOPMB_SYSTEMMODAL);
}


}
我手头没PLC,用内部变量通过(I/O)输入输出域输入系统日期和时钟通过API函数SetLocalTime设置系统日期时钟成功。

只要你把PLC的时钟通过wincc外部变量(注意变量为16位无符号数)读到wincc中就可以用如上脚本设置系统的时钟了,用全局动作来循环刷新系统时钟就可以了,(不知道你的项目有没有归档功能,经常改系统时钟对归档数据不利),最基本最重要的部分就如上的程序了,具体应用根据你自己的要求来扩展。
雄关漫道真如铁,而今迈步从头越!
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32564条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。