回复:流水线上的两个相同的工站,怎样的逻辑处理,能实现只加工一次

已锁定

zzzsunrise

  • 帖子

    493
  • 精华

    2
  • 被关注

    13

论坛等级:侠圣

注册时间:2022-05-24

钻石 钻石 如何晋级?

发布于 2024-09-20 10:03:03

5楼

展开查看
以下是引用苍穹8421在2024-09-20 08:57:14的发言 >4楼

我在想是不是可以弄一个先进先出的队列


已进工站1的,就给个1,表示已进站1


未进工站1的,就给个0,表示未进站1



当产品流至工站2前时,对这个进没进站的信息进行读取,如果读到0,就进站工位2;读到1,就不进站顺流下去。


现在动作思路应该是没啥问题,就是不知道:1、这个产品的信息该怎么进行保存;2、这个进不进站的状态怎么对应产品的信息对应保存。    







以下是引用zzzsunrise在2024-09-19 17:14:08的发言 >2楼:如果只通过PLC+读...

引用2楼详细内容:

如果只通过PLC+读产品信息的方式,我建议用数组+UDT来实现。

首先数据类型先定义产品信息、加工信息。


然后再建立一个大于缓存区最大工件数的数组(此处20示例)。


进入工位前,读取数组,根据产品信息判断加工信息,如果加工信息=0(未加工),就进入工位进行加工,加工完成后向数组的加工信息写入1(已由工位1加工)或2(已由工位2加工)。


在工位2增加数组数据处理的程序。

在进入工位2前如果已经加工就直接流入后续工艺;在工位2加工完成后也流入后续工艺。

如果后续工艺需要产品信息和加工信息,就把该工件的数据写入目标位置后再清除;

如果后续工艺不需要产品信息和加工信息,直接清除该工件对应的数组信息。


关于数组的处理建议:

使用SCL语言配合FOR循环可以很轻松的实现数组的增删查改,进而实现功能。

我觉得我的表述跟你的想法应当是一致的啊。

问题1:存储数据就放在数组中,数组长度大于缓冲区工件数量,工件流向后续工艺就清掉对应的数据用来保存新流入工件的数据。

问题2:对应关系,数组中每个元素都有产品信息、加工信息,你读取产品信息后就能通过比较对应读取到数组对应的下标n,然后再通过加工信息[n]这种数组访问方式就能轻松获取加工信息。


另外,先进先出的设想是好的,对于程序来说更好处理。如果能严格保证流水线先进先出自然是好事。如果不能严格保证,建议当成乱序写逻辑,使用比较指令来清除数组和找到空数组并写入数据。

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

谈天说地

共有14329条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。