PLC论坛-全力打造可编程控制器专业技术论坛

 找回密码
 注册哦

QQ登录

只需一步,快速开始

微信扫码登录

查看: 20969|回复: 0

[西门子] AB PLC | Studio 5000之详解计时器指令

[复制链接]
发表于 2024-1-7 21:43:39 | 显示全部楼层 |阅读模式


前言:关于Studio 5000编程指令的用法,我原本计划是少写的,原因很简单,因为在指令集里面都有非常详细的说明和举例,只要静下心来好好看看就能明白的,但最近一些朋友也会问及指令的用法,比如计时器指令,说根据找不到T1、T2,怎么编程啊?一时,想起十年前,当初的我,不也是有这样的疑问吗。接触AB PLC之前,很多朋友搞的不是三菱,就是西门子,所以才有了上面的故事。那么,今天,我也重温一下看似简单、却常用的计时器指令,献给当初我,以及现在刚接触AB PLC的你。

01

测试环境

1. 操作系统:Windows7 旗舰版 SP1 64位

2. 编程软件:Studio 5000 V32.00.00中文版

3. 仿真软件:Studio 5000 Logix Emulate 32.00

02

计时器指令

1. LOGIX5000控制器编程软件RSLogix/Studio 5000计时器指令,一共6个,可使用梯形图、功能块图、结构化文本编程语言进行编程,详见下图.


2. 从上面图表可以看出,TON和TONR、TOF和TOFR、RTO和RTOR功能完全相同,只是前者只能使用梯形图,后者适用于功能块图或结构化文本编程.

03

梯形图

使用计时器指令

1. 前面已经介绍了适用梯形图编程的计时器指令,有三个,分别为TON、TOF、RTO,在使用这三个指令之前,需要先创建标签,数据类型为TIMER,本文创建了一个名为ld_Timer的计时器标签,当然名称随意,只要符合规则即可.


2. 数据类型为TIMER的计时器标签,为结构体标签,每个元素都是独立的标签,在程序开发时,均可直接使用,关于计时器每个元素的详细含义,详见下图.


3. 接通延时计时器TON指令,预设3000ms



    当myBool=0时,计时器处于初始状态

    ld_Timer.EN=0,  ld_Timer.TT=0

    ld_Timer.DN=0,  ld_Timer.ACC=0

    当myBool从0变为1时,计时器开始计时

    ld_Timer.EN=1,  ld_Timer.TT=1

    ld_Timer.DN=0,  ld_Timer.ACC变化

    当myBool=1且ld_Timer.ACC=3000时

    ld_Timer.EN=1,  ld_Timer.TT=0

    ld_Timer.DN=1,  计时器完成计时

    当myBool从1变为0时,计时器又回到初始状态

    ld_Timer.EN=0,  ld_Timer.TT=0

    ld_Timer.DN=0,  ld_Timer.ACC=0

4. 关断延时计时器TOF指令,还是使用ld_Timer这个标签,预设5000ms



    当myBool=0时,计时器处于初始状态

    ld_Timer.EN=0,  ld_Timer.TT=0

    ld_Timer.DN=0,  ld_Timer.ACC=0

    当myBool从0变为1时,计时器的状态

    ld_Timer.EN=1,  ld_Timer.TT=0

    ld_Timer.DN=1,  ld_Timer.ACC=0

    当myBool从1变为0时

    ld_Timer.EN=0,  ld_Timer.TT=1

    ld_Timer.DN=1,  ld_Timer.ACC变化

    当ld_Timer.ACC=5000时

    ld_Timer.EN=0,  ld_Timer.TT=0

    ld_Timer.DN=0

5. 保持型接通计时器RTO指令,继续使用ld_Timer这个标签测试,预设10000ms



    当myBool=0时,计时器处于初始状态

    ld_Timer.EN=0,  ld_Timer.TT=0

    ld_Timer.DN=0,  ld_Timer.ACC=0

    当myBool从0变为1时,计时器开始计时

    ld_Timer.EN=1,  ld_Timer.TT=1

    ld_Timer.DN=0,  ld_Timer.ACC变化

    当myBool从1变为0时

    ld_Timer.EN=0,  ld_Timer.TT=0

    ld_Timer.DN=0,  ld_Timer.ACC保持当前值

    当myBool再次从0变为1时,计时器又开始计时

    ld_Timer.EN=1,  ld_Timer.TT=1

    ld_Timer.DN=0,ld_Timer.ACC在上次基数上累加

    当ld_Timer.ACC=10000时,

    ld_Timer.EN=1,  ld_Timer.TT=0

    ld_Timer.DN=1

    这时,即使myBool=0时,

    ld_Timer.DN仍保持为1


6. 针对保持型接通计时器RTO完成计时后的状态,如果需要恢复初始状态(TT、DN、ACC等均为0),这时需要使用RES复位指令,另外两个计时器TON、TOF,也是用RES清零复位.



7. 计时器的预设值,以1ms为时基,比如要计时5秒,则需要赋值5000,可以直接在指令里面填写数值,也可以使用MOV指令赋值,另外,计时器的累加值.ACC,可以用来编程,和其他标签的一样.



04

功能块图

使用计时器指令

1. 如果要在FBD(功能块图)中使用计时器,则使用TONR、TOFR、RTOR这三个自带复位的计时器指令,使用之前,需创建数据类型为FBD_TIMER的标签,本文为fbd_Timer.


2. 新创建一个FBD程序,本文为FBD_TIMER.


3. 打开FBD_TIMER程序,在指令导航栏,找到计时器/计数器,本文选择TONR指令,如何使用,详见下图,也请自行测试,另外两个指令TOFR、RTOR用法类似,本文不再累述.


4. 如何编写FBD程序,以及如何监控FBD里面的标签,请详见这篇文章《RSLogix/Studio 5000之FBD编程》

05

结构化文本

使用计时器指令

1. 要在ST(结构化文本)中使用计时器,也是使用TONR、TOFR、RTOR这三个自带复位的计时器指令,使用之前,需创建数据类型为FBD_TIMER的标签,本文为st_Timer.


2. 新创建一个ST程序,本文为ST_TIMER.


3. 打开ST_TIMER程序,输入相应的代码,详见下图,另外两个指令TOFR、RTOR用法相同,本文不再展开了.


4. 如何编写ST程序,请详见这篇文章《STUDIO 5000之结构化文本编程》.

结语:综上所述,本文介绍了Studio 5000编程软件6个计时器指令的详细使用,用三种编程语言来阐述,虽然只是单纯的讲解了指令本身的用法,这个不是重点,重要的是使用的方法,而且,指令都不是独立的,指令均是为控制逻辑以及工艺要求服务的。所以,建议新接触AB PLC的朋友,多动手练练指令、多测试其用法,不以善小而不为。



【AB PLC工作室】

微信公众号ID:abseme



   坚持原创  注重实用



如果本文,对您有一点帮助或启示。

请分享给更多的朋友,对小编以示鼓励,谢谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册哦

本版积分规则

QQ|小黑屋|手机版|Archiver|PLC技术网-PLC论坛 ( 粤ICP备17165530号 )|网站地图

GMT+8, 2024-7-2 23:26 , Processed in 0.046220 second(s), 27 queries .

快速回复 返回顶部 返回列表