西门子将电气化、自动化、数字化的力量融入各行各业,以前所未见的高度、速度、精度和深度,让关键所在,逐一实现。
德国制造: 现货 联 系 人: 黄勇《黄工》 24小时联系手机: 13701633515
全新原装: 参数
质量保证: 保修 直线销售 电 话: 021-61311931 在 线 商 务 QQ: 77956468
WinCC中定时器使用方法介绍
1、定时器功能介绍2、脚本中定时器介绍
3、使用脚本实现更多定时器功能
3.1 整点归档
3.2 WinCC 项目激活时避免脚本初次执行及延迟执行脚本1 定时器功能介绍
WinCC 中定时器的使用可以使 WinCC按照指定的周期或者时间点去执行任务,比如周期执行变量归档、在指定的时间点执行全局脚本或条件满足时打印报表。WinCC 已经提供了一些简单的定时器,可以满足大部分定时功能。但是在有些情况下,WinCC 提供的定时器不能满足我们需求,这时我们就可以通过 WinCC 提供的脚本接口通过编程的方式实现定时的功能,因为脚本本身既可以直接 调用 WinCC其他功能,比如报表打印,也可以通过中间变量来控制其他功能的执行,比如通过置位/复位归档控制变量来触发变量记录的执行。WinCC 提供了 C 脚本和 VBS 脚 本,本文主要以全局 C 脚本编程为例介绍定时功能的实现。
2 脚本中定时器介绍 既然在全局脚本中可以编程控制其他功能的执行,那么首先看看全局脚本的触发:

3使用脚本实现更多定时器功能
利用脚本自身的定时器, 可以通过在脚本中编程的方式实现更多其它定时功能。
3.1整 点归档
WinCC提供了变量归档,变量归档分为周期归档和非周期归档,不管是周期归档或非周期的归档,都又可以通过一些 变量或脚本返回值来控制归档, 比如:整点归档。下面的设置结合WinCC脚本,实现了在 整点开始归档,归档五分种后停止归档,即每个小时仅归档前五分钟的数据。软件环境:Windows 7 Professional Service Pack1 , WinCC V7.0 SP3
归档名称:ProcessValueArchive
归档变量:NewTag
归档周期:1 分钟
归档控制变量 startarchive
C脚本触发周期:10秒
脚本代码:
#include "apdefap.h"
intgscAction( void )
{
#pragma option(mbcs)
#pragma code ("kernel32.dll");
void GetLocalTime (SYSTEMTIME* lpst);
#pragma code();
SYSTEMTIME time;
int t1;
GetLocalTime(&time);
t1=time.wMinute;
if(t1==00)
{
SetTagBit("startarchive",1);
}
if(t1==05)
{
SetTagBit("startarchive",0);
}
return0;
}
归档设置如图2:

图2 归档设置
同理,在以上脚本的基础上做修改,可以实现在某个指定的时间点打印报表,只要在满足触发条件时调用下列函数:
RPTJobPrint(" Myprintjob");
Myprintjob为 事先创建好的打印作业。
脚 本主要部分在于获取系统当前时间,下 面的脚本实现了获取当前时间并分别获取年、月、日、时、分、秒、毫秒,星期几的功能。
Varname1 到 Varname8 为 WinCC 内部变量。若在 WinCC画面上显示时,由于默认 I/O 域的 格式为999.99, 要把 Varname1 的显示格式改为9999。
#include "apdefap.h"
intgscAction( void )
{
#pragma option(mbcs)
#pragma code ("kernel32.dll");
void GetLocalTime (SYSTEMTIME* lpst);
#pragma code();
SYSTEMTIME time;
GetLocalTime(&time);
SetTagWord("Varname1",time.wYear);
SetTagWord("Varname2",time.wMonth);
SetTagWord("Varname3",time.wDayOfWeek);
SetTagWord("Varname4",time.wDay);
SetTagWord("Varname5",time.wHour);
SetTagWord("Varname6",time.wMinute);
SetTagWord("Varname7",time.wSecond);
SetTagWord("Varname8",time.wMilliseconds);
return 0;
S7-200的仿真软件不是西门子公司编写的,国内有人将它汉化,其V2.0版可以对S7-200编程软件V4.0 编写的程序仿真。该仿真软件不能对S7-200的全部指令和全部功能仿真。但是它仍然不失为一个很好的学习S7-200的工具软件。
该软件不需要安装,执行其中的“S7-200仿真.EXE”文件,就可以打开它。点击屏幕中间出现的画面,输入密码6596后按回车键,开始仿真。
软件自动打开的是老型号的CPU 214,应执行菜单命令“配置”→“CPU型号”,用打开的对话框设置CPU的型号为CPU 22x。
下图左边是CPU 224,CPU模块下面是用于输入数字量信号的小开关板。开关板下面的直线电位器用来设置SMB28和SMB29的值。
双击CPU模块右边空的方框,用出现的对话框添加扩展模块。
仿真软件不能直接接收S7-200的程序代码,必须用编程软件的“导出”功能将S7-200的用户程序转换为扩展名为“awl”的ASCII文本文件,然后再下载到仿真PLC中去。
在编程软件中打开主程序OB1,执行菜单命令“文件”→“导出”,导出ASCII文本文件。
在仿真软件中执行菜单命令“文件”→“装载程序”,在出现的对话框中选择下载什么块,点击“确定”按钮后,在出现的“打开”对话框中双击要下载的*.awl文件,开始下载。下载成功后,CPU模块上出现下载的ASCII文件的名称,同时会出现下载的程序代码文本框和梯形图(见下图)。
执行菜单命令“PLC”→“运行”,开始执行用户程序。 如果用户程序中有仿真软件不支持的指令或功能,执行菜单命令“PLC”→“运行”后,出现的对话框显示出仿真软件不能识别的指令。点击“确定”按钮,不能切换到RUN模式,CPU模块左侧的“RUN”LED的状态不会变化。
可以用鼠标点击CPU模块下面的开关板上的小开关来模拟输入信号,通过模块上的LED观察PLC输出点的状态变化,来检查程序执行的结果是否正确。
在RUN模式点击工具栏上的按钮,可以用程序状态功能监视梯形图中触点和线圈的状态。
执行菜单命令“查看”→“内存监控”,可以用出现的对话框监控V、M、T、C等内部变量的值。