咱也发一个年终贴,欢迎大家一起探讨。
很多朋友在使用LOGO!编程时,往往只是感觉好玩。确实,功能块图的编程语言为我们的编程提供方便的同时,也让我们体验到了拼插与组合的乐趣,如同玩积木一般。只要学过数电,掌握了门电路的用法,就能学好LOGO!这是这款控制器的一大特色。
但LOGO!作为PLC的一种,也遵循一般PLC的基本构架,它支持梯形图的编程方式,而且也是有扫描周期的。
PLC一般都是按照用户程序从左到右,从上到下,不断循环扫描的工作方式,每扫描完成一个循环的时间,我们称其为一个扫描周期。这种工作方式是在系统程序的控制下顺序扫描各输入点的状态,按用户程序进行运算处理,然后顺序向各输出点发出相应的控制信号。整个工作过程可分为输入采样、程序处理、输出刷新三个阶段。当然,这个扫描周期还包括自诊断及与外设的通讯等。
LOGO!的周期是由不同的位来实现的。例如:标志位(M、AM)、输出点(Q、AQ)等。这些位都标志着一个周期的结束,如果再从这些程序块之后联结其他功能块,那么,后面的这些功能块就属于下一个周期执行的程序了。
LOGO!每个功能的周期时间小于0.1mS,还是非常快的。另外,手册中也给出了测试程序。
例子程序1:

这是一个输出点递归的实例。
或许很多朋友对输出点递归这个概念不是太明白。其实,输出点递归这个概念就是程序在运行的时候调用自己的功能块输出点,这个也是一个与周期相关的问题。如图:如果复位信号从计数器输出取,则必须加M标志位,图中的信号是从Q点取的,就不用加。因为从计数器输出取复位,那么,计数与复位属于同一个周期,计数与复位同周期则出现错误,所以要经过M点或Q点,在下一个周期进行复位动作,虽然时间只有0.1mS,但避免了同时输出同时复位的问题。
例子程序2:

这个程序意在说明M点作为一个扫描周期的用法。图中,I1计数5次后,Q1输出为1,因为B003输出与B004为同周期输出,M1滞后B003一个执行周期,所以RS触发器B002在计数值到设定值后能够输出1,。
如果将M1换作其他功能块,或者去掉,都不能使B002输出,因为RS触发器是复位优先的。
例子程序3:

这是一个利用异或门的单触点开关程序。B002为异或功能块,如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。
如果按下按钮I1,在本周期内,B001上升沿有效,异或门管脚1为1,管脚2为0,Q1输出为1;Q1输出的下一个周期,异或门B002的管脚2为1,管脚1为0(上周期为1),所以Q1保持输出为1。因此,上升沿B001是必须的。
如果再按一下按钮I1,在本周期内,B001上升沿有效,异或门管脚1为1,管脚2为1(本周期内),Q1输出为0;下一个周期,异或门B002的管脚2为0,管脚1为0(上周期为1),所以Q1保持输出为0。
以上就是我在学习和使用LOGO!过程中的一点认识,欢迎大家批评指正。