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

已锁定

苍穹8421

  • 帖子

    183
  • 精华

    9
  • 被关注

    6

论坛等级:侠士

注册时间:2020-08-03

普通 普通 如何晋级?

发布于 2024-10-05 09:38:10

10楼

展开查看
以下是引用zzzsunrise在2024-09-20 10:03:03的发言 >5楼

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

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

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


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

以下是引用苍穹8421在2024-09-20 08:57:14的发言 >4楼:我在想是不是可以弄...

引用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循环可以很轻松的实现数组的增删查改,进而实现功能。

写了个for循环的程序


数组都显示了相同的信息,应该是我对for循环的使用理解不够???



逻辑意思是懂了,但现在,不明白怎么去写逻辑实现这个功能



我自己的认知来看,不会实现的点有:

       1、怎么去写程序去 保证数组中存储的加工信息是唯一的;

       2、怎么去写程序去 保证流过2个工位的对应数组中的信息被清除。


当然,可能还有其它没有意识到的技术问题,我暂时还没发觉到。

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

谈天说地

共有13686条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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