wincc定时器功能介绍

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

图1 脚本触发器分类
如图1所示: 脚本触发器分为使用定时器和使用变量, 定时器又分为周期执行和非周期执行一次,比如每分钟执行一次脚本属于周期执行,指定2012年10月1日执行一次属于非周期执行。 使用变量触发脚本,即在变量发生变化时,脚本就执行一次, 而变量的采集可以根据指定周期循环采集,或者根据变化采集,根据变化实际是1秒钟采集变量一次。
3使用脚本实现更多定时器功能
利用脚本自身的定时器, 可以通过在脚本中编程的方式实现更多其它定时功能。
3.1整点归档
WinCC提供了变量归档,变量归档分为周期归档和非周期归档,不管是周期归档或非周期的归档,都又可以通过一些变量或脚本返回值来控制归档, 比如:整点归档。下面的设置结合WinCC脚本,实现了在整点开始归档,归档五分种后停止归档,即每个小时仅归档前五分钟的数据。
软件环境:Windows 7 Professional Service Pack1 , WinCC V7.0 SP3
归档名称:ProcessValueArchive
归档变量:NewTag
归档周期:1 分钟
归档控制变量 startarchive
C脚本触发周期:10秒
脚本代码:
#include “apdefap.h”
int gscAction( void )
{
#pragma option(mbcs)
#pragma code (“kernel32.dll”);
void GetLocalTime (SYSTEMTIME* lpst);
#pragma code();
SYSTEMTIME time;
int t1;
GetLocalTime(&time);
t1=time.wMinute;
if(t100)
{
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 gscAction( 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 gscAction( 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 gscAction( 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;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/175067.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

智能座舱架构与芯片 - (2) 架构篇

一、定义 1.1 智能座舱定义 按照百度百科的定义,智能座舱(intelligent cabin)旨在集成多种IT和人工智能技术,打造全新的车内一体化数字平台,为驾驶员提供智能体验,促进行车安全。目前国内外已经有很多研究…

Ubuntu18 Opencv3.4.12 viz 3D显示安装、编译、移植

Opencv3.*主模块默认包括两个3D库 calib3d用于相机校准和三维重建 ,viz用于三维图像显示,其中viz是cmake选配。 参考: https://docs.opencv.org/3.4.12/index.html 下载linux版本的源码 sources。 查看cmake apt list --installed | grep…

基于鹰栖息算法优化概率神经网络PNN的分类预测 - 附代码

基于鹰栖息算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于鹰栖息算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于鹰栖息优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神经网络…

SV-7042VP sip广播4G无线网络号角

SV-7042VP sip广播4G无线网络号角 1. 采用防水一体化设计,整合了音频解码、数字功放及音柱 2. 提供配置软件,支持SIP标准协议,通过SIP服务器能够接入现有综合通信调度平台系统,接受sip通信调度平台。融合第三方sip协议及sip服务器…

2023亚太杯数学建模思路 - 案例:最短时间生产计划安排

文章目录 0 赛题思路1 模型描述2 实例2.1 问题描述2.2 数学模型2.2.1 模型流程2.2.2 符号约定2.2.3 求解模型 2.3 相关代码2.4 模型求解结果 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 最短时…

六、Big Data Tools安装

1、安装 在Jetbrains的任意一款产品中,均可安装Big Data Tools这个插件。 2、示例 下面以DadaGrip为例: (1)打开插件中心 (2)搜索Big Data Tools,下载 3、链接hdfs (1&#xff0…

将kali系统放在U盘中插入电脑直接进入kali系统

首先准备一个空白的 U 盘。 Kali Linux | Penetration Testing and Ethical Hacking Linux Distribution 在 Windows 上制作 Kali 可启动 USB 驱动器 Making a Kali Bootable USB Drive on Windows | Kali Linux Documentation 1. 首先下载 .iso 镜像 Index of /kali-images…

Logstash同步MySQL数据到ES

简介 1.1 什么是Logstash? Logstash作为一个具备实时流水线功能的开源数据收集引擎,拥有强大的能力。它能够从不同来源收集数据,并将其动态地汇聚,进而根据我们定义的规范进行转换或者输出到我们定义的目标地址。 1.2 Logstash的…

【数据结构-零基础学习】线索二叉树(代码+图示+解析)

【数据结构-零基础学习】线索二叉树(代码图示解析) 文章目录 【数据结构-零基础学习】线索二叉树(代码图示解析)[toc]定义产生背景种类示意图1)未加入线索的普通二叉树示意图1.12)线索添加的规则3)中序线索二叉树示意图1.24)中序线索二叉树分析示意图1.3 设计代码逻辑(重点)代码…

2023年软件团队的六款最佳API文档工具

API开发的增长导致了大量的API文档工具的出现,这一点在使用谷歌搜索“API文档工具”时可以明显看到很多的搜索结果。这些工具的激增与全球API开发的扩张和对准确文档的需求增加相一致。值得关注的是,不仅小型创业公司进入了API市场,许多成熟企…

磐舟CI使用说明及案例

整体介绍 磐舟作为一个devops产品,它具备基础的CI流水线功能。同时磐舟的流水线是完全基于云原生架构设计的,在使用时会有一些注意事项。这里首先我们要了解磐舟整体的流水线打包逻辑。 文档结构说明 一般来说,磐舟推荐单个业务的标准git库…

外卖小程序系统:数字化餐饮的编码之道

在当今数字化时代,外卖小程序系统成为了餐饮业的一项技术巨制。这个系统不仅提供了便捷的点餐体验,更通过先进的技术手段,实现了高效订单处理、实时配送追踪以及个性化推荐。让我们深入了解外卖小程序系统的技术魔法,一起揭秘数字…

初识JVM(简单易懂),解开JVM神秘的面纱

目录 一、什么是JVM(Java虚拟机)? 二、JVM的功能 三、JVM的功能-即时编译 四、常见的JVM 五、JVM的组成 五、JVM的工作流程 参考资料 一、什么是JVM(Java虚拟机)? 在Java的世界里,Java虚…

维纳滤波器小结

维纳滤波器小结 一、问题概述 1.1 维纳滤波器简介 维纳滤波器是在最小均方误差(mmse)准则下的线性最优滤波器,其利用平稳随机过程的相关特性和频谱特性,对混有噪声的信号进行滤波。 其输入信号为 u ( n ) d ( n ) v ( n ) u…

适合您的iPhone手机的 8 款最佳手机数据恢复软件

当谈到恢复已删除或丢失的 iPhone 文件时,您通常有两种解决方案:从备份恢复、使用 iPhone 数据恢复软件。 虽然前者听起来很简单,但您可能已经检查过并且没有备份。那么您的下一个选择是尝试 iPhone 数据恢复工具。 市场上有许多软件工具都…

搭个网页应用,让ChatGPT帮我写SQL

大家好,我是凌览。 开门见山,我搭了一个网页应用名字叫sql-translate。访问链接挂在我的个人博客(https://linglan01.cn/about)导航栏,也可以访问https://www.linglan01.cn/c/sql-translate/直达sql-translate。 它的主要功能有:…

酷开科技OS——Coolita,让智能大屏走向国际

10月23日,2023中国—东盟视听传播论坛在南宁举行。作为第五届中国—东盟视听周重要活动之一,本次论坛以“共享新成果、共创新视听、共建新家园”为主题。来自中国和东盟的300余名专家学者、业界代表通过主旨演讲、主题发言、圆桌对话等方式进行深入探讨&…

Linux操作系统使用及C高级编程-D9D10Linux 服务搭建与使用

TFTP服务器 TFTP(Trivial File Transfer Protocol)即简单文件传输协议,是TCP/IP协议中一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69 1、使用客户服务器方式和使用UDP数据…

STL中set的基本概念与使用

1 定义 1.1 set内元素唯一 1.2 set内元素默认升序排序 1.3 set内元素增&#xff0c;删&#xff0c;查时间复杂度都是O(logn) 2 使用 2.1 声明 set<int> mySet;2.2 插入元素 /*插入元素*/mySet.insert(5);mySet.insert(4);mySet.insert(3);mySet.insert(2);mySet.in…

Ajax基础(应用场景|jquery实现Ajax|注意事项|Ajax发送json数据|Ajax携带文件数据)

文章目录 一、Ajax简介二、基于jquery实现Ajax三、使用Ajax注意的问题1.Ajax不要与form表单同时提交2.后端响应格式问题3、使用了Ajax作为请求后的注意事项 四、前后端数据传输的编码格式(content-Type)1.urlencoded2.formdata3.application/json 五、Ajax携带文件数据六、Ajax…