西门子模块|授权代理|一级代理商
PLC程序是按一定的PLC扫描周期循环往复地的执行程序代码.在每一个PLC扫描周期内,先读入输入内的信号状态,然后执行用户程序,最后刷新输出信号状态.用户程序的执行是按照先后顺序自上往下依次执行的.图2程序中正是充分利用了PLC程序的程序的执行特点.现在分析它的工作过程.按一下按钮,使X0变为"1",在第一个PLC扫描周期内,M0变为"1",M1变为"1".M1等于"1"会使M0变为"0",但M0的状态变化要到下一个PLC扫描周期才会执行,可见M0是宽度为1个PLC扫描周期的脉冲信号.因为M0等于"1".这样会使原来状态为"0"的Y0变为"1"从第二个PLC扫描周期起,不论X0变为"0"或保持为"1",M0都变为"0"并稳定在"0"上,这样Y0通过M0常闭点与Y0常开点串联的支路保持为"1"状态.再按一下按钮,M0又产生宽度为1个PLC扫描周期的脉冲信号,这个脉冲信号使原来状态为"1"的Y0变为'0"并稳定在"0"上.如此每次按一下按钮,Y0就在"0"和"1"之间切换一次,形成双稳态信号. 2.3借助于算术运算指令来实现
数字电路中,如果把输出的"非"端反馈到D触发的"D"输入端.则每来一个时钟冲,D触发器的状态就翻转一次.图3所示的程序借鉴了数字电路中的D触发器的工作原理,按钮X0每按下一次,就相当于给触发器CP端输入一个触发脉冲.相加所得和的位状态,就翻转一次,如果Y0取低位,就可得到周期性状态,在“0"、“1"之间变化的双稳态信号。 为了避免加法的计算结果溢出,用M0和M3使期复位,就又重新开始累加。 3.结束语 文章开始提到的启动/停止,前进/后退等两种状态,也可以选用具有保持功能的三位选择开关,这是一种硬件实现方案.也可以选用本文所述的软件实现方案.殊途同归.但通过软件的方式,却节省PLC输入点的开销。如果PLC的输入非常紧张,这是一种行之有效的方法,但若是输入点绰绰有余,这样做就有画蛇添足之嫌了。软件方案和硬件方案哪一是最佳的,那就要看实际情况而定了.如果硬件很贵,那就用软件人来实现这一功能.如果硬件很便宜.那何不充分发挥硬件的功能.PLC输入点的问题正是如此.适合才是最佳的.
|