分享一个简单实用的案例,使用软件为Plant Simulation,主要向大家介绍思路和基础步骤,感兴趣的小伙伴可以动手做下,一起学习交流。
背景:码头箱区堆存的模式有很多是“两头式”,即集卡在箱区的两端等待场桥进行装卸集装箱的作业,这种模式可以有效地减少了箱区之间的道路数量,由此增加了面积利用率;还可以减少集卡在场桥下方移动的危险性,降低损失。因此这种模式的箱区堆存,在各大码头都很受欢迎。所以本篇文章就简单介绍在Plant Simulation中如何利用门式起重机来实现这一模式。集装箱在进入工位后,利用起重机把集装箱运送到对应的贝位中。
分析:1.门式起重机为拉动式运作;
2.只需写出进入工位后发送请求,门式起重机运送的代码即可。

其中门式起重机运送货物有以下的基础判断和动作步骤:
1.等到起重机状态变为“idle”;
2.将空的起重机移动到目标位置上;
3.降低起重机吊钩;
4.将部件悬挂(移动)到挂钩上;
5.拉起吊钩;
6.将起重机移至下一个位置;
7.用部件降低挂钩;
8.将零件从挂钩移动到机器上;
9.拉起钩子;
10.通过调用endSequence,可以为下一个工作释放起重机。
在实际写代码也是按照上述顺序来实现,如下是上面的案例的一段代码。
var start :objectvar target :objectvar portal :objectportal := multiPortalCrane.contif portal.state = "idle" andjobs.Ydim > 0start := jobs[1,1]target := jobs[2,1]jobs.cutrow(1)portal.movetoobject(start)waituntil portal.state ="waiting" prio 1portal.movehook(1.5)waituntil portal.state ="waiting" prio 1start.cont.move(portal.hook)portal.movehook(6)waituntil portal.state ="waiting" prio 1portal.movetoobject(target)waituntil portal.state ="waiting" prio 1portal.movehook(1.5)waituntil portal.state ="waiting" prio 1portal.hook.cont.move(target)portal.movehook(6)waituntil portal.state ="waiting" prio 1portal.endsequenceend
这些步骤是门式起重机的基础动作,在实际应用中要根据自身需求修改相关的代码,比如钩子提升的高度,以及增加其他动作使动画效果更接近现实,演示视频如下。

