工控课堂

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

工控课堂 首页 工控文库 PLC学习 查看内容

AB PLC | Studio 5000之详解计时器指令

2020-4-23 21:49| 发布者: gk-auto| 查看: 10| 评论: 1|原作者: gk-auto

摘要: 来源:AB PLC工作室前言:关于Studio 5000编程指令的用法,我原本计划是少写的,原因很简单,因为在指令集里面都有非常详细的说明和举例,只要静下心来好好看看就能明白的,但最近一些朋友也会问及指令的用法,比如 ...

来源:AB PLC工作室
前言:关于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用法相同,本文不再展开了.

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



t01e7709700ab0f9dd6.jpg

路过

雷人

握手

鲜花

鸡蛋

相关阅读

发表评论

最新评论

fengshengzhou 2020-4-23 21:49
看完楼主的帖子,我的心情竟是久久不能平息,受教了

查看全部评论(1)

热门文章

QQ|免责声明|本站介绍|工控课堂 ( 沪ICP备20008691号-1 || 沪公网安备 31010602005455号 )|网站地图

GMT+8, 2020-4-28 22:10 , Processed in 0.080365 second(s), 45 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

返回顶部