张自强,程 科
(江苏科技大学 计算机科学与工程学院,江苏 镇江 212000)
随着消费者的需求不断升级和电商行业的发展,快递、快运产业发生变革,物流配送呈现出小批量、多品种发展的趋势,配送的商品种类和数量急剧增加,国家邮政局中国快递大数据平台实时监测数据显示,截至2021年7月4日,全国快递业务量突破500亿件,接近2018年全年水平,用时仅6个月[1]。快递行业的迅猛发展对快递网点的分拣效率、准确率等提出了更高的要求。
传统分拣主要以人工为主,人工分拣需要根据单号的地址,匹配对应的物流网点。在这种操作模式中,分拣员需要熟练记忆快递网点与地址的对应关系;且由于快递业的快速发展,地址与网点的对应关系常常发生变化。造成了分拣难、分拣慢、分拣错等问题,直接影响到快递公司的服务质量。大型分拣系统虽然效率高,但占地面积大,投入成本高,回报周期长,不适合中小型快递公司的使用[2-4]。针对现有快递分拣设备存在的问题,本文设计了一种新型的摆轮式快递分拣控制系统,可适用于不同形状、大小的包裹,实现连续、大批量地分拣作业。
摆轮式快递分拣机在整条快递分拣线中的布局如图1所示。分拣线主要由前端条码扫描系统和多台摆轮分拣机组成,每台摆轮分拣机有左右两个出口,最后一级分拣机的出口区作为疑难件、错误件等包裹的舍弃口。分拣机可连续级联使用,无需拉距机,级联数量可根据分拣需求灵活配置[5]。下面将据图阐述系统工作过程:
图1 分拣线布局图
1)首先包裹被传送到条码扫描区,扫码设备识别到货物后扫描包裹的快递单号,主机根据快递单号获取包裹配送地址信息,按照系统预先设定值匹配分拣口。
2)主机广播分拣任务信息,包括单号、指定分拣口等信息。
3)分拣机控制柜接收分拣任务信息,判断包裹是否在本机分拣,若在本机分拣装载任务,不在本机分拣则判断包裹是否需要经过本机,经过本机的包裹需要装载直行任务让包裹直行通过。
4)分拣机检测到包裹到达本机,执行对应分拣任务。
本系统主要针对摆轮分拣机的包裹位置检测、动作执行等方面进行设计,配合条码扫描主机完成分拣任务。摆轮分拣机结构如图2所示,其主要由一台控制柜、出入口包裹检测装置、伺服转向机构和传送机构组成。其中,转向机构分为前后两个部分,分别由两个伺服电机控制转向,前后两部分可转不同的角度;传送轮安装在每个摆轮上,使用直流无刷电机驱动4个传送轴转动,传送轮的速度可调[6];包裹检测装置包括前后各两组红外对管传感器,用于检测货物在当前分拣口的位置以及作为分拣是否成功的判断依据。系统工作时,摆轮分拣机转向回正,等待主机下发分拣任务信息,接收到任务信息后存入到任务队列中,红外检测装置检测货物进入到分拣口后按顺序从队列中提取包裹信息,确定包裹的走向,如果货物没有按照预定线路传送,则触发错误处理机制,避免分拣错误累积[7-10]。
图2 摆轮式分拣机结构图
摆轮式快递分拣机电路硬件结构如图3所示,由转向单元、传送单元、包裹检测单元、控制单元共4部分组成。控制单元包括基于STM32F103ZET6的嵌入式控制器、以太网通信模块、无刷电机伺服电机驱动等功能模块。
图3 摆轮式分拣机硬件结构
包裹检测模块选用NPN型红外对管传感器,该传感器为点对点光束检测方式,如果有物体遮挡显示则会触发电平信号变化,相对于其他测距型、反射性传感器灵敏度更高,不容易造成误判。红外对管传感器采用24 V电源供电,为解决电源串扰以及电平信号匹配问题,选用6N137光耦芯片实现信号隔离和电平转换。单片机通过检测电平跳变沿确定是否有货物经过,出现下降沿则为货物进入,出现上升沿则说明货物已经通过。包裹检测模块电路结构如图4所示。
图4 包裹检测模块电路结构图
快递包裹的重量体积参差不齐,一般较轻较小的货物在摆轮分拣机上容易存在跳跃现象,如果恰巧在检测光束上跳过将会导致包裹漏检,造成分拣错误。因此选用出入口各两组垂直布置的结构,第一组贴近平面,第二组抬高5 cm,正常运行的货物会同时触发两组传感器,跳跃的货物可能掠过第一组但受到跳跃高度限制仍然会触发第二组传感器,采用这种方式对包裹形态体积适应性更强,不会造成漏检情况。
在传送过程中由于机械运转、传送带不平整灯情况会存在包裹晃动情况,因此在触发的临界位置很容易产生连续的脉冲式触发信号,从而让系统误认为有多个包裹经过。包裹分拣过程中一旦发生错误检测的情况,很容易造成包裹队列的顺序出错。如图5所示,P1两组传感器被连续触发时记录第一个触发脉冲的时间为起点,以最后一个传感器触发结束信号P2作为终点计算时间差值tp,当差值大于误触发值时判断为一件货物,并且每个下降沿均会开始重新计时,当有连续脉冲触发时值将会不断被清零,直到脉冲结束数值才会累计,当大于检测阈值时,即确定一件货物触发结束。检测阈值范围的大小直接决定了货物的运送速度和传输间隔,其必须满足公式:
图5 包裹触发逻辑信号
Dp>td×vp
(1)
式中,Dp为传输间隔,tq为检测阈值,vp为运行速度。
即当传送带以1 m/s的速度运行时,要保证包裹间隔距离大于5 cm,如果低于这个值,系统将会误认为是连续脉冲,将两个货物识别成一个货物。
包裹进入分拣机时触发入口检测装置,摆轮分拣机获取包裹分拣信息,驱动传送单元转向单元执行动作,包裹按指定路径前进,当前包裹的目标分拣口为当前分拣机的左/右分拣口时直接摆出,如果目标分拣口不在当前分拣机,则直行触发出口检测模块。采用出入口两级红外检测装置,能够及时发现分拣过程中的错误情况,避免错误累积[11]。例如当前分拣机从入口进入一件包裹,包裹本该直行通过当前分拣机,但由于其他原因造成货物从两边的分拣口掉落,此时包裹出口的检测模块一直没有检测到包裹触发,即可认为当前包裹分拣出错;同理本该在此级分拣机分拣出去的货物没有成功分拣,则会触发到出口检测模块,分拣出错仍然可被发现。
转向传送控制模块能够控制包裹的前进方向以及前进速度,主要为协调控制14个直流无刷电机,其分布在14个转向机构上,分为两组由伺服电机控制其转向不同的角度,如图6所示,系统分为双级转向,伺服1控制前级转向,伺服2控制后级转向。传统单级摆的方式由于角度固定,如果角度过小,货物可能因惯性作用无法摆出,直接触发到后一级摆轮机;如果角度过大,货物可能直接从包裹检测传感器传感器上方翻越[12-14]。采用双级转向的方式可以灵活调节两级角度,精确控制货物的位置,前级摆动较小角度,后级摆动较大角度,货物能够完全进入到分拣机,当进入到中间位置触碰到后级摆轮,可以让货物始终在中间区域离开出口。
图6 转向传送机构示意图
传送轮的速度可根据货物的大小自动调节,正常运行时传送轮的速度跟随前一台分拣机的速度,货物进入时系统根据货物遮挡检测传感器的时间估算货物的大小。在传送线上,包裹体积越小越容易发生翻滚跳跃,因此传送单元设定正常运行速度为500 rpm,对应默认货物长度为40 cm,实际运行速度按照:
v>500+k×(l-40)
(2)
进行调节,式中,v为运行速度、k为调节系数,默认为16.7、l为货物长度。
网络通信模块用于分拣机与主机间的相互通信,实现分拣机的运行控制和状态监测,接口采用以太网接口,通信方式为UDP协议,选用WIZnet的W5500以太网控制芯片,W5500芯片是一款集成全硬件TCP/IP 协议栈的嵌入式以太网控制器,支持TCP、UDP、ICMP、IPv4、ARP、IGMP、PPPoE协议[15]。W5500与STM32通过SPI接口相连,理论速率最大可达80 MHz,完全能够满足系统设计需求。
为保障系统系统实时可靠运行,系统采用了FreeRTOS嵌入式实时操作系统。程序使用多任务执行方式,如图7所示,通用任务为优先级最低的任务,主要负责按键、指示灯、显示部分等人机交互功能;电机控制任务负责控制伺服电机和直流无刷电机,直流无刷电机控制器采用485总线控制,伺服电机驱动器采用canFestival框架的CanOpen协议栈控制,canFestival完全符合CanOpen标准,能够运行于多种类型的平台,有较高的开发便利性;主控制任务为优先级最高的任务,主要实现包裹检测、队列管理以及错误检测处理功能;网络通信任务则负责与主机通信,实现指令收发、寄存器读写等功能。
图7 系统整体架构图
分拣线入口安装有快递扫描设备,每个包裹送到分拣线上首先要经过扫码区,扫码区扫描到货物信息会确定当前包裹的分拣口,然后扫码主机会将此包裹的分拣信息通过网络写入到每台设备的分拣任务寄存器中[16]。所有的分拣机按照级联的方式依次往后排序编号,每台分拣机轮询自己的分拣任务寄存器,当有数据装入寄存器,系统会提取分拣信息,判断分拣任务是否在本机执行。如果是在本机执行直接装载动作,不在本机执行则判断分拣任务在本机之前还是之后,如果是在本机之前由于包裹不会从本设备经过,则直接舍弃本次数据,清空分拣任务寄存器;如果是在本机之后,则货物需要经过本台分拣机而不参与分拣,所以直接在包裹队列中装入一个直行任务,当对应包裹经过此分拣机,分拣口则会直接提取到此直行任务,包裹直接通过,具体执行流程如图8所示[17]。
图8 分拣任务软件流程
包裹的管理队列按照先入先出式按序执行方法,队列中的数据相当于按照分拣线上的包裹的顺序排列,当一个货物扫码后就会将分拣数据存入的队列当中,货物分拣完成就会在队列中清除掉包裹信息,如图9所示[18]。
图9 包裹管理队列
分拣机与主机之间采用读写变量的方式通信,通过模拟软寄存器可以实现主机对每台设备所有参数的访问。采用结构体形式定义,其主要由变量地址、字节长度两部分组成。部分常用的寄存器如表1所示。
表1 部分常用软寄存器
软寄存器可以存放任意大小的变量,只需对变量进行取值操作即可,变量占用空间的大小由字节长度字段决定。寄存器表是由结构体数组的方式实现,将数组的索引值作为寄存器的地址值,采用此方式,无需轮询遍历直接通过数组索引便可对相应变量镜像操作。根据对变量使用权限的不同,分别建立了两个寄存器表来存储只读寄存器和可读可写寄存器,寄存器地址的最高位作为判断寄存器类型的依据,当最高位为0时则操作只读寄存器,为1时操作可读可写寄存器。寄存器的读写通信协议如表2所示。
表2 软寄存器读写通信协议
通信协议采用不定长帧传送方式,帧首字节为设备地址段,表示分拣机的地址编号,其中将0×FF作为广播地址,因此此协议能够容纳最多255台设备;命令字段分为读写命令,0×03为读寄存器数据指令,0×06为写寄存器数据指令,0×01为应答指令;寄存器地址段是设备软寄存器表中所配置的变量参数,如设备运行状态、电机速度、转动角度、检测数量等;寄存器数量段为以当前寄存器地址开始往后需要连续读写的寄存器数量;数据段则需要根据读写寄存器的数量装入相应长度的字节数;校验段采用16位CRC对数据帧进行校验。
以写软寄存器数据为例,主机发送写指令,同一网段内所有分拣机都会收到指令帧,分拣机根据设备地址和校验字段判断帧是否有效。帧有效时根据寄存器的起始地址依次查找寄存器数组中存储的变量地址,并将数据段中的数据按序写入到变量地址中。所有寄存器写入成功后,控制器返回一条应答指令给主机。
采用软寄存器读写访问的方式对分拣机进行控制,能够有效降低通信总线的负载压力,同时设备之间依赖性小,只需要修改设备编号就可以完成设备的更替,为系统搭建、设备维护带来极大便利性[19]。
实验选用5台分拣机级联组成10个分拣口,实验场景如图10所示。包裹选用小型、中小型、中型、大型包裹、书本件以及信封型超薄件。每种包裹分别准备100件,一共600件货物贴好快递单并且录入分拣信息。由于包裹数量有限,分拣口货物分拣完成后可重新放到分拣线再次参与分拣,分拣时间设定为1小时,其分拣效果如表3所示。
图10 试验场景
表3 不同大小包裹分拣结果
由实验结果可得,该系统的分拣效率较高,每小时分拣可达6 000多件,拣货范围较广,除了信封型超薄的物件分拣效果较差之外,其他尺寸的包裹分拣正确率基本都能保持在99.78 %以上。信封型超薄件由于厚度太薄,无法完全遮挡红外检测的光束,因此很容易造成触发失败,另外此类超薄件重量过轻,与传送轮的摩擦力不够特别容易造成信件卡住,无法前进,由此表明摆轮式分拣机不适用于超轻超薄型包裹,对大型重货更有优势。
本文主要针对以往快递分拣系统占地面积大,投入成本高,无法满足不同的应用场景需求等问题,设计并实现了一款可灵活扩展的摆轮式快递分拣机控制系统[20]。采用该摆轮分拣机控制系统能够增加拣货范围,缩短项目回报周期,提升相应的工作效率与准确率,降低了算法复杂度;本系统扩展性强,可根据分拣需求灵活配置分拣机数量,占用空间小极大地满足了中小型快递公司对物流配送货物分拣的需要,具有广阔的市场前景和极大推广价值[21]。