在工业现场经常需要对产品的不良品进行检测,当检测到不良产品时需要在特定的工位对产品剔除。在剔除产品时对产品的及时追踪就非常重要。比如:单个产品剔除时就比较简单、当连续几个产品都是不良品时,那么我们同时需要追踪好几个产品。我们可以用一个移位指令即可轻松解决!
如图1所示:在传送带上有“0”“1”“2”“3”“4”“5”总共6个工位。机械手把产品放在第“0”个工位上,通过光电开关(或者视觉)检测。当机械手每放入一个产品,传送带移动一个工位。当传送带每移动一个工位凸轮转一圈(I0.1检测到一个信号)。当检测到不良品时,到达第“4”个工位气缸推出。当不良品(次品)掉入箱体里,I0.2将检测到一个信号从而气缸可以缩回。
▲ 图1
▲ 图2
如图2,SHL_B为左移位指令,IN指的是需要移位的操作数,而N则代表移位的个数。程序中VB0的初始值为2进制的00000001,左移一位后高位丢失,整体左移一位,低位补0,则变成2进制的00000010。
下面我们来分析剔除不良品程序,如图3:
▲ 图3
当第N个产品为不良品,不良品开关I0.0接通一次,VB0等于二进制00000001,传送带移动一个工位,I0.1接通一次,VB0为00000010。
当移动了4次后,VB0中的V0.3位为1,而产品刚好到达第“4”号工位,Q0.0为1,气缸推出。
当废品检测开关I0.2检测到信号后复位气缸及V0.3标志。
当第N个产品和第N+1个产品都为不良品时。当第N个产品为不良品,不良品开关I0.0接通一次,VB0等于二进制00000001,传送带移动一个工位,I0.1接通一次,VB0为00000010。第N+1个产品也为不良品I0.0再接通一次,VB0等于二进制00000011。
当第N个产品移动了4次后,VB0中的V0.3位为1,而产品刚好到达第“4”号工位,Q0.0为1,气缸推出。当第N+1个产品移动了4次后,VB0中的V0.3位为1,而产品刚好到达第“4”号工位,Q0.0为1,气缸推出。