基于Flexsim的顶升移载机运动探究
2020-06-02张玉梅于宏飞
孙 慧,张玉梅,于宏飞
(1.山东科技大学 交通学院,山东 青岛 266510;2.阿里巴巴集团,浙江 杭州 311121)
1 引言
随着工业4.0和“中国制造2025”的到来以及经济社会的高速发展,物流行业智能化装备替代传统人工作业的步伐加快,机械化、自动化等设备的发展突飞猛进。但大件物流具有价值高、运输环节多、操作复杂、输送技术及质量要求高[1]等特点,不论在大件产品的仓储作业中还是生产线上,大件产品的搬运输送作业一直是企业的一个痛点。
顶升移载机是自动化生产线上一种高效输送移载设备[2]。近年来,国内外有不少学者对顶升移载机进行了研究,大连海事大学郭大宏和杨雷对移载机的运行强度、刚度以及安全性进行了深入研究,提高其安全性。易江义等人从PCL控制方面对自动化顶升移载机进行了结构设计[3]。刘志新等人设计半自动移载机应用于汽车制造行业。国外Sadao KAWAMURA等人利用气动执行机构开发了一种自动移载机。这些顶升移载机不仅在理论上具有创新性,更适应了实际应用的需求,达到节约转载时间、降低劳动力成本、提高效率的效果。
Flexsim软件是一种常用的面向对象的物流仿真软件,可以建立物流系统的三维仿真模型,进而对系统进行仿真分析,但顶升移载机在 Flexsim实体库中没有对应的实体来模拟仿真其运动过程,从而无法准确分析其作业效率等数据。本文以某公司大件产品的生产线自动化输送移载为例,在Flexsim中,经过一系列的处理,实现顶升移载机的建模仿真,进而对生产线进行模拟仿真。
2 顶升移载机及其作业流程
2.1 顶升移载机简介
在大件物品生产线上,当输送线分拣输送效率不大于30件每min、货品重量不超过2 000kg时,我们首选顶升移载机配套输送设备进行分拣输送。顶升移载机按转载机构类型来看主要有链条式、皮带式、同步带式、驱动滚筒式、驱动轮式等;按照移载方式可以分为凸轮顶升、连杆顶升和气缸顶升三种。本文主要研究顶升移载机从SolidWorks三维建模到Flexsim中如何建立实体、定义其运动规则及任务逻辑。
顶升移载机主要由起升机构、转载机构、驱动装置、传动装置、支承装置、机架组成,图1为其结构示意图,它需要配合控制系统、感应装置等设备部件协同工作。起升机构的作用是在动力设备的作用下将货物提升一段距离;转载机构的作用是将货物平移出主输送线;驱动装置的作用是为设备提供动力,如伺服电机、气缸等;传动装置的作用是将动力传递给从动装置,如皮带、链条等;支撑装置主要用于支撑货物及集装单元化器具的重量,如滚筒等。输送线上的顶升移载机如图2所示。
图1 顶升移载机结构示意图
图2 输送线上的顶升移载机
2.2 顶升移载机作业流程
本文所研究的某公司输送线上使用的顶升移载机只有向左转向离开主输送线,或主输送线继续输送两种情况,具体描述如下:
(1)当物品进入感应装置,装置将已经送达时将信号和货物信号传送给PCL控制端,控制端根据货品信息判断是否需要转向。需转向则发出指令驱动进入顶升移载机的电机运转,电机转动带动进向驱动滚筒向一定方向转动;同时,从动滚筒在驱动滚筒驱动下一同转动,以完成货物向前输送。
(2)当到达感应装置感应到货物已经到达时,向PCL控制端发出到达信号,控制端停止输入滚筒的工作,并向顶升驱动装置发出顶升信号,再由顶升装置实现顶升动作。
(3)顶升动作完成后,控制端发出信号控制转载电机带动皮带转运装置转动,实现货物转向输送动作。
(4)当货物输送完成后,感应装置感应到货物已经离开,反馈给PCL控制端,控制端发出指令停止转动,再发出指令使顶升装置降落回归初始状态。
此时,整个顶升移载动作完成,等待下一任务。
在实际立体仓库的应用中,顶升移载机的配合工作下还可实现货物在三个方向上的输送,作业逻辑步骤如图3所示。其一,当物品无需改变输送方向只需要继续向前运动时,不启动顶升装置和顶升后的运输装置工作,只需控制进端电机继续以一定的速度转动,待感应装置感应到货物离开后停止工作,完成货物的直接向前运动。其二,当物品需要向左转向离开主输送线时,控制端发出指令启动顶升机构,实现顶升动作;顶升动作完成后控制端驱动转载电机带动滚筒向前运动(定义向前运动为左);货物输送完成后停止滚筒转动并落下顶升装置。其三,物品向右转向离开主输送线时,其顶升工作流程与向左转向时一致,只需要控制转载滚筒向相反方向转动即可实现货物的输送。
图3 顶升移载机作业逻辑步骤
3 顶升移载机在Flexsim中的建模
3.1 Flexsim简介
Flexsim是由美国Flexsim Software Production公司开发的一款离散事件仿真程序软件,用户可以创建真实的3D仿真模型。它自身具有强大的数据分析和系统运行状态监控功能,不仅使用简单,且能够让使用者花费更低的时间成本和经济成本去研究系统的效率,方便快捷地呈现系统中各要素之间的联系。在Flexsim的窗口界面上方为工具栏,窗口左方有包括固定资源类实体、任务执行类实体、视觉类实体、AGV模块等在内的对象库,软件界面右方为快速属性窗体,中间为模型窗体。在创建系统仿真模型时,可直接在对象库中点击并拖动相关实体放置在模型窗体中适当位置,再进行实体外观和属性设置,并运行仿真模型,分析模型数据优化模型瓶颈,建模流程如图4所示。
图4 Flexsim建模流程
3.2 导入顶升移载机步骤
在Flexsim中,无论在对象库的哪一个模块,都没有顶升移载机这一实体对象。由于实体对象库中缺少所需的顶升移载机实体,因此不能直接拖入模型窗口,需要手动导入顶升移载机模型,具体实施步骤如下:
首先设计顶升移载机三维模型。根据传送带已有的尺寸及比例在SoildWorks软件中画出相应大小的草图,生成零部件,装配出顶升移载机的三维模型(如图5所示),并以Flexsim能够读取的格式导出。此处我们要注意装配时应尽量在原点处装配,以免装配好的整体模型远离远点,当导入Flexsim之后实体对象偏离原点太远造成模型布局调整的困难。
其次,在Flexsim软件中增加基本固定实体(BFR)作为可视化导入工具,导入顶升移载机三维模型,并使用图形因子编辑功能将模型修正实体(如图6所示),再按Flexsim中传送带的比例适当调整模型的大小尺寸。在Flexsim中,基本固定实体(BFR)、基本任务执行器(BTE)等实体都是为二次开发准备的,它们的下拉列表中具有相应实体的所有可继承性功能逻辑,如顶升移载机的进入、离开、停止/恢复实体、消息触发器等等高级逻辑功能,亦可对其加入更多新的定义。此处在Flexsim仿真平台中,定义顶升移载机是一种固定资源对象,它可以接收其他固定资源实体传送的流动实体,并对流动实体执行分类输送命令,具体执行控制端指派的提升、延时、转载等任务。
最后,当导入为基本固定实体之后,根据模型需要调整顶升移载机实体在整个模型窗体中的坐标位置,可以通过直接在窗体用鼠标拖动实体调整,也可以通过常规属性对模型坐标进行精确调整。
图5 基于soildworks的顶升移载机模型图
图6 顶升移载机图形因子编辑窗口
3.3 关键逻辑代码设计
3.3.1 分流逻辑设计。我们预先对加工完成后的货物进行标签值设定标,以便于顶升移载机在编程代码中获取标签值,在运动学逻辑定义时进行状态判断。通过货物类型来判断需要发送的端口,以顶升移载机来实现分流分拣功能。根据实际需要,在模型中,我们在顶升移载机处作向前继续运动和向左分流设计。
switch(case_val)
{
case 1:return 1;
default:return 2;
break;
}//判断货物的类型,如货物类型值为1,则向左转向(对应仿真模型的1号输出端口),如货物类型值为2,则继续前进(对应仿真模型的2号输出端口)
3.3.2顶升转载动作逻辑设计。在货物进入顶升移载机时要判断是否空闲,如果空闲则进入并进行顶升动作,如果不是空闲状态,则等待顶升移载机为空闲时驱动货物进入顶升移载机。
if(msgparam(1)==1)
openoutput(current);
}//判断,如果顶升移载机空闲(值为1),则打开出入口,让货物进入顶升移载机
else
{
senddelaymessage(current,1 current,1,0,0);
}//如顶升移载机不空闲,则继续等待
在货物进入顶升移载机后,感应装置将消息发送给控制端,控制端触发顶升移载机的顶升和转载动作,以完成货物的移载。
int type=getitemtype(item);
if(type==2)
{
closeoutput(current);
closeinput(current);//关闭顶升移载机的出入口
initkinematics(label(current,"kinematic"),0,-2.25,0,0,0,0);//初始化顶升移载机运动学信息,储存当前实体对象—顶升移载机的起始位置、旋转角度等数据
double time1=addkinematic(label(current,"kinematic"),0,0,0.5,0.5,0.1,0.1,0,0.2,time()+xsize(item),KINEMATIC_TRAVEL);//给顶升移载机增加一定速度的操作,如顶升、旋转等
senddelayedmessage(current,time1-time(),current,1,0,0);
}
else
{
closeinput(current);
senddelayedmessage(current,1.61,current,3,0,0);
}
以上程序代码在顶升移载机收到顶升转载任务时触发,initkinematic命令的第一个参数用于记载运动学数据的空白节点,初始位置信息我们根据实际需求设定。在执行顶升动作时,需要在顶升移载机处于空闲状态时准许货物进入,执行顶升动作和转载动作,实现货物的直角转弯传送。在Flexsim中,运动学能够实现同一个实体分别执行或同时执行多个动作,而每个动作都需要对其进行速度的属性定义,如:加速度、减速度、开始速度和结束速度等参数。此部分逻辑代码在顶升移载机收到转弯信息并且处于空闲状态时触发。
当模型仿真完成后,需要通过“重置”按钮对模型进行初始状态的恢复动作,此时,我们的实体运动学数据要被清空,顶升移载机恢复初始状态。当重置时,顶升移载机逻辑代码如下:
deactivatekinematics(label(current,"kinematic"));
setloc(current,0,-2.25,0)
3.3.3 回落逻辑设计。当到达感应器感应到顶升移载机完成货物的顶升转载时,进行恢复初始状态的逻辑判断:
if(getitemtype(item)==2)
{
double time2=addkinematic(label(current,"kinematic"),0,0,- 0.5,0.5,0.1,0.1,0,0.2,time(),KINEMATIC_TRAVEL);
senddelayedmessage(current,time2-time(),current,2,0,0);
}//判断当货物离开顶升移载机之后,触发起升装置回落原位
以上逻辑代码在顶升移载机完成转载任务后触发,继续等待执行下一个任务。
3.3.4 可视化逻辑设计。在实体触发器中自定义绘图代码中使用upadatekinemastic()命令,让顶升移载机在完成顶升移载任务时刷新视图,实现运动过程的可视化。关键命令如下:
updatekinematics(label(current,"kinematic"),current);
4 实例验证
4.1 模型描述
某公司生产线供应两种类型的零件,经过抛光处理后输送至顶升移载机处,顶升移载机根据零件类型分别输送到两条加工生产线:类型1零件由顶升移载机实现货物直角转弯输送至喷粉处理器,加工成蓝色,由叉车运送至暂存区暂存;类型2零件经顶升移载机沿主输送线直行输送至复合处理器,经过数控加工并喷塑之后又叉车运送至暂存区,等待下一步工序。再经由叉车从两个暂存区各取一个零件至加工台合为一个产成品,并按四个一组打包在从线边储存区供应的托盘上送至库存区。托盘暂存区最大容量为100,当暂存区达到最大容量时停止托盘的供应,当托盘数量小于10个时,补给托盘直至装满。表1所示加工工序与各工序时间参数,输送线上的顶升移载机如图7所示。
表1 加工工序与各工序加工时间参数
表2 模型实体设计
图7 输送线上的顶升移载机
4.2 模型建立
参照表2中模型实体设计从对象库中拖入2个发生器、1个吸收器、2个处理器、2个合成器、1个复合处理器、4条传送带,3个暂存区、3个叉车放置在模型窗口中,并调整布局;按照3.2中步骤导入顶升移载机模型并调整外观、位置等参数。
4.3 流程连接
在Flexsim中,有3组连接方式,如表3所示,用于连接实体对象的分别是A连接、S连接、D连接;用于取消实体对象之间连接关系的分别是Q连接、W连接、E连接。
表3 端口连接方式
在模型中,按照产品的流动路径使用A连接从发生器开始连接对象:
(1)按顺序连接发生器-处理器1-传送带1-顶升移载机;
(2)分别连接顶升移载机到传送带2、传送带3;
(3)连接传送带2-处理器2-暂存区1;
(4)连接传送带3-复合处理器1-暂存区2;
(5)分别连接暂存区1、暂存区2至合成器1;
(6)连接托盘发生器-暂存区3-合成器2-传送带4-吸收器;
(7)连接合成器1-合成器2。
由于叉车属于任务执行类实体,使用S连接将叉车1和处理器2连接,叉车2和复合处理器1连接,叉车3分别和暂存区1、2连接。连接完成后的生产线布局如图8所示。
图8 生产线布局图
4.4 参数设置
根据表1中工序加工时间参数设置模型中相应的处理器参数,首先双击处理器1,在处理器选项卡中设置加工时间为14,点击应用并确定;同样的方法将处理器2加工时间处点击下拉按钮,选择统计分布中的Uniform函数,并设置最小值为18,最大值为25;双击复合处理器打开属性,在复合处理器选项卡中将Process1工序名称更改为数控加工,加工时间更改为均值为12,标准差为2,采用0号随机数流的正态分布,如图9所示,;点击“…”添加新的工序Process2,并将工序名称改为喷塑处理,并设置加工时间为3。
图9 复合处理器加工参数设置
双击发生器打开属性,选择触发器选项卡,增加创建触发,将临时实体类型和颜色设置为Duniform(1,2);同理打开发生器1属性,在发生器选项卡页面将临时实体种类设为“pallet”。分别将处理器2和复合处理器1在属性中临时实体流选项卡勾选“使用运输工具”调用叉车进行货物的运输。
暂存区3设置最大容量为100,且在触发器页面创建进入触发,当content(current)==100时,关闭输入端口;当content(current)<=10时打开输入端口。
4.5 仿真分析
模型参数设置完成后,点击重置按钮并开始运行模型。多次模拟运行100h后,生产线仿真系统运行正常,未出现阻塞。我们可以查看系统中个要素的运行状态和数据统计,以顶升移载机为例,点击顶升移载机查看右方快捷属性窗口中的统计数据(如图10所示),我们可以方便快捷地了解到顶升移载机的输入输出量均为428、最大容量为1、最小停留时间为1、最大停留时间为3.9以及平均停留时间是2,46等基本数据。
图10 顶升移载机统计
5 结论
顶升移载机是自动化生产输送线、分拣线提高大件货物直角转弯效率的一个重要环节。本文介绍了顶升移载机的机械结构和具体作业流程,再根据Flexsim的建模流程阐述如何导入Flexsim仿真平台中并调整实体对象,实现顶升移载机的代码逻辑定义和运动学动作,完成了顶升移载机在Flexsim中顶升和转载功能。依据某公司的生产输送线上的具体应用实例建模,模型的成功仿真具有实践性和可行性,更真实地再现实际系统,为更深层次Flexsim仿真平台开发研究提供一定的参考。