博图程序块

定时器

TP

PT持续时间 

PT,是接通延时的持续时间,PT 参数的值必须为正数; Q,是超过时间 PT 后,置位的输出;

1、IN:布尔型变量,输入值,当该引脚信号从0变为1时(上升沿)定时器开始计时;

2、PT:时间型变量,输入值,Preset Time,表示定时器的预设时间值;

3、Q:布尔型变量,输出值,定时器标志位

4、ET:时间型变量,输出值,表示定时器的当前时间;

1、IN参数的上升沿信号启动定时器开始计时,此时Q输出信号的值为1;
随着时间的流逝,当定时器的当前值大于预设值PT时,若IN的信号仍然为1,则输出信号Q的值变为0;
2、当定时器激活后,无论输入参数IN的值是否发生变化,定时器都将持续计时,直到预设的时间值走完;
3、定时器计时结束后,IN参数信号的上升沿会重新激活定时器;

TON TOF TONR

TON是接通开始定时,定时时间一到接通相关触点。

TOF是断开开始计时,断开延时。

TONR接通开始定时,断开后保持当前定时时间,再次接通的时候会继续从当前时间开始计时,时间可以累积。

 

TON 和 TONR 定时器操作:

  • 在使能输入 IN 接通时开始计时。 当前值等于或大于预设时间时,定时器位置为接通。
  • 使能输入置为断开时,清除 TON 定时器的当前值。
  • 使能输入置为断开时,保持 TONR 定时器的当前值。 输入 IN 置为接通时,可以使用TONR 定时器累积时间。 使用复位指令 (R) 可清除 TONR 的当前值。
  • 达到预设时间后,TON 和 TONR 定时器继续定时,直到达到最大值 32,767 时才停止定时。

 

TOF 定时器

  • 使能输入接通时,定时器位立即接通,当前值置为 0。输入断开时,定时开始,定时一直持续到当前时间等于预设时间。
  • 达到预设值时,定时器位断开,当前值停止递增;但是,如果在 TOF 达到预设值之前使能输入再次接通,则定时器位保持接通。
  • 要使 TOF 定时器开始定时断开延时时间间隔,使能输入必须进行接通-断开转换。
  • 如果 TOF 定时器在 SCR(顺序控制)区域中,并且 SCR 区域处于未激活状态,则当前值设置为0,定时器位断开且当前值不递增。(顺序控制指令的功能是是按照控制工艺将一个复杂的步骤分割成几个简单的步骤(即顺控段),并根据工艺步骤顺序执行这些顺控段。
    普通的PLC程序是从头到尾不断扫描执行的。SCR指令的关键是“步”和“转换”,当转换的条件不满足时会一直保持在当前的步中。“转换”就是从一个步,进入另一个步。)
  • Variant (siemens.com.cn)
  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
博图是西门子公司推出的一种PLC编程语言,程序博图中的一种编程元素,用于实现特定的功能。在博图中,可以使用数据类型来定义变量,以便在程序中使用。下面是关于博图程序数据类型的介绍: 博图是一种基于图形化编程的PLC编程语言,它使用图形符号来表示程序和变量,使得程序的编写更加直观和易于理解。博图中的程序可以分为功能和组态两种类型,其中功能用于实现具体的功能,而组态则用于配置PLC的硬件和软件环境。 程序数据类型是博图中的一种数据类型,它可以用于定义变量的类型和结构。在程序中,可以使用数据类型来定义变量,以便在程序中使用。程序数据类型可以包含多个变量,每个变量可以是不同的数据类型,例如bool、int、real等。程序数据类型的定义可以在程序中进行,也可以在全局数据中进行。 下面是一个示例程序,演示了如何在博图中使用程序数据类型: ```ladder logic FUNCTION_BLOCK Motor VAR_INPUT motorRunning : BOOL; // 电机运行状态 motorErr : BOOL; // 电机故障状态 motorStart : BOOL; // 电机启动状态 motorFrequence : REAL; // 电机频率 END_VAR VAR_OUTPUT motorStop : BOOL; // 电机停止状态 END_VAR VAR // 定义一个程序数据类型 TYPE motorType : STRUCT motorRunning : BOOL; // 电机运行状态 motorErr : BOOL; // 电机故障状态 motorStart : BOOL; // 电机启动状态 motorFrequence : REAL; // 电机频率 END_STRUCT END_TYPE // 定义一个变量,类型为motorType motorData : motorType; END_VAR // 程序的逻辑实现 IF motorStart THEN motorData.motorRunning := TRUE; motorData.motorFrequence := motorFrequence; ELSE motorData.motorRunning := FALSE; END_IF IF motorErr THEN motorData.motorErr := TRUE; motorData.motorRunning := FALSE; ELSE motorData.motorErr := FALSE; END_IF motorStop := NOT motorData.motorRunning; END_FUNCTION_BLOCK ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值