|
摘要:本文介绍了可编程序控制器PLC用编程的方式实现单按钮双稳态控制的实现方法,并采用西门子公司生产的S7-200PLC为例,给出了运用基本逻辑指令、置/复位指令、SR双稳态触发器指令、运算指令及计数指令通过梯形图逻辑编程实现双稳态控制的实例。 关键词:S7-200;双稳态控制;指令;梯形图。 在设备的自动控制中,经常遇到用按钮控制气缸的伸出/缩回,工件的夹紧/放松,控制电机的启动/停止,机床可动部件的前进/后退等等的操作。对于这类动 作,如果用两个按钮来控制,当控制对象较多时,既增加了设备的硬件制造成本,也给设备的操作带来不便。操作人员往往希望通过一个按钮来实现控制动作的往 复,按一下按钮,气缸伸出(工件夹紧),再按一下按钮,气缸缩回(工件放松);再按一下按钮,气缸又伸出(工件夹紧),如此循环往复。在控制原理中把这种 控制称为双稳态控制,把采用一个控制按钮来实现某种动作往复控制的按钮称为双稳态按钮,即有两种稳定状态,接通和断开,而且两种状态都能保持。在生产设备 的控制设计中,控制面板能安装按钮的数量往往有限,同时过多的单一功能的控制按钮也会使设备操作十分繁琐。如果在PLC程序中通过编程把按钮做成双稳态 的,一个按钮同时实现开/关,就会使许多问题迎刃而解了。同时,PLC程序通过一个输入点(按钮)实现双稳态控制,还可以节省输入点的数量,这样设计也提 高了控制系统的经济性。 构成双稳态按钮的几种方法 在PLC程序中通过编程实现双稳态按钮控制,有多种实现的方法,现在就介绍其中的几种方法。下面的编程实例用西门子公司的S7-200PLC采用梯形图逻辑在STEP7-MicroWIN V4.0 SP5组态软件上来实现。 1、通过置位和复位指令来实现 图1 通过置位和复位指令来实现双稳态按钮功能 图1程序中,当第一次按下按钮I0.0,此时第一条支路因串联的V0.1为常闭点,而使V0.0接通条件满足置位。第二条支路的执行条件不满足,暂且不去 理会。再看第三条支路,假设持续按着按钮不释放,因支路中串联进I0.0的常闭点而使接通条件不满足,直到释放按钮I0.0,因串联的V0.0已经置位, 从而使V0.1和Q0.0输出保持为“1”。当第二次按下按钮I0.0时,因为V0.0的状态为“1”,第一条支路执行条件不满足,第三条支路因I0.0 的按下而使V0.1和Q0.0输出为“0”;,V0.1由“1”变为“0”产生一个下降沿,使V0.0复位为“0”,从而使V0.1和Q0.0的“0”状 态得以保持,即使释放按钮I0.0之后再对按钮I0.0进行操作,又重复上述过程。可见,得到的是一个双稳态按钮,I0.0每按下一次,Q0.0的状态就 翻转一次。按钮第一次按下、松开,第二次按下、松开程序执行情况见下图2、图3、图4、图5。 图2第一次按下启动停止按钮(未松开时)的程序联机状态 图3第一次按下启动停止按钮(松开时)的程序联机状态 图4第二次按下启动停止按钮(未松开时)的程序联机状态 图5第二次按下启动停止按钮(松开时)的程序联机状态 2、利用PLC基本逻辑指令来实现 PLC程序是按照一定的PLC扫描周期循环往复地的执行程序代码。在每一个PLC扫描周期内,先读入“输入过程映像区”内的信号状态,然后执行用户程序,最后刷新“输出过程映像区”的信号状态。用户程序的执行是按照代码的先后顺序自上往下、从左到右依次执行的。 图6 利用PLC基本逻辑指令来实现双稳态按钮功能 图6程序中正是充分利用了PLC程序顺序执行的特点,现在分析一下它的工作过程。按一下按钮,使I0.0变为“1”;第一支路,在I0.0变为“1”第一 个PLC扫描周期内,v0.1(常闭)为“1”,v0.0变为“1”;第二支路,v0.1等于“1”后,会使v0.0翻转为“0”,但v0.0的状态变化 要到下一个PLC扫描周期才会执行,可见v0.0是宽度为1个PLC扫描周期的脉冲信号。因为v0.0等于“1”,这样会使原来状态为“0”的Q0.0变 为“1”。从第二个PLC扫描周期起,不论I0.0变为“0”或保持为“1”,v0.0变为“0”并稳定在“0”上,这样Q0.0通过v0.0常闭点与 Q0.0常开点串联的支路保持为“1”状态。再按一下按钮,v0.0又产生宽度为1个PLC扫描周期的脉冲信号,这个脉冲信号使原来状态为“1”的 Q0.0变为“0”并稳定在“0”上。如此每次按一下按钮,Q0.0就在“0”和“1”之间切换一次,形成双稳态控制。这段程序中使用的指令是所有PLC 系统都支持的最基本的指令,可以在任何类型的PLC上都可以实现,非常具有代表性。 3、利用PLC基本逻辑指令来实现双稳态按钮功能的第二种方法 图7 利用PLC基本逻辑指令来实现双稳态按钮功能 图7程序中同样利用了PLC程序顺序执行的特点,现在分析一下它的工作过程。按一下按钮,使I0.0变为“1”,在I0.0变为“1”第一个PLC扫描周 期内,v0.0变为“1”,第二支路由于Q0.0这时为“0”,v0.1也为“0”,第三支路由于v0.0为“1”,v0.1(常闭)也为“1”,所以 Q0.0为“1”并自保。当再次按下按钮,使I0.0变为“1”,在I0.0为“1”的第一个扫描周期内,v0.0变为“1”,第二支路由于v0.0为 “1”,同时Q0.0 为“1”,所以v0.1也为“1”,第三支路由于v0.1变为“0”,Q0.0 也由“1”变为“0”。如此每次按一下按钮,Q0.0就在“0”和“1”之间切换一次,形成双稳态控制。同样,这段程序中使用的指令也是所有PLC系统都 支持的最基本的指令,可以在任何类型的PLC上实现。 4、利用SR双稳态触发器指令实现 图8 利用SR双稳态触发器指令实现 图8程序中利用了PLC程序SR双稳态触发器指令,现在分析一下它的工作过程。按一下按钮,使I0.0变为“1”,在I0.0为“1”的第一个扫描周期 内,第一支路中Q0.0(常闭)为“1”使SR双稳态触发器的S端为“1”,第二支路由于Q0.0(常开)这时为“0”,使SR双稳态触发器的R端为 “0”,这时使SR双稳态触发器被置位,Q0.0为“1”。当再次按下按钮,使I0.0变为“1”,在I0.0为“1”的第一个扫描周期内,由于第一支路 中Q0.0(常闭)为“0”使SR双稳态触发器的S端为“0”,第二支路由于Q0.0(常开)这时为“1”,使SR双稳态触发器的R端为“1”,这时使 SR双稳态触发器被复位,Q0.0为“0”。如此每次按一下按钮,Q0.0就在“0”和“1”之间切换一次,形成双稳态控制。 5、 借助于算术运算指令来实现 图9 利用算术运算指令实现双稳态按钮功能 图9所示的程序利用了整数加法指令实现双稳态控制,按钮I0.0每按下一次,就相当于给字vw0加上1,相加的和存入字vw0中,相加所得“和”的最低位 状态就翻转一次,将字vw0的最低位(v1.0)的状态写入Q0.0,就可得到周期性状态在“0”、“1”之间改变的双稳态信号。为了避免加法的计算结果 溢出,判断如果累加和的最低位为0时(v1.0)将vw0清零。如此每次按一下按钮,Q0.0就在“0”和“1”之间切换一次,形成双稳态控制。这里需要 注意的是,西门子公司的PLC内存单元中,如由VB0、VB1两个字节构成一个字VW0,将字的高8位放到VB0中,将字的低8位放到VB1中,所以 VW0的最低位为V1.0。 6、 借助于计数指令和比较指令来实现 图10 利用计数指令和比较指令实现双稳态按钮功能 图10所示的程序利用了计数指令和比较指令实现双稳态控制,按钮I0.0每按下一次,计数器C0的计数值就加上1,当计数器C0的值等于1时,将Q0.0 置位为“1”,当再次按下按钮I0.0时,计数器C0的计数值就加上1等于2,当计数器C0的值等于2时,将Q0.0复位为“0”,同时M0.0为 “1”,由于计数器C0的复位端由M0.0控制,当M0.0为“1”时将计数器C0复位,计数值清零;如此每次按一下按钮,Q0.0就在“0”和“1”之 间切换一次,形成双稳态控制。 如果将图10的控制程序做一下扩展就可构成多稳态控制,如下图(图11)就可构成4稳态控制按钮,按下按钮I0.0,Q0.0输出为“1”,Q0.1、 Q0.2复位为“0”;再按一次按钮I0.0,Q0.1输出为“1”,Q0.0、Q0.2复位为“0”;第三次按下按钮I0.0,Q0.2置位输出为 “1”,Q0.0、Q0.1复位输出为“0”;第四次按下按钮I0.0,Q0.0、Q0.1、Q0.2复位为“0”。 图11 利用计数指令及比较指令实现多稳态按钮功能 随着现在PLC的运算速度、内存容量的不断提高,原先在PLC编程中需要考虑的PLC内部资源占用、指令执行效率等问题现在已不是编程工作需要重点考虑的 问题;原来需要采用硬件设计才能实现的控制功能,现在都可以用编程的方法来实现并可显著降低控制系统的工程造价。当然,上面提及的几种编程实现双稳态控制 按钮的程序还只是控制程序的原型,在实际工程应用时应加入按钮防颤功能,来消除操作人员手指颤抖引起的系统输出抖动;同时在具体应用时也应当考虑控制系统 的安全级别,在程序中加入相应的安全控制功能及输出检测和互锁功能。
|
|