堆垛机调度新思路构想(上位4步调度)

daizhicun
daizhicun 这家伙很懒,还没有设置简介

0 人点赞了该文章 · 917 浏览

先谈谈入库站台的条件:
最基本的条件:
   1. 入库站台有跟踪的条码信息;
很多系统调度时候,就判断有条码就调度;
这样做,风险还是有的;毕竟条码是“逻辑”信息,正常时候不会错误,
但是在人工干预的情况下,比如在触摸屏强制写入条码,就会判断有误;
所以为了严谨,“是否有货” 这个物理信号不能少,因为物理信号的优点是:真实,人工无法修改状态;
所以第二个关键条件是:
  2.  电控提供的入口位置的光电信号,或者是顶升台升起的信号;

以上两个条件,基本可以了,但是如果要做的更“合理”,还缺一个信号,要判断当前站台是否有异常,比如输送机运行超时异常,或者托盘倾斜(如果多组光电可能会捕获这个异常),
或者有托盘下方的墩子检测装置等,都有可能有异常;
所以最好加上最后入库站台是否有异常的判断;

所以第3个关键条件是:
   3.入库站台是否有异常;
当然,如何电控系统做的比较业余的话,光电信号不是很稳定,托盘跟踪信号也可能提前给或者不准;
对于这种情况,上位调度的时候,最好连续采样光电信号三次(比如1秒一次),三次都一样,才认为有效;
就像你按电梯的时候,做的好的电梯,你迅速的按按钮在放掉,它会以为是干扰信号,不会生效的( 这个效果,很多电梯都测试过,最后我发现在上海南京西路的恒隆广场的电梯遇到这个注重体验的功能)
所以第4个可选条件:
4.  判断 有货信号 不是“闪烁”的,确定该信号稳定在三次采样以上;
为什么要纠结于这些小的细节,堆垛机的异常概率总会防不胜防, 除了堆垛机的设计者,其他没有人能够真正完全掌控堆垛机的内部控制原理;
对于上位调度,只能谨小慎微,不断加强“防范”意识,才能尽可能少的出现异常; 因为堆垛机的异常处理很麻烦,不同厂家做法又不一样;
很多需要手工干预修复,手工修复在不熟悉的人手上容易造成错上加错,把问题搞复杂,最终怀疑你的系统的稳定性,,所以作为设计者,只能尽浑身解数,尽可能的不出现异常;

因为上面这个问题,我忽然感觉,堆垛机分4步调度,更灵活,更大幅度的降低异常的发生;
目前堆垛机有两种控制方式:
1.全循环,一次性上位给from,to
  2.半循环,先给from取货,堆垛机取到货后,再给to放货;

我其实想一个更极端的方式,把半循环再拆分,做成4分控制:

比如有一个从 入库站台 到 出库站台  的任务:

在调度之前,上位肯定会判断 入库站台有货  ,出库站台无货; 但是一个完整的动作可能要持续半分钟到1分钟,这么“久”的时间内,任何情况都可能发生,比如,有人把出库站台打手动了,
有人把入库站台的料箱(托盘)拿走了,或碰了一个入库站台的料箱,导致报警了; 如果任务“一口气”发过去了,堆垛机就像脱了缰绳的野马,中途出问题,只能通过硬件报警了,
做的不好的堆垛机厂家,或者机械光电有偏差的,甚至把货叉或托盘撞坏;


我的调度思路是:
   1.上位通知堆垛机到入库站台的位置(上位事先判断站台有货)
   2. 堆垛机到了入库站台,这时候,上位在判断一次,入库站台东西到底还在不在,万一堆垛机来入库站台的半路上,托盘被别人弄走了,或者突然输送机手动了,
        所以,这时如果正常,上位就通知堆垛机取货;如果发现入库站台异常,上位就不通知堆垛机后面动作,堆垛机就停在这里,等待其他任务;
  3. 堆垛机取货完成,上位在判断对应的出库站台是否可用,如果可用,就通知去出库站台的位置;如果不可用,也不能让堆垛机傻停在那里,临时找个货位暂时入库,等出库站台什么时候可用了再出来;
  4. 堆垛机到了出库站台,但是放不放货,要等上位通知,上位这时候仍然要在判断一次出库站台状态,如果满足,就通知堆垛机放货,如果不满足,还是老方法,让堆垛机去货架暂存,等出库站台可用再出来;

对于穿梭车,也可以用类似的方法;

这样就可以最大范围的避免异常,把堆垛机的一个动作,拆解成4个: 上位通知SRM到达取货位置->上位通知SRM取货(判断取货站台可用)->上位通知SRM去放货位置(判断放货位置可用)->上位通知SRM放货(判断放货位置可用);

这样做对空出 重入 这种逻辑异常,上位就更方便的处理了;
比如重入:
       SRM在第3步到达目标货架前的时候,自身光电发现有货冲突,反馈有货信给上位;上位就不会让其放货,
       而是告诉它再去其他货位,它接着过去,到了那里,如果发现还是有货,上位还会告诉它去另一个位置,知道找到一个正常的货位,上位才会通知堆垛机放货;
比如空出:
      SRM在第1步到达取货货位的时候,自身光电发现无货,反馈给上位,上位就不会给它取货指令;它就停在那边等待上位给其他任务;
当然,空出重入可以报警,报警可以做在上位,这种异常就不认为是堆垛机自身的了;


当然这也是想象,到底有没有堆垛机这样调度,也没有做过,除非哪天堆垛机下位的调度自己去设计,可以考虑这种做法,
不知道这样下位是不是变得“极简”了;极简的模式下,堆垛机的可靠性是不是又会提高一个小小的数量级;


肯定有人说,这样频繁交互肯定会影响效率,而且如果是上位直接扫描PLC内部点的,比如一秒一次,那么一个动作,最多会浪费4秒;

其实,通讯快点,没关系的;我一般都扫描在0.2秒一次,一直挺稳定的;
不过最好做分段,就是关键的点扫描快一些;其他非核心点慢一些;
另外,西门子plc的协议不对外开放,要通过OPC, prodave,libnodave等第三方的资源中转,肯定比直接通讯差一些;
不过我相信西门子自身协议不久就会被我破解,这样可以绕过三方资源的性能损失;

发布于 2020-10-13 11:28

免责声明:

本文由 daizhicun 原创发布于 大董知识库 ,著作权归作者所有。

登录一下,更多精彩内容等你发现,贡献精彩回答,参与评论互动

登录! 还没有账号?去注册

暂无评论

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