上升沿_上升沿和下降沿及R/F_TRIG指令

上升沿和下降沿是PLC编程中最基础的知识点,需要了解透彻,做到知其然,知其所以然。那么什么是上升沿和下降沿?

根据百度百科的解释:数字电路中,数字电平从低电平(数字“0”)变为高电平(数字“1”)的那一瞬间(时刻)叫作上升沿。数字电平从高电平(数字“1”)变为低电平(数字“0”)的那一瞬间叫作下降沿。

数字电路本质是将电压的变化截取了其中的两个段,规定为两种状态,而不考虑其细微的波动,比如TTL电路中,把小于0.8V的输入电压规定为低电平,把大于2V的输入电压规定为高电平。而对于CMOS电路,高电平近于电源电压,低电平接近于0V,具有很宽的允差值。所以电源电压的小幅波动对其没有影响。一个按钮的通断会在实际TTL电路中产生低于0.8V的电压和高于2V的电压,也就产生了低电平和高电平,上升沿的产生在电压高于2V 的一瞬间,下降沿的产生在电压低于0.8V的瞬间,而高低电平之间的电压属于不定电压,是一种不稳定状态,正常情况下,转变是瞬间发生的,在该电压范围内的过渡时间非常短,如果时间过长,系统会发生故障。

在西门子TIA中,R_TRIG是“检测信号上升沿”指令,F_TRIG是“检测信号下降沿”指令。在TIA系统帮助的注释说明如下:

『使用“检测信号上升沿”指令,可以检测输入 CLK 的从“0”到“1”的状态变化。该指令将输入 CLK 的当前值与保存在指定实例中的上次查询(边沿存储位)的状态进行比较。如果该指令检测到输入 CLK 的状态从“0”变成了“1”,就会在输出 Q 中生成一个信号上升沿,输出的值将在一个循环周期内为 TRUE 或“1”。在其它任何情况下,该指令输出的信号状态均为“0”。』

『使用“检测信号下降沿”指令,可以检测输入 CLK 的从“1”到“0”的状态变化。该指令将输入 CLK 的当前值与保存在指定实例中的上次查询(边沿存储位)的状态进行比较。如果该指令检测到输入 CLK 的状态从“1”变成了“0”,就会在输出 Q 中生成一个信号下降沿,即输出的值将为 TRUE 或“1”一个周期。在其它任何情况下,该指令输出的信号状态均为“0”。』

简单理解为,PLC在每一个循环扫描周期,都对当前的CLK值与上一个扫描周期的CLK值进行比较,在检测到变化时,输出一个为TRUE 或1的Q值(注:TRUE和1是一种状态的不同表述形式),并仅在一扫描周期有效。

举例分析:

  1. 假设M10.0位在上一个扫描周期的值为0,如果当前周期M1.0位的值还是0,没有变化。R_TRIG和F_TRIG输出的Q值仍保持为0;
  2. 如果当前周期M10.0位的值变为1,则在本周期内产生一个上升沿,将R_TRIG输出的Q值置位为1,F_TRIG输出的Q值仍保持为0;
  3. 如果在下一个周期M1.0位的值还是1,没有变化,将R_TRIG输出的Q值置位为0,F_TRIG输出的Q值仍保持为0;
  4. 如果下一个周期M1.0位的值变为0,则在本周期内产生一个下降沿,将F_TRIG输出的Q值置位为1,将R_TRIG输出的Q值置位为0;

对于控制柜或操作台使用的实体按钮,如何选用上升沿或下降沿?

实体按钮分有锁(按下触发→松开保持→再次按下复位)和无锁(按下触发→松开复位),而按钮的触点也分为常闭触点和常开触点。对于无锁按钮而言,按钮作为常开或常闭触点,与PLC的输入端子联接,也就确定了PLC程序中唯一的输入地址,与PLC程序中的变量存在一一对应的关系,其状态存储在映像寄存器中,PLC扫描外输入状态时,扫描到输入电路接通或断开状态,则将对应的映像寄存器中的状态置为1或0。对于PLC来说,并不能区分输入点是常开触点还是常闭触点,PLC只能扫描监测输入点的通或断。

7b0f4d778fa9f927739ed93f720625b7.png

按钮

一般情况下,启动、停止、复位按钮接常开触点,按钮的常开触点对应PLC 的变量是“0”,即低电平,当按下按钮的瞬间,按钮由常开变为闭合,对应的PLC变量产生了从“0”到“1”的变化,即产生了上升沿。当然,也可以使用实体按钮抬起时,按钮从闭合到断开的过程,从“1”到“0”的变化,即产生了下降沿。也就是说,在我们按一次自复位型的按钮过程中产生了一个上升沿和一个下降沿,都可以在程序中使用,但有一个细微的差别,如果按下按钮后保持不动,仍然保持接通的状态,那么产生上升沿后,并没有立即产生下降沿,只有到抬起时才产生下降沿,这就存在了延时。

那什么时候采用外接常闭的触点?急停按钮、限位开关等一般采用常闭触点,只要是基于安全考虑,常开触点对PLC输入时,正常运行状态下都是断开状态,如果期间发生触点接触不良或线路断开的情况,在需要急停和限位作用时,无法实现接通,会造成安全事故。如果接常闭触点作为PLC的输入,则无论哪种情况的断开都会让设备停止运行,提高设备的安全性。急停按钮具有自锁功能,需要手动复位操作,才能再次接通;限位在触发时,也是第一时间停止了运行的设备,也就保持了触发的状态,同样需要手动复位。所以这两种类型的都采用常闭触点,如果需要对复位的变化状态做出动作,则可以采用下降沿触发。

如果在PLC编程中使用R_TRIG或F_TRIG,首先需要声明一个数据类型为bool型的变量(假设命名为A),作为R_TRIG或F_TRIG的CLK输入,注意如果是实体按钮的输入点,需要在“PLC变量”中声明,同时地址设置为实际输入点的地址,例如I0.0,如果是HMI屏幕上的按钮,相对比较灵活,可以在PLC变量中声明,例如M10.0,也可以在FB中声明,但在FB声明时,要在静态变量(Static)中声明,静态变量的保持性才能实现前后两个周期的对比,才能获得0到1,或1到0的变化。临时变量(TEMP)可能也会出现这种变化,但是这种变化是不可控的,是不能在程序中使用的。然后在FB静态变量中声明一个数据类型为R_TRIG或F_TRIG的变量(假设命名为B),那么在程序中编写#B(CLK := "A");如果需要上升沿或下降沿的结果,在其他程序行调用#B.Q即可,#B.Q的值只在一个扫描周期有效,其他周期内都是0。

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值