浔之漫智控技术-西门子PLC代理商
西门子PLC模块 , 变频器 , 触摸屏 , 交换机
西门子模块6ES7214-1AD23-0XB8参数选型

西门子模块6ES7214-1AD23-0XB8参数选型

1定时器功能介绍

wincc中定时器的使用可以使wincc按照指定的周期或者时间点去执行任务,比如周期执行变量归档、在指定的时间点执行全局脚本或条件满足时打印报表。wincc已经提供了一些简单的定时器,可以满足大部分定时功能。但是在有些情况下,wincc 提供的定时器不能满足我们需求,这时我们就可以通过 wincc提供的脚本接口通过编程的方式实现定时的功能,因为脚本本身既可以直接调用wincc其他功能,比如报表打印,也可以通过中间变量来控制其他功能的执行,比如通过置位/复位归档控制变量来触发变量记录的执行。wincc 提供了c 脚本和vbs脚本,本文主要以全局 c 脚本编程为例介绍定时功能的实现。

2脚本中定时器介绍

既然在全局脚本中可以编程控制其他功能的执行,那么首先看看全局脚本的触发:

图1 脚本触发器分类

如图1所示: 脚本触发器分为使用定时器和使用变量, 定时器又分为周期执行和非周期执行一次,比如每分钟执行一次脚本属于周期执行,指定2012年10月1日执行一次属于非周期执行。 使用变量触发脚本,即在变量发生变化时,脚本就执行一次, 而变量的采集可以根据指定周期循环采集,或者根据变化采集,根据变化实际是1秒钟采集变量一次。

3使用脚本实现更多定时器功能

利用脚本自身的定时器, 可以通过在脚本中编程的方式实现更多其它定时功能。

3.1整点归档

wincc提供了变量归档,变量归档分为周期归档和非周期归档,不管是周期归档或非周期的归档,都又可以通过一些变量或脚本返回值来控制归档, 比如:整点归档。下面的设置结合wincc脚本,实现了在整点开始归档,归档五分种后停止归档,即每个小时仅归档前五分钟的数据。

软件环境:bbbbbbs 7 professional service pack1 , wincc v7.0 sp3

归档名称:processvaluearchive

归档变量:newtag

归档周期:1 分钟

归档控制变量 startarchive

c脚本触发周期:10秒

脚本代码:

#include "apdefap.h"

int gscbbbbbb( 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);

}

return 0;

}

归档设置如图2:

图2 归档设置

同理,在以上脚本的基础上做修改,可以实现在某个指定的时间点打印报表,只要在满足触发条件时调用下列函数:

rptjobprint("myprintjob");

myprintjob为事先创建好的打印作业。

脚本主要部分在于获取系统当前时间,下面的脚本实现了获取当前时间并分别获取年、

月、日、时、分、秒、毫秒,星期几的功能。

varname1到varname8为wincc内部变量。若在wincc画面上显示时,由于默认i/o 域

的格式为999.99, 要把 varname1的显示格式改为9999。

#include "apdefap.h"

int gscbbbbbb( 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;

}

设置或读取系统时间的函数如下:

setsystemtime

setlocaltime

getsystemtime

getlocaltime

系统中本地计算机时间和格林威治时间是有区别的。函数“setsystemtime /

getsystemtime”用于设置或读取格林威治时间。

函数“setlocaltime / getlocaltime”用于设置或读取本地计算机时间。

两种时间会因地理的时区不同而改变。两个函数使用方法相同。

3.2 wincc项目激活时避免脚本初次执行及延迟执行脚本

全局脚本在项目激活时,是要执行一次的,在有些情况下,需要避免脚本执行,就采用在脚本中去判断。比如可以创建wincc内部布尔型变量 flag,脚本如下:

#include "apdefap.h"

int gscbbbbbb( void )

{

#pragma option(mbcs)

if ( gettagbit("flag")==1)

settagword("newtag",1);//根据自己的需求编写对应代码.

else

settagbit("flag",1); //return-type: bool

return 0;

}

除了避免项目运行激活时触发脚本执行,我们还可以通过sleep() 延迟脚本功能执行,比如开机后五分钟开始执行脚本具体功能,代码如下:

#include "apdefap.h"

int gscbbbbbb( void )

{

#pragma option(mbcs)

#pragma option(mbcs)

#pragma code("kernel32.dll");

void sleep(int milliseconds);

#pragma code()

sleep(300000); //延迟300秒即五分钟

int temp;

//根据自己的需求编写对应代码.

temp=gettagword("newtag"); //return-type: word

temp++;

settagword("newtag",temp);

return 0;

本文主要针对高到 v5.3 版本以前的 step7 软件,相应操作系统的版本是 bbbbbbs 95/98/me/nt/2000。对于安装在新操作系统下的 step7 v5.4 和 v5.5 版本,该条目的内容只能有限制的使用。另外建议您安装完 simatic 软件后,给安装软件的磁盘建立一个镜像。如果需要使用镜像恢复硬盘的内容,需要首先保存好项目和授权。

警告:

在卸载过程中,在计算机上的所有siemens文件夹和注册表将被删除。如果文件夹中包含 step7 项目,在simatic manger 中用"file>;save as..."功能将这些项目文件拷贝到其它的目录下。也可以用"file >; archive"功能压缩到其它目录或者其它驱动器下。不要用 bbbbbbs expolrer 的复制或者移动功能来处理这些项目文件。

此外,从目录“<;>;\siemens\step7\s7data\gsd\”备份 gsd 文件。

重要说明:

首先将授权拷贝到授权盘中。

下面是完全卸载的操作步骤。


序号步骤
1在控制面板中打开“software”对话框并选择“add or remove programs”图标。卸载所有的simatic应用程序。


注意:

如果通过控制面板的“software” (“add or remove programs”) 对话框无法卸载step7,推荐采用如下步骤:无法卸载的原因可能是安装文件被损坏,例如,导致卸载总是报错而被终止。

打开浏览器并且在光驱中插入 step7 cd。

打开目录"<;:\step7\disk1" 选择 simatic step 7.msi" (在step 7 v5.3里) 或者 "setup.msi" (在step 7 v5.4里)。

点击鼠标右键,在弹出的菜单中打开并执行"uninstall"功能。

图 01

通过上述 msi 文件(bbbbbbs安装软件包)卸载 pc 上的 step7 软件。

2重新启动pg / pc。
3通过菜单命令“strat>;run...”输入“regedit”,点击“ok” 确认来打开注册表编辑器。


图 02

4打开"hkey_current_user >; software"目录,可以找到子目录"siemens",选择这个子目录并删除。


图 03

5打开"hkey_local_machine >; software"目录, 可以找到子目录"siemens"。选择这个目录并删除。这样在注册表中删除所有的 siemens 条目。


图 04

6关闭注册表编辑器,接着在 bbbbbbs 系统目录中删除所有的siemens目录(<;>;\siemens) 和所有的 s7 文件。为此需要打开搜索对话框"start >; bbbbbb >; all files and folders..."并选择所有的"s7*.*"文件。
7在开始菜单中删除simatic文件夹
8在bbbbbbs系统目录中(例如,"system (c:)删除"simatic.cfg"文件。


注意:

在新的操作系统中,这个文件可能不存在。

9删掉c:\rasetu*.*文件。
10通过"start >; bbbbbb >; all files and folders..."在 bbbbbbs 目录中(例如,"system (c:)搜索"citamis.str"文件并删除。
11清空回收站,现在完成了全部的卸载。


注意事项:

当完全卸载 step7,所有的 siemens 目录都被删除。在 siemens 目录下的其它 siemens 产品像 logo-soft ,soft data bbbb (手机软件) 和 merlin (bbbbbbs 98 and nt 下的 siemens 标准安装),这些产品的相关条目的删除会导致其应用软件和 siemens 产品无效。


展开全文
优质商家推荐 拨打电话