瓷砖分拣系统算法求教

图中是8工位瓷砖分拣系统示意图:
   蓝色是光电开关,瓷砖从左方入料口进入分拣系统,皮带输送,皮带在分拣出砖的时候不停止;
   总共有八种类别的瓷砖需要分类,当瓷砖经过左边第一个光电的时候,操作员通过操作屏将此瓷砖的类别输入PLC系统,比如属于第一类就输入1,以此类推。8个出砖工位分别对应8个瓷砖类别,各有一个光电确定瓷砖到了该工位,当属于这一工位类别时利用气缸将瓷砖推入出瓷砖机构进行出砖,反之瓷砖继续在瓷砖上输送,如果出砖机构还没结束本次出砖动作的时候,属于本类的瓷砖已经到达光电位置,则放弃此瓷砖,让皮带将其输送到系统做右方,即放弃分拣此瓷砖。同时,用户可以将几个工位设置成一个种类。
   我想了一下可以建立一个表格来管理瓷砖的种类,但是由于瓷砖可能不是连续进入的,而且同一种类的瓷砖有时会来很多片,这个从算法上怎么处理好一点。

问题补充:
图片

图片说明:

瓷砖分拣系统算法求教   

最佳答案

在第一个开关处操作员输入类别号,在1到8之间,建一个表,把类别号送入表中,类别号送入表中前进行处理,1变为00000001,2为00000010,3为00000100,依次类推。表格数据先入先出。
 
 当第一个开光触发时,从表头取值赋给vw0,如果v1.0为1,则出砖口1动作,然后vw0右移一位赋给vw2。
 当第二个开光触发时,若v3.0为1,则出砖口2动作,然后vw2右移一位赋给vw4。
 当第三个开光触发时,若v5.0为1,则出砖口3动作,然后vw4右移一位赋给vw6。
 后面以此类推。
 
 如果砖块未能出去,因为它代表的数据已经右移为0,所以即便传递后面也不会再触发任何一个出砖口。


程序如下,拷贝到一个文本文件里可以直接导入到编程软件里。
ORGANIZATION_BLOCK 主程序:OB1
TITLE=I2.0为类别检定电眼;I0.0-I0.7为1到8号砖块检测电眼,I1.0-I1.7为1到8号出砖机构检测电眼,为1代表机构正在出砖。
// vw200为表头,表长度在初始化定义时可根据工艺要求设定一个合适的表长,可以足够存储第一个类别识别电眼和1号出砖电眼之间的砖块数。
// vb100为上位机给定的类别号,1-8之间。
// vb1-vb8存放当前类别号。
BEGIN
Network 1 
// 初始化表,定义表长
LD     SM0.1
MOVW   6, VW200
AENO
FILL   0, VW202, 7
Network 2 
LD     I2.0
EU
DECB   VB100
Network 3 
// 把vb100中的1-8的类别号转变为00000001、00000010......类似的编码
LD     I2.0
EU
MOVB   1, VB101
AENO
SLB    VB101, VB100
AENO
BTI    VB101, VW102
Network 4 
// 编码填入表中
LD     I2.0
EU
ATT    VW102, VW200
Network 5 
// 一号出砖机构砖块到达,表中取类别编号
LD     I0.0
EU
FIFO   VW200, VW104
AENO
MOVB   VB105, VB1
Network 6 
// 若为1号砖,且出砖机构未运动,输出
LD     V1.0
AN     I1.0
S      Q0.0, 1
Network 7 
LD     I0.0
EU
SRB    VB1, 1
Network 8 
// 输出延时一段时间后自动复位,延时时间根据工艺调节。
LD     Q0.0
TON    T37, 50
Network 9 
LD     T37
R      Q0.0, 1
Network 10 
// 2号出砖
LD     I0.1
EU
MOVB   VB1, VB2
Network 11 
LD     V2.0
AN     I1.1
S      Q0.1, 1
Network 12 
LD     I0.1
EU
SRB    VB2, 1
Network 13 
LD     Q0.1
TON    T38, 50
Network 14 
LD     T38
R      Q0.1, 1
Network 15 
// 3到8号程序类似于2号。
END_ORGANIZATION_BLOCK
SUBROUTINE_BLOCK SBR_0:SBR0

提问者对于答案的评价:
算法不错

专家置评

可参考“空气微凉 - 资深学长 ”的思路。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc299370.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月31日 下午2:24
下一篇 2020年10月31日 下午2:24

相关推荐