国产堆垛机建议

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

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

操控过不同型号的堆垛机,如同交过不同类型的女朋友;粗略了解了一些各种的习性,略做总结如下:

1.按国家分: 国产的,进口的(细分:德系,日系)
2.按控制方式分:PLC的(细分:西门子,三菱),单片机的
3.按定位方式分: 认址片定位,激光定位,条码带定位,混合定位(水平激光+垂直条码带最为常见);
4.按任务控制方式分:from,to 一步控制; from,to 分两步控制;
5.按通讯协议方式分: PLC内部通讯的,自定义协议Socket通讯的;
6.按有无断电记忆分;
7.按有无初始化分;


下面从这6个角度的区分,谈谈自己的一些浅见:

1.按国家分: 国产的,进口的(细分:德系,日系)
   国产不如进口的地方:
         1.运行的流畅性不够,启动停止都不够流畅,进口的这块相对好些;
            一次无意中看见某款进口料箱堆垛机运行的时候,像风一样飞驰,启动停止也很灵敏,感觉确实很高大上;
            而且速度控制上,应该也是有讲究的,堆垛机根据路程的远近,自己控制速度,如果比较远,会明显分低速和高速阶段;
         2.速度的智能性控制更好   
            某些进口堆垛机会根据繁忙情况来控制速度,如果不忙,就走普通速度,如果很忙,就走高速;
            判断的原则大概是:是否有连续作业,比如堆垛机刚完成一个 任务,5秒内又收到新任务,可能这时候,它就认为是繁忙状态,自动走高速;
            为什么不一直走高速,可能高速费电一下,如果不是很忙,尽量走低速;而且低速故障率要更小一些;
           当然,这个速度的控制,很多进口堆垛机也开放给上位调度系统(这正是我想要的,上位才真正清楚该堆垛机还有多少待执行的任务);
           这个参数一般有3个值 :  0-自动  1-高速 2-低速 ;其中 自动 表示堆垛机自己判断; 高速,低速 是由上位系统提供;
           这个功能未必真的多好,不过确实反应了老外的工匠精神,很细腻;

2.按控制方式分:PLC的(细分:西门子,三菱),单片机的
            市场上国产的和欧系的以西门子PLC为主;日系以三菱PLC为主;  部分国外堆垛机以单片机来控制;
            个人感觉还时以plc控制,成本更低; 因为用单片机控制,考虑的问题太多;技术不过硬,很难做好;
            当然如果单片机控制,肯定不是以前的MCS-51,至少也是ARM ,DSP之类,也可能是ARM+DSP混合控制;
            不过单片机开发,未必就想象的那么难,现在嵌入式也是带操作系统的,程序可都是高级语言,所以开发起来也未必非常困难,估计难点是外围电路设计;
           个人认为,那些用单片机开发的,可能是更多的为了考虑技术保密性,真正成本上节约不了多少;


            至于两个经典的PLC, 西门子和三菱,用哪个更好,我不专业,但是跟电气工程师聊过一些;
              西门子的优点:1.对于复杂一些的逻辑,LAD梯行图相对单薄,一般都辅助STL指令表, 很多老资格的电气工程师甚至完全使用STL;
                                         STL类似汇编,从我的角度来看,感觉太低级,复杂的逻辑用汇编实现,研发效率可能比较低下;
                                         我看老外开发堆垛机,很多地方用到了SCL, 语法和高级语言的PASCAL基本完全一样;
                                         而且SCL可以在多种不同的PLC上通用,比如ABB,西门子可以共用相同的程序,这个还是挺好的,感觉以后SCL应该能普及;
                                      2.背景块的使用,而且可以嵌套,这优点类似高级语言中的类的封装的感觉,不过控制不好,背景块也会让程序僵化不便扩展;
                 三菱的优点: 1.变址非常方便,变址是一个非常普遍的运作环节,据说西门子这块很麻烦;总之,三菱比西门子跟轻量级,如果不是太复杂的,往往三菱的开发周期更短;


  
3.按定位方式分: 认址片定位,激光定位,条码带定位,混合定位(水平激光+垂直条码带最为常见);
        看过这么多堆垛机,感觉水平激光+垂直条码带 是看到的最多的控制方式;
        据说,条码带精度最高,可达到1毫米的误差范围,激光在3毫米左右;

        认址片定位,有个麻烦的地方,就是出故障恢复的时候,常常要原点复位,这是让我感觉有点不太能接受的地方,
          这地方有两个弊病:
        1.客户很忙的现场,原点复位很费时间;看着让人干着急;现在是体验为王的时代;好的产品体验很重要;
        2.重新定位的时候,之前上位下发的指令很可能就自动清除,需要上位重新给新指令,增加了上位的复杂度;
      
       我看过一款国外的堆垛机,虽然也是认址片地位,但是它尽可能的做到:不做原点复位;
        判断的原则是:如果在离线的情况下,堆垛机被插上手动盒控制过了,那么所有信息清除,原点复位重做;
        否则即便是离线操作情况下,堆垛机时刻记忆着自己的位置和状态,一旦打成在线,马上就能继续执行;
        这一点也反映了老外对细节体验的把控;
           
         当然,我还见过一个跟高大上的定位控制方式,就是:激光定位+认址片;
         具体是这样的:水平方向上,大的定位是:激光定位; 不过  堆垛机下方有个光电感应装置,每列货架最下面的横梁上有个小圆点反光板,
                                  每次堆垛机到位停止的时候,要定位到横梁上的这个小光点,这样就双保险了,而且这个圆点反光板貌似成本也不高;
                                  当然这个小圆点定位,本质来说,是一个精度的定位,本质上不是认址片的计数定位;
                     


4.按任务控制方式分:from,to 一步控制; from,to 分两步控制;
        两种方式都用过,主流是前者,部分德系的用后面一种方式;
        其实,对于上位,怎么控制都无所谓,不过如果下位,把from,to 分两步控制,可能程序会更简化,稳定性更强;
        当然,为什么出现后者from,to两步控制的方式,最主要的原因是:双叉,双伸的堆垛机,取货,放货,是随机的;
        可能 取货1->取货2->放货1->放货2 ;也可能是 取货1->取货2->放货2->放货1 ;就看堆垛机取放货在不在同一侧;
        而且取货放货的位置也是可能不一样的,所以这种情况,一口气给堆垛机发完成的from,to就不太现实了;
        就我使用下来,感觉分段控制,异常处理起来更灵活一些;


5.按通讯协议方式分:PLC内部通讯的,自定义协议Socket通讯的;
          前者偏国内,后者偏国外;
        个人喜欢直接访问plc内部点交互,缺点是,堆垛机的内部数据完全原始的开放给上位,如果上位乱读乱写,可能会下位搞乱;
          自定义协议,是下位自己做了封装,再和上位交互;这样上位就只能通过既定的格式访问和交互,这样临时扩展功能就不太方便;
         前者类似于做外科手术,直接看到内部;后者是给了既定通道,不能直接看到内部;
         理论上,后者严谨,但对下位的要求比较高,前者开发成本低,但是有控制被上位搞乱的风险;
  
         不管用何种控制方式,协议要尽量简化,国外的协议相对严谨些;国内的就五花八门,
         如工作模式,工作状态,工作阶段,操作模式;搞定太复杂;从我的角度都想简化;

(缺图)

6.按有无断电记忆分;
    从上位的角度看,当然希望断电记忆的好,这样只要指令发给下位,就不用管了,只要等下位的完成报告了;
         如果下位不记忆,那就要任务再送,或任务取消,有些地方需要人工干预,确实给上位控制带来了麻烦;
         每个厂家都不一样,国内外都有记忆和不记忆两种;
         这个仁者见仁,不过话又说回来,为什么要断电呢? 所以在设计的时候,对付大部分异常,离线操作就行了,
      不到万不得已,不要轻易断电清除数据;

7.按有无初始化分;

  早期的堆垛机,一启动的时候,要和上位做很多次握手;比如:
                下位说:  我要启动了,你允许吗?
上位说:  行吧,那你启动吧。
               下位说:  那我现在要原点复位了,你同意吗?
上位说:  行吧,那你复位吧。               
               下位说 :  我原点复位好了,请问你有上次未做完的任务吗?
上位说:   没有,你继续吧              

               下位说 :  那我就通知你 我现在要变成作状态了,
上位说:   好吧,我知道了...


            婆婆妈妈,烦死了; 以前做过一个堆垛机控制,启动的时候,要交互9次;搞得我现在还晕晕乎乎,好在现在的堆垛机很少这样做了;
           貌似严谨,但是浪费精力,增加无谓的复杂度;就像现在有些国产堆垛机,要用一个点,来做CRC或和校验;
            现在不是串口通讯时代;而且是直接内部点循环访问的,这些貌似严谨的地方,其实都有点画蛇添足;




说了这么多,对于国产堆垛机的研发,有什么建议呢?

简单想法:
       1.单任务控制,不需要一口气接受上位多条任务,然后依次执行,这是个很糟糕的设计,上位肯定是一条条控制的;
         如果取货 放货分开做,更简单稳定,就可以让上位分开调度;
     2. 触摸屏做的更人性化,比如:任务号 可以 直接显示成 托盘号,是不是更让操作员明白;
     3.通讯协议的简化,很多人设计的都有重复或啰嗦的地方;
     4.减少掉电处理异常的概率,这样就和上位断开通讯,要让上位做通讯断开自动重连,而且任务信息可能也会丢失,增加上位的复杂度;
      
  其他方便,就是我不熟悉的地方,比如:
     1.货叉的选型;
     2.堆垛机自学习的控制;

 具体化的建议:                              

1.简化通讯协议        
   1.1.取消启动初始化,简化双方对接;                               
   1.2.简化握手,建议取消两次握手,状态,from,to 保留到任务完成再清除,让协议做静态的所见所得,而不用动态交互清除;                               
   1.3.取消堆垛机多任务处理,确保在空闲时,堆垛机才可以接受上位任务;简化控制;                               
   1.4.可以考虑简化异常代码,把原始异常点开放给上位,而不是电控加工成4位编号后给,这样简化了双方的翻译过程(追求最原始的简化);而且堆垛机可能有多个异常同时生成,                               
   1.5.WCS,PC数据块未必要独立,可以合在一起;简化控制;可以A方生成,B方清除;简化了各种双方数据点的互相拷贝;                               
   1.6.可以考虑去掉模式信号,上位提供from,to即可;可以不用提供到底是入,出,站台间移动,货位间移动信号;堆垛机运作只需要from,to这样的物理信号即可,作业模式可有可无;                               
总结:使用奥卡姆剃刀原理,若无必要,勿增实体。追求不断的简化;多用物理信号,少用加工信号;对电控,对软件都降低要求;                               
                               
                               
2.完善通讯协议(主要考虑人性化的触屏提示 和逻辑异常的判断 )               
   2.1. 可以考虑提供一个PLC块给上位使用,目的: 上位可以自由发挥“人性化”的提醒:把文字打在堆垛机的触摸屏上;每个项目都可以根据客户要求做方便的定制,                               
        最关键的是,降低电控的工作量,它可以不用设计触摸屏上对运作任务的提示                               
        (电控只有 from,to信号;而上位可以提供要丰富很多:可以提示:物料号,数量,进度等;更重要的,如果需要在电脑上矫正的,可以再触屏上文字提醒操作员)                                       
                 
    2.2.  我们堆垛机对物理异常控制的比较好,但是一些逻辑异常,它判断不了,或者断电后,它无法判断当时状况;所以我希望电控提供一个报警信号,给上位专用,                               
        只要上位给这个信号设置为1,就报警;比如货叉上有一个莫名其妙的托盘,上位就可以通过这个信号点,让堆垛机报警;                               
    2.3把速度等参数开放给上位,这样上位根据货位的形状,任务繁忙情况,来控制堆垛机走不同的速度;                               
总结:对人性化的追求,尽可能交给上位,让电控把精力从这里解放,触摸的部分显示交给上位处理;                               
                               
3.上位自身控制的简化               
   3.1 简化入库站台调度的控制,以站台跟踪的条码为准,弱化任务的位置的作用(因为时序的问题,有时候任务的托盘位置可能不准)                               
   3.2 简化入库分配的控制,去掉预先分配机制,提高异常处理的便捷性;                               
   3.3 简化出库站台信号交互的处理,根据出库的有货信号 和 堆垛机的交出完毕信号,主动提供输送机条码,而不是由输送机电控去主动请求,时序就不需要电控去掌控了;                               
总结:简化堆垛机和输送机衔接处理;                               
                               
4.对高低货位的处理建议(分段控制):                       
  4.1我们很多项目都是高低货位(比如高中低三种类型),入库的时候,有很多框架检测(至少3组高中低光电),到了堆垛机上,堆垛机自身货叉也要检测高中低;                               
     我觉得这样不但浪费,而且对机械和电控要求都搞,机械上要严格确保尺寸框架的位置和堆垛机货叉的位置吻合,电控上还要采样并准确的提供给上位,                               
      而且因为框架未必和BCR位置在一起,电控还要做一段跟踪给上位,搞不好还跟踪错了;                               
     具体控制如下:                               
            1.托盘到达堆垛机入口,这时候谁都不知道该托盘的高度;                               
            2.上位通知堆垛机取货                               
            3.堆垛机取货完成,通过货叉上的多组光电判断高度级别,并把高度级别(高中低)反馈给上位;                               
            4.上位根据这个高度级别,再分配货位,通知堆垛机放货;                               
     说白了,就是把堆垛机的动作拆分成 取货,放货两个,让上位做更细致的控制,让电控调度更加简化;                               
总结:分段控制,可以更简化电控的逻辑,让上位更细致的更密集的做导航调整和跟踪;对于高度不一致,双叉双伸比较方便控制;                               
                               
5.对电控自身的建议       
    5.1 减低原点复位的概率,现在是体验为王的时代;稳定性是第一位的,但不能一切问题都以稳定性作为挡箭牌;                               
    5.2 多了解同行对堆垛机的控制思路,有些小的细节也许可以借鉴;                               
    5.3 十多年前老程序,可以考虑保留,但可以考虑做大的瘦身手术;或者重新架构;可能很大程度的简化自身和对上位的对接;                               
    5.4 对速度做更细腻的控制,比如无货移动中和有货移动时,速度控制可能是不一样的;                               
    5.5 降低断电复位的概率,一旦断电,上位就和下位通讯断开,对上位控制还是有点麻烦的;     

发布于 2020-10-13 11:14

免责声明:

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

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

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

暂无评论

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