西门子S7-1200定时器

news2024/12/31 6:35:14

一、西门子S7-1200定时器介绍

S7-1200的定时器为IEC定时器,用户程序中可以使用的定时器数量仅仅受CPU的存储器容量限制。

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

S7-1200包含四种定时器:

  • 脉冲定时器 TP
  • 接通延时定时器 TON
  • 关断延时定时器 TOF
  • 时间累加器 TONR

 此外还包含复位定时器(RT)和加载持续时间(PT)这两个指令。

指令位置参见图1,定时器引脚参考参见图2,定时器使用及时序图参见图3。这四种定时器又都有功能框和线圈型两种,区别参见图4。

图1 指令位置 

 图2 定时器引脚汇总

 图3 定时器使用及时序图 

图4 复位定时器和加载持续时间的区别

二、西门子S7-1200定时器创建

S7-1200定时器创建有以下几种方法:

1. 功能框指令直接拖入块中

自动生成定时器的背景数据块,该块位于“系统块>程序资源”中,参见图5。

图5 自动生成定时器的背景数据块 

2. 功能框指令直接拖入FB块中

生成多重背景,该函数块将数据保存在调用函数块的背景数据块中,参见图6。

图6 多重背景

3. 功能框指令直接拖入FB、FC块中

生成参数实例,从TIA博途V14开始,参见图7。

图7 参数实例 

4.在DB块、FB的静态变量、FC和FB的INOUT变量中新建IEC_TIMER类型变量

在程序中将功能框定时器指令拖入块中时,在弹出的“调用选项”页面点击“取消”按钮,之后将该建好的变量填入指定位置。对于线圈型指令,这是首选方法。

(1)DB块中新建IEC_TIMER等类型变量(LAD/FBD),如果是IEC_TIMER等类型变量的数组,S7-1200从V2.0版本开始支持,参见图8~图10。

图8 DB块中的定义 

图9 功能框定时器使用 

图10 线圈型定时器使用 

(2)FB的静态变量中新建IEC_TIMER等类型变量(LAD/FBD),如果是IEC_TIMER等类型变量的数组,S7-1200从V2.0版本开始支持,参见图11。

图11 静态变量中的定义

(3)FC和FB的INOUT变量中新建IEC_TIMER等类型变量(LAD/FBD),如果是IEC_TIMER等类型变量的数组,S7-1200从V2.0版本开始支持,从TIA博途V14开始支持IEC_TIMER等类型变量的变长数组(ARRAY[#]),参见图12。

图12 IN/OUT中定义 

(4)以上三种方法的SCL版本,从TIA博途V14开始支持,参见图13。

图13 SCL中使用

5. 在插入DB时,选择IEC_TIMER类型的数据块,将该数据块填在指令上方

此种方法生成的数据块等同于第一种的背景数据块,位于“系统块>程序资源”中,从TIA博途V11开始,线圈型指令同样适用,参见图14。

图14 新建IEC_TIMER类型DB 

三、西门子S7-1200定时器常见问题

1.为什么定时器不计时?

(1)定时器的输入位需要有电平信号的跳变,定时器才会开始计时。如果保持不变的信号作为输入位是不会开始计时的。TP、TON、TONR需要IN从“0”变为“1”启动,TOF需要IN从“1”变为“0”启动。

(2)定时器的背景数据块重复使用。

(3)只有在定时器功能框的Q点或ET连接变量,或者在程序中使用背景DB(或IEC_TIMER类型的变量)中的Q点或者ET,定时器才会开始计时,并且更新定时时间。参考图15。

图15 常见定时器使用方法

2.如何编程自复位定时器并产生脉冲?

正确答案参考图16,同时附上2种常见错误编程方式。

原因:S7-1200的定时器的时间更新发生在定时器功能框的Q点或ET连接变量时,或者在程序中使用背景DB(或IEC_TIMER类型的变量)中的Q点或者ET时。

即如果程序中多次使用同一背景DB的Q点,或者既使用定时器功能框的Q点或ET连接变量,又使用背景DB的Q点,以上两种情况都会造成定时器在一个扫描周期内的多次更新,可能造成定时器不能正常使用的情况。

 图16 自复位定时器示例

正确方法的流程,将程序根据指令分为两部分,如图17所示。

图17 分解正确指令

(1)阶段1:初始"DB2".脉冲=False,于是"DB2".脉冲取反为True,触发计时器开始计时,输出的"DB2".脉冲=False,状态不变;定时时间不到,则始终在阶段1;

(2)当“定时时间完成”发生在①所处的位置,在TON处定时器更新,Q输出True,因此输出的"DB2".脉冲=True,等到下周期时"DB2".脉冲取反为False,导致输出的"DB2".脉冲=False,等再到下周期时就回到了阶段1;

(3)当“定时时间完成”发生在②所处的位置,不影响定时器的更新,需要到下一周期才会改变输出,就回到了阶段2。

从上可知,定时器实现了自复位,并且“DB2”.脉冲=true只保持了一个周期,形成了脉冲。

以第一个错误方法解释一下为什么这种方法不能实现自复位定时器并产生脉冲,如图18所示,将程序根据指令分为三部分:

图18 分解错误指令

(1)阶段1:初始第一行"IEC_Timer_0_DB".Q=False,触发计时器开始计时,第二行,当定时时间未完成,"IEC_Timer_0_DB".Q=False保持不变,输出的"DB2".脉冲=False;定时时间不到,则始终在阶段1;

(2)阶段2:当“定时时间完成”发生在①所处的位置,在第一行的"IEC_Timer_0_DB".Q处定时器更新,更新后,"IEC_Timer_0_DB".Q=True,取反为False,此时作为TON的输入,使得定时器复位。第二行的"IEC_Timer_0_DB".Q=False,输出的"DB2".脉冲=False,到下周期时就回到了阶段1;

(3)阶段3:当“定时时间完成”发生在②所处的位置,在第二行的"IEC_Timer_0_DB".Q处定时器更新,更新后,"IEC_Timer_0_DB".Q=True,输出的"DB2".脉冲=True。等到下周期时,"IEC_Timer_0_DB".Q=True,取反为False,此时作为TON的输入,使得定时器复位,第二行的"IEC_Timer_0_DB".Q=False,输出的"DB2".脉冲=False,等再到下周期时就回到了阶段1;

(4)阶段4:当定时时间到发生在③所处的位置,不影响定时器的更新,需要到下一周期才会改变输出,就回到了阶段2。

从上可知无论“定时器时间完成”发生在哪个点,定时器都可以实现自复位,但是只有当定时时间到发生在②所处的位置时,"DB2".脉冲=True只保持一个周期,形成了脉冲,而在①和③时"DB2".脉冲始终为False无法形成脉冲。在正常程序中②的执行时间在整个扫描周期中占比很小,因此只有很低的概率可以实现脉冲。所以不能使用此种方法,第二个错误方法与之类似。

3.如何使用定时器实现精确定时?

举例来说,定时1s的接通延时定时器,当程序扫描到定时器功能框的Q点或ET时或者扫描到背景DB(或IEC_TIMER类型的变量)中的Q点或者ET时,如果时间为997ms,只会继续定时等下一次扫描,而下一次扫描到可能就是1003ms,此时定时器接通。

也就是说几乎不可能正好1s接通,如果再配合计数器实现更长时间的定时,误差只会越来越大。

所以精确定时还是推荐使用循环中断(OB30)配合计数器来实现。

4.定时器指令中,功能框和线圈型的区别?

原理上是完全一样的,细微区别:

(1) 功能框定时器上可以定义Q点或ET,在程序中可以不必出现背景DB(或IEC_TIMER类型的变量)中的Q点或者ET;而线圈型定时器必须使用背景DB(或IEC_TIMER类型的变量)中的Q点或者ET;

(2) 功能框定时器在使用时可以自动提示生成背景块,或者选择不生成;而线圈型定时器只能通过手动方式建立背景块;

(3) 线圈型定时器如果出现在网络段中间时不影响RLO的变化,如图19所示,"DB46".Static_1和I1.0同步变化。

图19 线圈型定时器示例 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

别再弄混流程挖掘、BPM和BI

信息时代以来,各类信息系统不仅在企业中得到了广泛的应用和普及,种类和选择伴随全球数字技术的发展也逐渐变得丰富多样。而随着数字化转型的不断深入,企业对系统管理的需求面临着全新的变化。 如何配置最适合当下业务的系统?这个…

Axure教程——图片轮播(纵向滚动)

本文介绍的时用Axure中的动态面板制作图片轮播之纵向滚动 一、预览效果 预览地址:https://c1s4i1.axshare.com 二、功能描述 图片纵向自动滚动播放 三、元件制作 拖入一个动态面板,命名为1,设置大小为375*155,并设置四个状态&…

文科生从0学Python转数据分析学习建议避坑指南

我本科是财务管理,文科专业,零基础学习Python转行数分后,现在我的日常工作都离不开它。 接下来,给各位跟我一样无编程经验的朋友一些学习的建议 目标导向:先搞清楚为啥要学 Python几乎可以做任何事,但我…

2023汽车供应链大会暨爱普搜采购商交流会

2023汽车供应链大会暨爱普搜采购商交流会 Automotive Supply Chain Conference & APSOTO Purchasing Exchange Meeting 补链强链 绿色发展--打造中国汽车供应链新生态 北京是我国汽车工业重地之一,产业实力雄厚,发展强劲。北京车企及零部件公司分布…

springboot高校宿舍报修管理系统计算机毕设 附源码83946

springboot高校宿舍报修管理系统 摘 要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代。在现实…

VUE L 事件处理 ⑤

目录 文章有误请指正,如果觉得对你有用,请点三连一波,蟹蟹支持✨ V u e j s Vuejs Vuejs E v e n t j s Eventjs Eventjs总结 文章有误请指正,如果觉得对你有用,请点三连一波,蟹蟹支持✨ ⡖⠒⠒⠒⠤⢄⠀⠀⠀…

Java反射机制以及应用

Java反射机制以及应用 1、Java反射 在运行状态中,对于任意一个类,都能够获取到这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性(包括私有的方法和属性),这种动态获取的信息以及动态调用对…

【推荐】免费PDF编辑修改软件排行榜Top11!

随着组织进入数字时代,他们需要处理大量数字文档,尤其是 PDF。PDF 是数字文档中使用最广泛的文件格式之一,能够编辑 PDF 文件至关重要。PDF编辑并不是任何软件都能轻松完成的。不过,网络上有大量免费、开源的 PDF 编辑软件可以帮助…

基于Springboot+vue+协同过滤+前后端分离+电子产品推荐系统(用户,多商户,管理员)+全套视频教程

基于Springbootvue协同过滤前后端分离电子产品推荐系统(用户,多商户,管理员)(毕业论文11000字以上,共33页,程序代码,MySQL数据库) 代码下载 链接:https://pan.baidu.com/s/1ckCKm4zKT0m4RqfHULYyOg 提取码:8888 【运行环境】Idea JDK1.8 Maven MySQL …

基于Servlet+JDBC实现的基础博客系统>>系列2 -- 前端基础页面

目录 1. 博客公共页面样式 2. 博客列表页 3. 博客详情页 4. 博客登录页 5. 博客编辑页 1. 博客公共页面样式 导航栏以及背景图设置 <body> <!-- 1.navigation 导航栏 --><div class"nav"><!-- logo --><img src"image/logo.png&q…

【深圳触觉智能技术分享】Purple Pi OH Android11 ROOT 方法

为了让应用程序可以直接调用su执行系统命令和获取root权限&#xff0c;本文基于Purple Pi OH主板的Android SDK&#xff0c;介绍如果修改和编译一个root版本的Android11系统,以下为sdk源码修改方法。 Purple Pi OH作为一款兼容树莓派的开源主板&#xff0c;采用瑞芯微RK3566 (…

【yocto2】利用yocto工具构建嵌入式Linux系统

1.定制化嵌入式linux系统 在实际项目中&#xff0c;一款嵌入式产品往往具有不同的硬件平台和软件需求&#xff0c;因此需要对嵌入式Linux系统进行定制&#xff0c;以满足不同的产品需求。之前的章节中基于Freescale官方提供的例程&#xff0c;构建了运行于imx6ull14x14evk硬件…

OpenCVForUnity(一)简介与插件

文章目录 前言:下载地址&#xff1a;官方文档/教学地址&#xff1a;主要模块的功能&#xff1a; 前言: 端午假期到了&#xff0c;最近我发现了一个非常有意思的课题——OpenCV&#xff0c;而我需要研究的则是OpenCVForUnity。它可以用于在Unity里处理图像、视频和摄像头数据&am…

Linux基础内容(24) —— 线程概念

Linux基础内容&#xff08;23&#xff09;—— 信号补充与多线程交接知识_哈里沃克的博客-CSDN博客https://blog.csdn.net/m0_63488627/article/details/131275661?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22131275661%22%2…

【无监督学习】0、有监督学习、无监督学习、半监督学习

文章目录 一、有监督学习二、半监督学习三、无监督学习3.1 对比式学习 一、有监督学习 有监督学习最大的特点就是数据集是带标签的&#xff0c;如有监督分类任务&#xff0c;就是给每张图都分配一个真实标签&#xff0c;表示这张图是 dog、cat 或者是 bird。 而标签的作用就是…

Git基本操作命令

目录 一、简介 二、基本命令使用 (1) git add ---将该文件添加到暂存区 (2) git status --- 命令用于查看在上次提交之后是否有对文件进行再次修改 (3) git diff -- 比较文件在暂存区和工作区的差异 (4) git commit --- 将暂存区内容添加到本地仓库中 (5) git reset --…

前端实现实时数据更新:EventSource

前言 大看板相信很多人都做过&#xff0c;通常就是用来展示数据的。最初一些同事&#xff08;包括我自己&#xff09;都是通过定时器来实现的&#xff0c;每隔多长时间发送一次请求。后来用户说页面不刷新或者是页面卡死了&#xff0c;讨论的解决方案是改成WebSocket实时推送消…

AI绘图软件分享:Midjourney 基础教程(四)参数进阶

大家好&#xff0c;我是权知星球&#xff0c;今天我们继续来学习Midjourney 基础教程&#xff08;四&#xff09;&#xff1a;Midjourney 参数进阶。 通过前⼏篇⽂章的学习&#xff0c;我们知道了&#xff0c;想要掌握 Midjourney AI 绘画技术&#xff0c;先需要学习掌握常⽤的…

还在烦恼代码写不出来?低代码助力实现“无码”搭建系统平台

摘要&#xff1a;本文由葡萄城技术团队于CSDN原创并首发。葡萄城为开发者提供专业的开发工具、解决方案和服务&#xff0c;赋能开发者。 据说… 每敲出来一行代码 就有一根头发离我而去… 而每解决掉一个bug 就有一个毛囊开始休养生息… 程序猿&#xff0c;一个让人既爱又…

USR-C216配置客户端模式,手机接收数据

若是不清楚现在模块什么配置可先恢复出厂设置&#xff0c;将nReload拉低3S即可。 此时模块发出热点名字为USR-C216,无密码 电脑连接后在浏览器输入10.10.100.254&#xff0c;进入后密码和用户名为admin