热线故事--巧用上升沿指令

已锁定

西门子Auto

官方工程师

  • 帖子

    132
  • 精华

    16
  • 被关注

    227

论坛等级:侠圣

注册时间:2007-08-03

普通 普通 如何晋级?

热线故事--巧用上升沿指令

13028

43

2013-04-19 15:16:11

star star
上升沿指令是大家在编程中比较常用的指令,但是这个指令非常容易用错,大多数情况是上升沿不起作用,和直接接通了一样。因为这个指令有一个非常特殊的变量---中间变量,它的用法很有讲究。
为了了解上升沿指令的中间变量用法,我们先来谈谈上升沿指令的来龙去脉。我们知道PLC程序是循环执行的,普通的开点指令一旦有信号就一直接通直到信号撤销,但是上升沿指令只有在第一个循环周期内接通,下一个周期就断开。为了实现这个效果,必须有一个中间变量来保存当前状态。具体的做法就是:当信号到来时先判断中间变量,如果中间变量为0,就接通回路,并且把中间变量置1;下一个循环周期到来时,程序检测到中间变量为1,就不接通回路,这样就实现了只执行一个程序循环周期的效果。
但是许多初学者经常使用临时变量来做中间变量,这样上升沿指令是不能正常工作的。因为临时变量是一个暂存区域,程序使用它来做一些过渡工作,它的值只在本程序循环周期内有效,不能持续到下一个循环周期(临时变量使用前必须赋值),这个特点与中间变量的功能相矛盾(信号到来的第一个循环赋值,以后循环周期使用)。所以应该用M变量或者DB块中的变量来做中间变量。需要注意的是一个中间变量只能给一个上升沿指令使用,不能重复使用。比如说M0.0已经用作了一个上升沿指令的中间变量,那么下一个上升沿指令必须用其他的M点。
但是这样有引出了一个新的问题:如果一个FC块中用到了上升沿指令,这个FC块又需要多次调用,那么上升沿指令的中间变量不是重复了吗?要解决这个问题有两个方法:1. 给FC块添加一个INOUT参数作为中间变量,通过这个参数给多次调用的FC块赋不同的中间变。2. 使用FB块来替代FC块,其它程序都一样,就是使用FB块的静态变量作为上升沿指令的中间变量。推荐使用FB块来做,简化了参数不容易出错。
热线故事--巧用上升沿指令 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54051条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。