BCR 的合理运用和兜圈线的作业的合理调度的改进策略

daizhicun
daizhicun This guy is lazy,Introduction has not been set

0 People liked this article · 782 views

--- 颠覆传统的使用策略

一、BCR 的合理运用:

1.1 传统概念,BCR 的常见作用有 3 个:

 1.识别条码(或校正 PLC 跟踪的条码) 

 2.分配下一个去向; 

 3.任务完成确认;

     第一点是 BCR 的物理作用,这个是关键的; 第二第三点是 BCR 的逻辑作用; 现在我最大的感受是:BCR 的最大作用是其物理作用; 逻辑作用,未必全部需要用 BCR 实现。 BCR 实现有以下不好的地方: BCR 故障时,比如 BCR 自身问题,或者网线接触不良,网络不通等,BCR 的通讯信号不会上传给 WCS 系统;或者是 条码读取不到,反馈 noread; 

    我对 BCR 的应用策略 

1.一个动线的完整运作,往往会涉及多个 BCR,如果一个 BCR 没有做它该做的事情,后面的 BCR 会判断前面的作业有没有完成,如果没完成,就会把前面 BCR 的逻辑运算再做一遍;

2. 在 BCR 紧挨着的后面一段输送机上,通过 PLC 对托盘号的跟踪变更,判断前面的 BCR 的逻辑 运算知否执行,如果没有执行,就再触发一下前面 BCR 该做的逻辑运算;对于这个情况,我 后来突然想到,为什么不直接在这个 BCR 之后的输送机上做逻辑运算呢;这样即使前面的 BCR 因为信号没有上传,我们也能触发逻辑运算; 

3. 有的时候,某个 BCR 是最后一个环节,后面也没有输送机了,这就通过所在的输送机上的托 盘离开事件(即托盘号从有到无)触发;因为用 BCR 触发风险很大,主要是网络不好的时候,BCR 条码读取条码经常不会上传到 WCS;但是托盘离开输送机事件应该是百分之百能感应到的, 触发 WCS 和 PLC 通讯是相对稳定的,而且即使不稳定,WCS-PLC 是不停交互数据的,一次不 行还有下次,总不会漏掉通讯数据的; 但是 BCR 触发没有握手机制,只有一次机会,如果触 发没有上传就会拉倒; 

4. 由于条码磨损,BCR 安装位置角度不是最佳位置(这个是关键)等原因,BCR 读取不到条码, 反馈 noread 的概率不是一般的高;在这种“艰苦”的条件下,我们只能从软件上多动脑筋, 如果有 PLC 跟踪的地方就好办,因为这里的 BCR 本来就是启到一个校正条码的作用,换句话 说,这里没有 BCR 也无所谓; 所以这里,如果 BCR 反馈正确条码,那么就用该条码触发逻辑 运算,如果 BCR 反馈 noread,就用 PLC 跟踪的条码判断;这就是“尽信 BCR,不如无 BCR”; 

5. BCR 的逻辑运算的触发位置,其实往往是不佳的,我们常常用 BCR 来触发入库货位的分配, 如今看来,我觉得是一个误区; 特别是一段长长的输送线,只有一个 BCR,如果只是用 BCR 触发入库货位的分配,一个时机太早,就像刻舟求剑,等托盘到那个巷道口的时候,可能堆 垛机不可用,或者正在忙碌,怎么办?要么等,要么逗一圈在回来;第二,分配货位是个“团 体行为”我现在的策略是多点触发,“全民皆兵”,类似公司提出的“全民营业”;入库分配的 事情,是所有关键点的输送线触发信号和 BCR 共同完成的;就像 100 多年前甲午战争,北洋 水师就李鸿章一个人殚精竭虑,而日本是全民都在搞海军;一个人的力量和团体是没法抗衡 的;

二.逗圈线的合理调度的实现改进:

 上面这幅图,体现了两个思路:

 1. 协同多点作战;以前业务逻辑控制主要靠 BCR 触发,这样做有 2 个缺点:

 1). 很多时候,我们需要多个触发点,这样就需要多个 BCR,但是实际上,就像我上面说的, BCR 的物理作用只是识别托盘号而已;作为我们的逻辑运算,未必只能在 BCR 里做;这个 定向思维可以调整; 

2). BCR 的信号往往给的太提前,后面的状况谁也不能预知,所以必须动态调整,就像导弹一 样,必须能在所有关键点上进行导航;而不是一旦有问题,就必须兜一个大圈后,再重复 读 BCR 重分货位;线体忙的时候,兜圈太频繁了,经常一个托盘兜上 3,4 个圈,因为堆垛 机同时做入出库,当某个托盘快进入库口的时候,堆垛机在忙碌的概率非常高,这时候, 你让该托盘重新逗一圈,太奢侈了,应该让它去下一个堆垛机再去尝试入库;而且从公平 角度来说,也不合理;就比如,我们到龙之梦楼下老娘舅吃饭,排队轮到你的时候,突然 机器出故障或者换班了,这时候,我们应该有权利插队到隔壁的 POS 机最前面去购买,而 不是重头排到最后; 

所以协同作战后,BCR,入库口前的输送机时,入库站台,这 3 个人,各自做自己最合理的事情,

 1). BCR 只是告诉托盘去哪个堆垛机,不说最终的货位,为什么这样,因为 BCR 说的只是一个计划,托盘 未必按照它的路线走,所以没必要把最终货位定下来,如果定下来,而托盘走到其他堆垛机,还要把 这个目标货位清除,很是麻烦,也没必要;

 2). 托盘进入入库口前的输送机站台时,判断当前堆垛机忙碌或异常否,如果异常去下一个堆垛机;

3). 托盘进入入库站台时,这时候分配最终货位,同时提醒堆垛机来取; 这样分工合理,整个线路做了最合理的安排;


 2. 不要刻舟求剑

     以前托盘一过 BCR 就分配货位,甚至任务一生成货位; 这样一来程序复杂,二来异常难以处理;

     托盘到什么位置,就只最下一步事情,不要把下下步的事情也做了;系统的后续状态本来 就是未知的,我们没有必要让系统做“先知”,把所有事情提前安排好; 

    这两天,我把这些思路全部调整了,感觉很好,具体效果,我想应该会有很大改观; 

主要体现在:

1)一些 BCR 即使不触发信号(或者说干脆 BCR 彻底坏了),也不会影响业务和数据;

2).入库再也不会频繁兜圈了;

3)异常也更灵活的处理了;

     其实这次思路的改变,是在做尚德项目的时候,就有了这样的多点控制的想法雏形,但是因 为WCS不是自己掌控,所以也不能要求别人做的太多;而且以前只能对电控修改PC通讯部分, 现在 PLC 的两个部分的通讯,对 WCS 全部开放,也增加了 WCS 的“唯所欲为”能力;

     尚德是一个大的兜圈线,比如分配托盘进入 3 号堆垛机,那么当托盘到达 3 号堆垛机前的 时候,万一堆垛机出现故障,就会死等,这样一来,后面的(4,5….15)那么多堆垛机对应的 线体都会死等;等的海枯石烂,必须让 3 号机恢复才能让整个线体畅通;而且真的 3 号机一 时半会好不了,就打手动,很是麻烦;

     最后,一句话总结: 事件未必只是用 BCR 触发; 一个完整的运作路线,需要多个环节触发导航;这样在整个立体库的 WMS 系统中,就做的非常行云流水和畅通;


具体图片见附件bcr_control.pdf


Published on 2020-10-12 16:02

Disclaimers:

This document is written by daizhicun Original published on 大董知识库 ,The copyright belongs to the author。

Log in,More exciting content waiting for you to find,Contribute wonderful answers,Participate in comment interaction

go Sign in! No accountgoregister

All Rights Reserved Powered BY WeCenter V4.1.0 © 2023 京ICP备16065701号