朱志金,姚 翔,刘永宽
(江苏扬力数控机床有限公司,江苏 扬州 225009)
闭锁开关在机床上使用的地方很多,但考虑到成本及其他因素,有时我们需要通过PIC编程控制的方法用非闭锁按扭开关实现闭锁开关功能。不同的PLC控制器编写的程序稍有不同,但是其原理基本相同。
本文是在SIEMENS S7-300PLC控制器上对几种编程方法进行的总结,总时序图如图1所示。图1中,I7.0为面板非闭锁按钮输入信号,Q40.0为输出信号。以下描述中,“1”为高电平,“0”为低电平,M0.0,M0.1,M0.2等为系统内部中间继电器。
图1 总时序图
如图2所示,首次按I7.0,通过一个周期循环,Q40.0输出置1,并通过Q40.0自锁,Q40.0始终保持为1。以后循环中,由于I7.0还没有再次得电,使得M0.1置0,M0.2置0,Q40.0通过自锁始终保持为1。
再次按I7.0按键后,通过一个周期循环,M0.1置0,M0.2置1,使得Q40.0输出置0。再次循环后,由于I7.0还没有再次得电,使得M0.1和M0.2均置0,Q40.0也为0,从而使得Q40.0输出始终保持为0。
如图3所示,首次按I7.0按钮并松开,网络1中通过中间继电器M0.0自身自锁使得M0.0始终为1,运行至网络2中,通过M0.0锁定,Q40.0输出始终为1。
再次按I7.0按钮并松开,网络1断开,使得M0.0通过自身自锁输出始终为0,运行至网络2中,由于I7.0按钮松开为0,M0.0自锁始终为0,使得Q40.0输出始终为0。
图2 常用方法
图3 使用下降沿
如图4所示,首次按I7.0,经过一个循环周期,Q40.0输出为1,下一次及以后循环,I7.0无上升沿,M0.0置0,Q40.0上个循环中为1,使得Q40.0输出始终保持为1。
再次按I7.0,经过一个循环周期,Q40.0输出置0,继续下一次循环,I7.0无上升沿,M0.0置0,Q40.0为0,以后循环同样原理,Q40.0始终保持为0,直到下一次I7.0信号到来。
图4 使用上升沿
如图5所示,首次按I7.0,经过一个循环周期,通过置位指令功能,Q40.0置位为1,继续循环至网络1,当松开I7.0按钮后,通过置位功能,M0.0置位为1,继续循环,M0.0始终为1,Q40.0始终置位为1。
图5 利用置位和复位指令
再次按I7.0,经过一个循环周期,通过复位指令功能Q40.0复位为0,继续循环,当I7.0按钮松开后,通过一个周期循环M0.0复位为0,如此循环往复,Q40.0始终保持状态为0,直到下一次I7.0信号到来。
如图6所示,首次按I7.0,首次循环,运行网络1,不跳转,运行网络2,Q40.0输出置1,至网络3,M0.0置1,直到I7.0按钮松开。网络1中,I7.0为0,跳转至网络3,M0.0为0,持续往复,由于网络2始终跳过,Q40.0始终保持之前状态为1。
再次按I7.0按钮。运行网络1,不跳转,继续运行网络2,Q40.0置0,至网络3,M0.0置1,循环至网络1,由于M0.0通过上次循环为1,所以跳转至网络3,直到I7.0按钮松开,运行网络1时,I7.0为0,还是跳转到网络3,M0.0置0,持续循环,Q40.0始终保持为0,直到下一次I7.0信号到来。
如图7所示,S_CU型计数器为增计数器,PV端为预置值,CV_BCD端为计数值,当计数器输入端(CU)出现上升沿时,计数器开始计数,复位端(R)接收到上升沿时,计数器C1置零。计数器为零时,输出端(Q)置0;计数器不为0时,输出端置1。
图6 利用跳转指令
图7 利用计数器指令
首次循环,计数器预置值为0,M0.0始终设定为低电平输入,按I7.0按钮,计数器开始计数为1,输出Q40.0为1。
再次按I7.0,计数器计数为2(MW120值),M121.1位变为1,计数器复位端复位,计数器复位为0,从而Q40.0输出为0。
实现闭锁的方法很多,根据多年经验,本文从多种方法中总结出了6种不同类型的、比较典型的使用方法,其中方法一为最常用的方法,方法二利用下降沿触发实现闭锁,方法三通过上升沿触发实现闭锁,方法四利用置位复位指令实现闭锁,方法五使用跳转功能实现闭锁,方法六利用计数器功能实现闭锁,几种方法中,第一种是大家最常使用的方法,方法六是最简单的方法,通过一个计数器指令就可以实现。
以上方法均通过机床测试,希望能对同行使用其他PIC控制系统也有所帮助。
[1]廖常初.S7-300/400PLC应用技术[M].北京:机械工业出版社,2011.
[2]柴瑞娟,陈海霞.西门子PLC编程技术及工程应用[M].北京:机械工业出版社,2006.