LIM指令是一段范围值的比较,有趣的是,将比较临界点的指令参数低限值Low Limit和高限值High Limit置于数轴不同位置,会产生不同的比较范围。如图7-5所示,低限值Low Limit小于高限值High Limit,所确定的是范围之内。如图7-6所示,低限值Low Limit大于高限值High Limit,所确定的是范围之外。
图7-5 范围内的比较
LIM指令的前身应该是两条比较指令的串联,如图7-7所示的GEQ和LEQ指令,等同于图7-5所示的范围比较关系;如图7-8所示的GEQ和LEQ指令,等同于图7-6所示的范围比较关系。这种技巧性的范围比较关系的编程,遂转为LIM指令。这里我们又一次看到指令进化的实例。
图7-6 范围外的比较
图7-7 范围内的比较
图7-8 范围外的比较
有一个需求是,某个包装工艺中,以红、绿、蓝三种颜色的球来识别三种不同的包装过程,当红球弹出,光感传感器识别后送到控制器来的数据为1200~1500;当绿球弹出,光感传感器识别后送到控制器来的数据为800~1100;当蓝球弹出,光感传感器识别后送到控制器来的数据为300~600。根据不同的判断结果,将调用不同顺序器输出指令数组来控制包装过程。我们试着用LIM指令来识别范围,并作为判断条件。
分析3个范围的分布,如图7-9所示,这是一个范围内的判断。
解读如图7-10所示的梯级逻辑,用LIM指令识别了3个范围的数据,从而产生梯级条件。显然这3个梯级条件绝不会同时存在,每个梯级的输出指令的实施锁定了自身的操作并解除其他两种操作,不管其他两种操作当时处在何种状态,都予以解除。三者必居其一的互
图7-93 个范围的分布
(www.xing528.com)
图7-10 识别3个范围的梯级逻辑
锁关系,确保了只有一种操作方式存在,这是一种非常严密的模式选择方式,有经验的工程师通常会采用这样的梯级逻辑处理互锁关系,看似繁琐却极为可靠。
同时,还为每种操作的进入做了初始化的工作,将相应顺序器输出指令的指针清零。梯级条件之后配合ONS指令,确保了锁存解锁和清零的操作只会进行一次,凡是锁存解锁的操作,都无须多次操作,这是常规的配合关系。
前面的梯级锁定了操作,三种被相互锁定的操作,只有一个梯级条件是成立的,各自在条件满足时按其步骤进行,顺序步的进程则由Step_Plus来控制。顺序器输出的工作过程如图7-11所示,我们现在暂时不做深究,后面有专门的章节讨论。
图7-11 选择顺序器输出的梯级逻辑
下载到控制器运行,调试过程中你会发现,在数据范围判断过程中,还有数据空档部分,这些数据区域不会有新的控制结果产生,输出控制会残留在原来终止的状态,上一次的操作还在锁定状态,这些都不属于三种操作之一,应该做相应的处理,比如说复位。编写梯级逻辑如图7-12所示。
图7-12 不在操作范围内的比较结果
这三条LIM指令的用法有些不同,前面两条是对范围内的确认,即601~799和1101~1199;后面一条是对范围外的确认,即大于1501或小于299,这3个比较条件的任一个满足,都属于非正常状态,都要执行清除处理的操作。所执行的带屏蔽传送指令,仅仅是将顺序器输出的低8位清除为零。
综合以上的梯级逻辑编写和执行的梯级逻辑顺序,完整的过程如图7-13所示。请注意梯级排列的前后顺序,即执行的顺序,这是任何时候都要强调的,执行顺序和我们编程时所思考的顺序有时是不同的。
图7-13 范围判断和执行的完整的梯级逻辑
图7-13 范围判断和执行的完整的梯级逻辑(续)
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。