WinCC 中定时器使用方法介绍

合集下载

图文详解西门子博途中的定时器指令

图文详解西门子博途中的定时器指令

图文详解西门子博途中的定时器指令S7-1200的定时器为IEC定时器,用户程序中可以使用的定时器数量仅受CPU的存储器容量限制。

使用定时器需要使用定时器相关的背景数据块或者数据类型为IEC_TIMER(或TP_TIME、TON_TIME、TOF_TIME、TONR_TIME)的DB块变量,不同的上述变量代表着不同的定时器。

注:S7-1200的IEC定时器没有定时器号(即没有T0、T37这种带定时器号的定时器)。

S7-1200包含四种定时器:·生成脉冲定时器(TP)·接通延时定时器(TON)·关断延时定时器(TOF)·时间累加器(TONR)四个指令如下图所示:一、脉冲定时器指令IN从“0”变为“1”,定时器启动,Q立即输出“1”;当ET<PT时,IN的改变不影响Q的输出和ET的计时;当ET=PT时,ET立即停止计时,如果IN为“0”,则Q输出“0”,ET回到0;如果IN为“1”,则Q输出“1”,ET保持。

二、接通延时指令N从“0”变为“1”,定时器启动;当ET=PT时,Q立即输出“1”,ET立即停止计时并保持;在任意时刻,只要IN变为“0”,ET立即停止计时并回到0,Q输出“0”。

三、关断延时指令只要IN为“1”时,Q即输出为“1”。

IN从“1”变为“0”,定时器启动;当ET=PT时,Q立即输出“0”,ET立即停止计时并保持。

在任意时刻,只要IN变为“1”,ET立即停止计时并回到0。

四、保持性通电延时指令只要IN为“0”时,Q即输出为“0”。

IN从“0”变为“1”,定时器启动;当ET<PT时,IN为“1”时,则ET保持计时,IN为“0”时,ET立即停止计时并保持。

当ET=PT时,Q立即输出“1”,ET立即停止计时并保持,直到IN变为“0”,ET回到0。

在任意时刻,只要R为“1”时,Q输出“0”,ET立即停止计时并回到0。

R从“1”变为“0”时,如果此时IN为“1”,定时器启动。

wincc画面输入时间,博途程序中输入时间案例

wincc画面输入时间,博途程序中输入时间案例

wincc画面输入时间,博途程序中输入时间案例一、引言在工业自动化领域,WinCC和博途程序广泛应用于各种控制系统中。

在这些程序中,输入时间功能是必不可少的。

本文将详细介绍如何在WinCC画面和博途程序中实现时间输入功能,以及相关注意事项。

二、WinCC画面输入时间的实现方法1.利用输入框输入时间在WinCC画面中,可以使用输入框(如文本框、按钮等)实现时间输入。

首先,在画面设计器中创建一个输入框,并设置输入类型为“时间”。

然后,在对应的变量中存储输入的时间值。

2.使用时间控件输入时间WinCC还提供了一些时间控件,如时间选择器、日期时间控件等。

通过在画面中添加这些控件,用户可以方便地选择和输入时间。

在程序中,可通过对应的变量获取输入的时间值。

3.实例演示以下是一个简单的实例:```变量:BOOL TimeInput;TIME_t TimeValue;画面:1.文本框(输入时间)2.按钮(触发时间输入)按钮事件:TimeInput = TRUE;TimeValue = WinCC_TimeInput();```三、博途程序中输入时间的实现方法1.利用变量存储时间在博途程序中,可以先创建一个变量(如整型、浮点型等)来存储时间值。

然后,在输入时间的地方,使用相应的变量进行存储。

2.使用函数输入时间博途程序中可以自定义一个函数,用于获取用户输入的时间值。

例如:```VARTimeValue: TIME_t;END_VARFUNCTION WinCC_TimeInput()TIME_t tempTime;WinCC_InputTime(tempTime);TimeValue = tempTime;END_FUNCTION```3.实例演示以下是一个简单的实例:```变量:TIME_t TimeValue;程序:1.调用自定义函数WinCC_TimeInput() 输入时间2.使用TimeValue 存储输入的时间值```四、输入时间的注意事项1.格式规范为确保输入时间的准确性,需规定统一的格式。

MCGS 定时器应用

MCGS 定时器应用

MCGS定时器应用
我想实现这麽一个功能:
1、设定要定时的时间,然后通过点击按钮,开始定时,当计时=时间设定时,停止计时,且计时器要求不复位。

下次需要同样的定时时间时,我只需点击开始计时按钮,计数器复位并开始计时。

2、我用定时器策略试了一下,发现它不能让计时器停下来,并且不能阻止计时器的复位。

它总是循环计时。

3、我用脚本函数试验了一下,发现不能实现计时器复位,实现下次的定时。

请教
您好,你可以通过如下方法解决:
1、在设定时间的按钮里面加上一行让定时器复位的脚本。

2、使用事件策略,策略执行的条件就为:计时=时间设定
3、事件策略里面加上脚本,脚本为定时器停止
对上面问题的解答
Data3为一个取反的开关量,这初始里设置为1,按下后执行脚本启动定时器,当计时到30时停止计时,然后下次启动时先复位后启动。

唯一是不知道你还要求不要求计时开始后不能停下来。

这个是还可以的啦!
IF Data3=0THEN
!TimerRun(1)
Data1=!Timervalue(1,0)
endif
if Data1>=30then
Data3=1
!TimerReset(1,0)
endif在上面的按钮的可见度属性中加入:Data3=1就可以解决中间不能在停下来的问题!:)在上面的按钮的可见度属性中加入:Data3=1就可以解决中间不能在停下来的问题!:。

wincc读写定时器问题

wincc读写定时器问题

[PLC、仪表资料][转载一西门子工程师]wincc读写定时器问题[ 2008/6/4 14:08:50 | By: 天涯 ]前日碰到了在wincc里面如何读取定时器当前时间以及设定定时器的时间问题,想起来以前曾经在西门子论坛里面看到过有人问这个问题,就去官方论坛里面search一把,果然很多帖子啊,整理了一下:-------------------------------------终于搞对了,WINCC里建立无符号32位数,改变格式DwordToSimaticBCDTimer,线形标定过程值0--1000,变量值0-1,地址选择对应的定时器就OK了,要注意的是I/O域的数据格式选择为字符串。

―――――――――――――――――――――――――――――――――――――――――――――――――――――――――将当前时间值的BCD码传给数据块―――――――――――――――――――――――――――――――――――――――――――――――――――――――――其实平常最多使用的是直接把定时器的bi端接到一个MW,然后从WINCC中读。

用MW20做为定时器的时间设定值 , 前面用一条I_BCD码转换指令传MW20定时时间, 结果输入0_999 的数时间对应0_9.99S没有问题, 但用0.1S做时间单元,设定4096以上的数时有时定时器不能正常启动. 总的说来还是对这块的帮组没有看明白,那位给指点下,我想连续的可以设定时间值在10S-50S 该怎么设定s5#time数据格式是低12位为BCD码时间数;高2位是时基:00-10ms01- 100ms10- 1s11- 10s所以大于4096就不正常了--------------------------------------找了台300plc,测试了下,第一个方法就可以(即:WINCC里建立无符号32位数,改变格式DwordToSimaticBCDTimer),我用的是sodts定时器指令,其bcd输出可以显示当前计时时间,设定端也可以从wincc直接改写,很简单啊。

PLC定时器指令 - 西门子plc

PLC定时器指令 - 西门子plc

PLC定时器指令 - 西门子plcS7-300有五种类型的定时器,三种类型的计数器。

定时器与计数器的数量取决于CPU型号。

定时器与计数器是plc的重要编程元件,用于产生各种控制需要的时序,满足各种控制要求。

1、延时通定时器指令图示延时通定时器(SD)。

梯形图中各输入输出端功能为:S—起动端,S7的定时器采用跳边沿起动;TV—设定值端,用于输入定时器的设定值,设定值的数据类型是S5TIME,标识符为S5T#;R—复位端,当R前面的RLO为1时,定时器被复位清0;Q—触头输出端,受起动端S控制;延时通定时器a)梯形图b)语句指令程序c)功能块图BI—当前值输出端,输出定时器的当前值;BCD—当前值的BCD码,输出定时器当前值的BCD码。

在梯形图及功能块图中S端与TV端必须填写,其余部分可以根据需要取舍。

当常开触头I0.7由0变1而产生RLO的上升沿,则定时器T4开始35s计时。

定时器的当前时间值等于预置值(TV,本例为35s)减起动后的时间。

如果I0.7保持为1,35s计时到达后,Q4.5由0变1,35s计时到达后若S端的RLO又变为0,则定时器复位,Q4.5随之变为0。

若35s计时时间未到达时,S端由1变为0,则定时器T4停止计时,当前时间值保持不变,Q4.5没有反应。

一旦S端又由0变为1而产生上升沿时,定时器T4重新起动,从预置值(35s)开始计时。

复位端R前I0.5变为1时,定时器T4复位,计时预置值和输出触头Q4.5均被清0。

2、锁存型延时通定时器指令图示锁存型延时通定时器(SS)。

当常开触头I0.7由0变1而产生RLO的上升沿,则定时器T4开始35s计时,计时期间即使S端变为0,计时仍然进行;计时到达后,输出端Q4.5变为1并保持。

锁存型延时通定时器a)梯形图b)语句指令程序c)功能块图若计时期间,输入端由1变0,然后再由0变1时,产生新的上升沿,则定时器将被重新起动,从预置值(35s)开始计时。

WinCC(变量记录和组态报警)

WinCC(变量记录和组态报警)

WCC变量记录和组态与报警
一、变量记录:
打开组态软件WCC进入变量记录:
点击定时器(读取变量的周期值),除默认外可另添加:
名称可任意设定,基准在默认值里选择,系数表示我所需要的间隔是基准的几倍。

其它如图设后点确定:
点归档:
点选择:
选中一个后点确定:
点完成即可,若想改变采集周期,可点变量属性:
可分别设置采集、归档/显示时间。

此为参数。

此为显示,若点击直接组态,则会有上下限值设定,当超限时画面只显示上下最大限值。

归档组态为默认,不用去改动设置。

完成后再保存。

另需在计算机属性的起动里要给变量记录系统打勾才能正常调用。

2、曲线组态:
点击画面编辑器里的控件:
双击出现的画面:
+为添加曲线-为减少曲线。

名称可填写中文的实际名。

选择归档/变量:
双击选中的变量可查看变量类型最后点确定:
一般选择线性连接,再选定线性粗细。

电击常规:
窗口标题为画面的总名称,显示标尺为鼠标点到曲线任一点时都自动读出该点数据;公共X轴一般为时间轴共用,Y轴若数据范围一样也可共用。

时间范围需选择。

标签可标中文实名;范围
选择以实际值上下限填入,如0——150;标尺小数位为Y轴分度小数位;小数位为显示数据小数位。

点击确定后完成:
3、查找历史曲线:
在时间轴里点击
再在选择时间里点击选择时间里的要调看的时间段。

运行WCC当中若要改变画面可观度可点击分配参数重新设定:
(注:可编辑下载,若有不当之处,请指正,谢谢!)。

WinCC定时器C脚本-推荐下载

WinCC定时器C脚本-推荐下载
1、定时器功能介绍
2、脚本中定时器介绍
3、使用脚本实现更多定时器功能 3.1 整点归档 3.2 WinCC 项目激活时避免脚本初次执行及延迟执行脚本
1 定时器功能介绍
WinCC 中定时器的使用可以使 WinCC 按照指定的周期或者时间点去执行任务,比如周 期执行变量归档、在指定的时间点执行全局脚本或条件满足时打印报表。WinCC 已经提供 了一些简单的定时器,可以满足大部分定时功能。但是在有些情况下,WinCC 提供的定时 器不能满足我们需求,这时我们就可以通过 WinCC 提供的脚本接口通过编程的方式实现定 时的功能,因为脚本本身既可以直接 调用 WinCC 其他功能,比如报表打印,也可以通过 中间变量来控制其他功能的执行,比如通过置位/复位归档控制变量来触发变量记录的执行。 WinCC 提供了 C 脚本和 VBS 脚 本,本文主要以全局 C 脚本编程为例介绍定时功能的实 现。
软件环境:Windows 7 Professional Service Pack1 , WinCC V7.0 SP3
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电通,力1根保过据护管生高线产中0不工资仅艺料可高试以中卷解资配决料置吊试技顶卷术层要是配求指置,机不对组规电在范气进高设行中备继资进电料行保试空护卷载高问与中题带资2负料2,荷试而下卷且高总可中体保资配障料置各试时类卷,管调需路控要习试在题验最到;大位对限。设度在备内管进来路行确敷调保设整机过使组程其高1在中正资,常料要工试加况卷强下安看与全22过,22度并22工且22作尽22下可护都能1关可地于以缩管正小路常故高工障中作高资;中料对资试于料卷继试连电卷接保破管护坏口进范处行围理整,高核或中对者资定对料值某试,些卷审异弯核常扁与高度校中固对资定图料盒纸试位,卷置编工.写况保复进护杂行层设自防备动腐与处跨装理接置,地高尤线中其弯资要曲料避半试免径卷错标调误高试高等方中,案资要,料求编试技5写、卷术重电保交要气护底设设装。备备置管4高调、动线中试电作敷资高气,设料中课并技3试资件且、术卷料中拒管试试调绝路包验卷试动敷含方技作设线案术,技槽以来术、及避管系免架统不等启必多动要项方高方案中式;资,对料为整试解套卷决启突高动然中过停语程机文中。电高因气中此课资,件料电中试力管卷高壁电中薄气资、设料接备试口进卷不行保严调护等试装问工置题作调,并试合且技理进术利行,用过要管关求线运电敷行力设高保技中护术资装。料置线试做缆卷到敷技准设术确原指灵则导活:。。在对对分于于线调差盒试动处过保,程护当中装不高置同中高电资中压料资回试料路卷试交技卷叉术调时问试,题技应,术采作是用为指金调发属试电隔人机板员一进,变行需压隔要器开在组处事在理前发;掌生同握内一图部线纸故槽资障内料时,、,强设需电备要回制进路造行须厂外同家部时出电切具源断高高习中中题资资电料料源试试,卷卷线试切缆验除敷报从设告而完与采毕相用,关高要技中进术资行资料检料试查,卷和并主检且要测了保处解护理现装。场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。

西门子S7-1200系列PLC的定时器介绍(三)

西门子S7-1200系列PLC的定时器介绍(三)

西门子S7-1200系列PLC的定时器介绍(三)S7-1200系列PLC的定时器采用的是IEC格式的定时器,每个定时器就是一个FB块,因此每个定时器在使用时都需要分配相应的背景DB块来存储定时器的相应的数据。

如果在程序中使用的定时器比较多,每个定时器都需要分配一个背景DB,则将会生成大量的数据块“碎片”。

为了解决该问题,我们可以通过以下两种方式来实现:1、在全局DB块中建立IEC_TIMER数据类型的变量,然后通过这个变量来代替定时器中的背景DB。

当在程序的OB块中或是FC块中需要使用到定时器时,可以先在全局DB块中建立相应的IEC_TIMER始数据类型的变量,当在调用定时器指令时,提示分配DB块时,可以点击取消,然后在定时器的输入背景数据块处,选择输入在全局DB块中建立的IEC_TIMER的数据类型的变量。

如下图所示,在数据块中分别建立了“启动延时”和“断开延时”两个变量,变量的类型都为IEC_TIMER的变量。

变量建立完成后,在编写程序时调用的定时器时分配背景块就可以分配相应的变量过去即可,如下所示:2、在FB块接口区中的静态变量中建立数据类型为IEC_TIMER的变量,然后分配给定时器。

在程序的设计过程中,定时器可能还会用于FB块中,因FB块在调用时需要给其分配背景DB,若在FB块中需要使用定时器,则可以在FB块的接口区中静态变量中建立IEC_TIMER数据类型的变量,如下图所示,接口区的静态变量中建立了“启动延时定时器”和“断开延时定时器”两个数据类型为IEC_TIMER的变量。

建立完FB块中的静态变量后,可编写PLC的程序,如下所示:(1) FB块中的程序:(2)建立完FB块的程序后,需要在OB1中调用该FB块,调用是系统会自动提示为该FB块生成背景数据块。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、定时器功能介绍
2、脚本中定时器介绍
3、使用脚本实现更多定时器功能
3.1 整点归档
3.2 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(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"
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);
return0;
}
设置或读取系统时间的函数如下:
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
return0;
}
除了避免项目运行激活时触发脚本执行,我们还可以通过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);
return0;
}
不管是整点归档或者延迟执行脚本,脚本中的参数都可以在运行期间通过 WinCC的画面动态设定。

注意事项
应用示例与所示电路、设备及任何可能结果没有必然联系,并不完全相关。

应用示例不表
示客户的具体解决方案。

它们仅对典型应用提供支持。

用户负责确保所述产品的正确使用。

这些应用示例不能免除用户在确保安全、专业使用、安装、操作和维护设备方面的责任。


使用这些应用示例时,应意识到西门子不对在所述责任条款范围之外的任何损坏/索赔承担
责任。

我们保留随时修改这些应用示例的权利,恕不另行通知。

如果这些应用示例与其它西门子出版物(例如,目录)给出的建议不同,则以其它文档的内容为准。

相关文档
最新文档