西门子S7-1200系列PLC定时器指令

2023-05-16

        定时器指令是在PLC程序设计中非常常见的一种指令,S7-1200系列PLC的定时器的指令格式及使用方式都不同于S7-200系列PLC。

        S7-1200系列PLC的采用的是IEC标准的定时器指令,用户程序中可以使用的定时器数仅受CPU存储器容量限制,每个定时器均使用16个字节的 IEC_TIMER 数据类型的DB结构来存储功能框或线圈指令顶部指定的定时器数据,如下图所示。

 

        S7-1200系列PLC的定时器种类有脉冲型定时器、接通延时定时器、断开延时定时器以及保持性接通延时定时器。

 

        1、脉冲型定时器(TP

        脉冲型定时器的指令标识为TP,该指令用于可生存具有预设宽度时间的脉冲,定时器指令的IN管脚用于启用定时器,PT管脚表示定时器的设定值,Q表示定时器的输出状态,ET表示定时器的当前值,如下图所示为脉冲型定时器指令的指令格式及定时器指令执行时的时序图。

                

        使用TP指令,可以将输出 Q 置位为预设的一段时间,当定时器的使能端的状态从OFF变为ON时,可启动该定时器指令,定时器开始计时。 无论后续使能端的状态如何变化,都将输出 Q 置位由 PT 指定的一段时间。 若定时器正在计时,即使检测到使能端的的信号在此从OFF变为ON的状态,输出Q的信号状态也不会受到影响。

        脉冲型定时器的时序图分析出如下程序执行过程。

        当I0.5接通为ON时,Q0.4的状态为ON,5S后,Q0.4的状态变为OFF,在这5S时间内,不管I0.5的状态如何变化,Q0.4的状态始终保持为ON。

        2、接通延时定时器(TON

        接通延时定时器的指令标识符为TON,接通延时定时器输出端Q在预设的延时时间过后,输出状态为ON,指令中管脚定义与TP定时器指令管脚定义一致。如下程序所示,描述的接通延时定时器的指令格式及执行时序图。

        当定时器的使能端为1时启动该指令。 定时器指令启动后开始计时。在定时器的当前值ET与设定值PT相等于时,输出端Q输出为ON。 只要使能端的状态仍为ON,输出端Q就保持输出为ON。 若使能端的信号状态变为OFF,则将复位输出端Q为OFF。 在使能端再次变为ON时,该定时器功能将再次启动。

        根据接通延时定时器的执行时序图分析如下图所示程序的意思及执行过程。

        该段程序主要完成的是启动输出后,延时一段时间后自动断开的程序:当I0.5接通为ON时,执行复位优先指令中的置位功能,使得Q0.4输出为ON,当Q0.4输出为ON时,启动接通延时定时器TON,使该定时器工作进行延时,延时10S后,定时器的输出端Q输出为ON状态,此时复位优先指令中的复位端信号为ON,所以执行复位功能,所以Q0.4输出为ON。

 

3、断开延时定时器(TOF)

        断开延时定时器的指令标识符为TOF,断开延时定时器输出Q在预设的延时时间过后,重置为OFF。指令中管脚定义与TP/TON定时器指令管脚定义一致。如下程序所示,描述的断开延时定时器的指令格式及执行时序图

        当定时器的使能端为ON时,将输出端Q置位为ON。 当使能端的状态变回OFF时,定时器开始计时。 只要ET的值小于PT的值时,则输出端Q就保持置位。当ET的值等于PT的时,则将复位输出端Q。 如果输使能端的信号状态在ET的值小于PT值时变为ON,则复位定时器。 输出 Q 的信号状态仍将为ON。

根据断开延时定时器的时序图分析如下图所示的程序所描述的意思。

        根据对TOF定时器的执行过程的分析,可以看出该程序表示的是一个断开延时的过程,当I0.5为ON时,Q0.4输出为ON,当I0.5变为OFF时,Q0.4保持输出10S后自动断开为OFF。

 

4、保持性接通延时定时器(TONR)

        保持性接通延时定时器的标识符为TONR,保持性接通延时定时器的功能与接通延时定时器的功能基本一致,区别在于保持型接通延时定时器,在定时器的输入端的状态变为OFF时,定时器的当前值不清零,而接通延时定时器,在定时器的输入端的状态变为OFF时,定时器的当前值会自动清零,如下图所示,描述的是保持性接通延时定时器的指令格式及指令执行时的时序图。

        当定时去使能端为ON时,启动定时器。 只要定时器的使能端保持为ON,则记录运行时间。 如果使能端变为OFF,则指令暂停计时。 如果使能端变回为ON,则继续记录运行时间。 如果定时器的当前值ET等于设定值PT时,并且指令的使能端为ON,则定时器的输出端的状态为1.若定时器的复位端为ON时,则定时器的当前值清零,输出端的状态变为OFF。

        根据保持性接通延时定时器的时序图分析如下图所示的程序所描述的意思。

         当I0.5接通为ON时,定时器TONR开始执行延时功能,若在定时器的延时时间未到达10S时,I0.5变为OFF,则定时器的当前值保持不变,当I0.5再次变为ON时,定时器在原基础上行继续往上计时。当定时器的延时时间到达10S时,Q0.4输出为ON,在任何时候,只要I1.1的状态为ON,则该定时器的当前值都会被清零,输出Q0.4复位。

 

【应用】

        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块生成背景数据块。

https://www.siemensplc.com/rumen/12018.html

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

西门子S7-1200系列PLC定时器指令 的相关文章

  • Windows11安装Linux子系统(Ubuntu22.04LTS)+安装ROS

    目录 一 准备工作 二 安装Ubuntu 22 04 1 LTS 三 启动Ubuntu遇到的报错及解决方案 四 换源 五 安装ROS 设置编码 添加源 安装ROS 设置环境变量 测试 一 准备工作 控制面板 程序 程序和功能 启动或关闭 W
  • 如何在Github上建立自己的个人博客网站详细教程

    概述 之前闲着没事 就利用Github建了一个个人博客网站 效果还不错 今天就来分享一下 建立自己个人博客网站的好处 1 面试装逼 这个不必多说 2 把平时积累的知识和项目记录下来 方便日后查看使用 3 不受其他博客平台的限制 准备工作 开
  • 看野火的视频,用正点原子的板子(STM32F4探索者)做系统定时器实验

    1 实验目的 编写一个毫秒级的延时函数 xff0c 控制LED的亮灭 这里的灯是LED1 xff0c 端口是GPIOF xff0c 引脚是PIN10 2 实验流程 2 1 准备知识 SysTick 系统定时器 xff0c 24位 xff0c
  • 用正点原子的板子(STM32F4探索者)做PWM 输出实验

    1 实验目的 使用 TIM14 的通道 1 来产生 PWM 控制 LED0 DS0 的亮度 2 实验准备和流程 由上图可以看出 xff0c GPIOF9引脚对应的是定时器TIM14的通道1 由上图可以看出 xff0c GPIOF9引脚对应的
  • MATLAB快速入门(二):矩阵

    矩阵 目录 矩阵 1 冒号表达式 2 矩阵元素的引用 3 矩阵的运算 3 1算术运算 3 2逻辑运算 4 特殊矩阵 5 矩阵变换 5 1对角阵 5 2三角阵 5 3矩阵旋转 5 4稀疏矩阵 6 矩阵求值 1 冒号表达式 e1 e2 e3 省
  • toString方法使用

    一 Object类中toString的作用 1 在主方法中我们可以直接用toString 输出对象其中的内容 2 我们需要直接输出对象中所属内容时 xff0c 直接使用toString 方法输出语句 xff0c 输出内容不友好 xff0c
  • px4+mavros+offboard控制+gazebo仿真以及与pixhawk4飞控连接(一)

    记录一下自己从px4到板载控制的一系列流程以及踩坑过程 xff0c 希望也可以帮助大家避雷 话不多说直接上干货 一 软 硬件平台 px4版本 xff1a 1 10 1 飞控板 xff1a pixhawk4 ros版本 xff1a melod
  • 浅谈穿越机飞控如何烧写固件及其相关设置问题

    背景 xff1a 自己本人是无人机爱好者对穿越机也较为痴迷 xff0c 在使用DJI FPV天空端时发现无法显示OSD信息 xff0c 同时在眼镜端的OSD开关已经打开 xff0c 查阅相关资料发现自己的飞控版本过低需要烧写到4 1 0以上
  • XSS攻击原理及防范

    文章目录 一 XSS攻击简介二 XSS攻击分类1 反射型2 存储型3 DOM based型 三 XSS防范1 cookie安全策略2 X XSS Protection设置3 XSS防御HTML编码4 XSS 防御HTML Attribute
  • Jetson Xavier NX安装librealsense

    在nx上安装librealsense可以使用由jetsonhacks开源的安装脚本installRealSenseSDK 克隆仓库 xff0c 进入目录 git clone https github com jetsonhacks inst
  • Kubernetes(K8s)的简介及基础知识

    1 关于Kubernetes xff08 K8s xff09 的简介 Kubernetes xff0c 简称又叫K8s xff0c 为什么简称要叫K8s xff0c 据说是因为Kubernetes单词中K字母和S字母之间相隔8个字母 xff
  • 爬虫实战(三)

    随着互联网的不断发展 xff0c 网络数据的规模和价值也不断提升 在这个大数据时代 xff0c 如何从海量数据中提取有价值的信息并加以利用 xff0c 成为了数据科学 商业分析 金融预测 社会研究等领域中一个重要的问题 而网络爬虫作为一种数
  • 数据库连接

    一 连接数据库的方法和工具 数据库连接是访问数据库的关键步骤之一 xff0c 通过连接数据库 xff0c 我们可以进行数据的增删改查等操作 下面介绍几种连接数据库的方法和工具 命令行工具 在命令行中输入相应的命令即可连接数据库 常用的命令行
  • C语言之十进制转化为十六进制

    作者 xff1a 从未止步 博客主页 xff1a 从未止步的博客 专栏 xff1a 和我一起学C 语录 xff1a Every day is a second chance 行动是理想最高贵的表达 xff0c 给大家介绍一款超牛的斩获大厂o
  • 合肥工业大学机器人足球仿真robcup作业二(python实现)附代码有注释

    用面向对象的思维设计相关类 xff0c 从而实现直线与直线 直线与圆 直线与矩形的交点 要求各给出每个案例的至少一个示例的程序 这是第二次机器人足球的作业代码 xff0c 写的比较潦草 xff0c 但是用的方法还是通俗易懂的 xff0c 基
  • 合肥工业大学机器人足球仿真robcup作业三(python实现)附代码有注释

    第三次作业 题目 xff1a 已知2个点的信息 定位自己的绝对坐标 设图中C 0 0 P1 52 5 32 P2 52 5 32 P3 52 5 32 P4 52 5 32 P5 0 32 P6 0 32 P7 30 7 P8 30 7 P
  • 程序员一定要知道的10个网站,记得收藏

    为大家整理了对程序员超有用的网站合集 xff0c 今天主要分享知识社区 amp 学习刷题两大类 希望能助力各位早日成为码神 话不多说 xff0c 直接上干货 知识社区类 1 Github 程序员的Facebook 毋庸置疑 xff0c 首位
  • for in 和for of的区别

    文章目录 1 遍历数组通常用for循环2 for in遍历数组3 遍历对象总结 1 遍历数组通常用for循环 ES5的话也可以使用forEach xff0c ES5具有遍历数组功能的还有map filter some every reduc
  • win11打开移动热点显示“我们无法设置移动热点”

    解决方法 xff1a 以下方法是本人联系微软客服解决 xff0c 亲测有效 用管理员模式打开命令提示符 xff0c 输入netsh winsock reset xff08 按下Enter键 xff09 netsh int ip reset
  • 树莓派pico的软件安装及使用

    简介 xff1a 在些日子在芯查查积分商城兑换了一个树莓派pico xff0c 来教大家怎么安装Thonny软件 xff0c 并且使用Thonny编译运行树莓派pico 第一步 xff1a 安装固件 第二步 xff1a 在window上安装

随机推荐

  • Git分布式版本控制工具(linux)

    内容 xff1a Git 概述 Git 代码托管服务 Git 常用命令 在 IDEA 中使用 Git 目录 1 前言 xff1a 1 1 什么是Git xff1f 1 1 1 其他版本控制工具 xff1a 1 2 使用Git能做什么 xff
  • ADRC的simulink仿真实现与m代码实现

    本文章以最简单的二阶系统为例 xff0c 介绍其simulink仿真实现和m代码实现 案例中的二阶系统如下所示 经典ADRC的基本结构如下 xff1a 本案例中的simulink仿真整体结构 xff08 为便于理解 xff0c 结构图与上述
  • 安装ROS

    如何在电脑安装ROS 安装ROS环境是学习ROS的第一步 xff0c 本文将记录个人搭建的过程 xff0c 包括可能遇到的错误 解决办法 个人心得等 文章目录 如何在电脑安装ROS 前言一 在Windows系统下载VMware虚拟机并安装二
  • ROS命令行工具的使用

    一 命令行工具的使用 前言 在ROS里面 xff0c 命令行工具的使用能够使我们深入了解ROS xff0c 使我们操作ROS的时候更加方便 我们利用海龟作为示例进行命令行工具的学习 运行小海龟步骤 xff1a 终端输入 roscore 然后
  • ROS快捷操作键和话题记录与复现

    一 ROS快捷操作键 打开终端 xff1a Ctrl 43 alt 43 T 查看隐藏文件夹 xff1a Ctrl 43 H 结束终端的某个操作 xff1a Ctrl 43 C 启动运行ROS系统前必须的一个指令 xff1a roscore
  • ROS工作空间和功能包

    一 工作空间 工作空间 xff08 workspace xff09 xff08 缩写ws xff09 工作空间是存放工程开发相关文件的文件夹 代码空间 xff08 source space xff09 xff08 src xff09 是用来
  • ROS实现代码及已编译代码运行步骤

    目录 一 实现一个代码步骤1 C 43 43 代码实现步骤2 python代码实现步骤 二 已编译代码运行步骤 一 实现一个代码步骤 1 C 43 43 代码实现步骤 在catkin ws src 内创建功能包的步骤 其实可以任意创建工作空
  • 基于ROS的PX4+Gazebo仿真——PX4一键起飞及飞行控制

    一键起飞 参考及引用 1 CSDN博主 战争果子 的原创文章 xff0c 遵循CC 4 0 BY SA版权协议 原文 xff1a https blog csdn net EnthusiasmZing article details 7916
  • RT-Thread相比较于Freertos的优势在哪里

  • Up Board安装ROS及mavros

    Up Board安装ROS及mavros 目录 Up Board安装ROS及mavros一 在Up Board安装Ubuntu系统1 材料准备2 拿一个空的U盘作为驱动盘为Up Board安装系统3 安装Ubuntu系统 二 在Ubuntu
  • Unity和ROS通讯的机械臂

    Unity和ROS之间的通讯包 目录 Unity和ROS之间的通讯包参考及引用1 Github源码地址 Unity和ROS之间的通讯 一个ROS包 xff08 用于接收从Unity场景发送的ROS消息 xff09 两个导入到Unity的包
  • 虚拟机Ubuntu磁盘扩容个人记录

    虚拟机Ubuntu磁盘扩容个人记录 一 修改扩展大小 修改成功以后 xff0c 打开虚拟机Ubuntu 二 进入Ubuntu修改 打开终端 xff0c 输入 sudo gparted 右键点击后更改大小 然后确定修改 最后 xff0c 终端
  • 下载源码包后在Ubuntu编译

    下载源码包后在Ubuntu编译 学习使用Ubuntu过程中 xff0c 不免会尝试跑一遍别人的代码 xff0c 这时候要知道如何将源码下载后进行编译及运行 本文与以下两篇博客相关 xff1a ROS工作空间和功能包 ROS实现代码及已编译代
  • 利用科大讯飞语音合成模块SDK实现ROS语音交互

    利用科大讯飞语音合成模块SDK实现ROS语音交互 本文内容与CSDN博主 AI Chen 的原创文章相同 xff0c 可以直接参考原文 xff1a https blog csdn net qq 39400324 article detail
  • tts_subscribe.cpp代码

    tts subscribe cpp span class token comment 语音合成 xff08 Text To Speech xff0c TTS xff09 技术能够自动将任意文字实时转换为连续的 自然语音 xff0c 是一种能
  • FreeRTOS线程安全、中断安全的printf实现方式

    文章目录 前言一 问题描述二 解决方案1 线程安全 中断安全的printf实现方式 总结参考 前言 利用串口对基于FreeRTOS的多任务程序调试过程中 xff0c 时常出现数据交叉打印 xff0c 甚至出现乱码现象 这是因为通常情况下 x
  • 结构体空间对齐和结构体数组的使用

    今天在学习linux的platform总线时 xff0c 设备对资源的描述用到了结构体数组 xff0c 以前从没见过 如下 很明显用结构体数组主要是用来给一系列相同类型的结构体赋值 xff0c 主要是来看内存分配问题 首先是结构体的内存分配
  • ubuntu:出现bash: /opt/ros/melodic/setup.bash: 没有那个文件或目录 解决方法

    如图 xff0c 解决方法如下 xff1a 打开虚拟机终端 xff0c 输入 gedit bashrc 弹出一个文件 xff0c 找到最后一行 xff0c 如图所示 然后我roscore了一下 xff0c 看了一下我的ros版本 xff1a
  • STC单片机仿三菱FX2n方案 hex烧录进去就可以当plc用

    STC单片机仿三菱FX2n方案 hex烧录进去就可以当plc用 xff0c 成本低方便快捷id 61 643520282241 amp
  • 西门子S7-1200系列PLC定时器指令

    定时器指令是在PLC程序设计中非常常见的一种指令 xff0c S7 1200系列PLC的定时器的指令格式及使用方式都不同于S7 200系列PLC S7 1200系列PLC的采用的是IEC标准的定时器指令 xff0c 用户程序中可以使用的定时