瓷砖分拣系统算法求教

图中是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日
下一篇 2020年10月31日

相关推荐

  • 多S7-200配置

    我有一个工程,距离机房200M处需要采集5个模拟量和几个开关量,想通过200做通信到机房。机房中有30个点的开关量和20个模拟量采集,但没有的调节输出,仅是逻辑控制,所以也想采用2…

    SIMATIC S7-200 2020年11月5日
  • crc问题,请教高手

    modbus RTU中,需要crc进行校验,要求低字节在前,高字节在后。书上说,如数据帧为0101023803EA3D,crc码为3DEA。(不明白为什么,我算的是16#…

    SIMATIC S7-200 2021年7月4日
  • 子程序调用的问题

    今天分析一个200的程序,想查询一个子程序在哪里调用了,没有找到方法,不想整个程序一行一行的看。有没有办法啊,来查询子程序在那个位置调用了。在ST7和博图中这个功能很简单。 最佳答…

    2021年7月5日
  • 请教S7-200快捷键

    请教大家一下 S7-200里 向左连线,向右连线,向上连线,向下连线有没有快捷键啊 ?最好能有S7-200快捷键说明文档 呵呵! 最佳答案 …

    SIMATIC S7-200 2020年10月31日
  • PID 向导问题请教

    如图我标记的蓝色圈内,  这个60.0  代表的是 向导设置的给定值范围的 最大值吗(比如0-100% &nb…

    2021年7月5日
  • step7能在windows7系统上安装吗

    刚买了一台电脑不能安装xp-sp2系统,只能安装xp-sp3系统,无法安装和使用step7编程软件,请各位大侠帮助想想办法。 最佳答案 xp-sp3系统可以安装STEP7,这个是没…

    SIMATIC S7-200 2020年11月1日
  • 请教组态王6.55与西门子S7-200的连接问题

    我电脑通过USB转PPI口与S7-200连接,程序可以读写,但是在组态王里面做画面按钮,PLC程序没有反应。 图片说明:       &nb…

    2017年11月1日
  • PC与PLC通讯可以上载不能下载

    S7-200可以上载什么程序块、数据块和系统块多很正常,但是下载时就这能下载数据块和系统块,而程序块怎么也下载不了。这是什么原因请高手指点。而且我的编程软件是STEP 7…

    SIMATIC S7-200 2020年11月5日
  • 交流继电器

    是这样的,用的是226CN,继电器输出型。下载、现在用一个Q点去驱动4个24VAC继电器,昨天提的的问题,经过大家的指教感觉可行,现在想问的是24VAC继电器应该没有冲击电流(或者…

    SIMATIC S7-200 2021年7月4日
  • 一台上位机,两台s7200,两台威纶通触摸屏,如何连接通讯

    一台上位机,两台200的plc,还有两台维纶通的触摸屏,现在的要求是连好通讯线后,上位机要能对两台PLC的数据能读写,且能上下载程序,任一台触摸屏能读写任一台PLC的数据,不知要如…

    SIMATIC S7-200 2020年10月31日