全球FlexSim系统仿真中文论坛

搜索
查看: 11880|回复: 13
打印 上一主题 下一主题

案例九 悬挂链输送线

[复制链接]
跳转到指定楼层
1#
Yumaotuo 发表于 2018-5-11 08:50:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Yumaotuo 于 2018-5-11 08:53 编辑

1、模型描述:

悬挂输送线在生产系统中应用广泛,可以利用空中的空间进行输送,我们用新版传送带来实现悬挂链的功能。这个模型中主要是实现三种类型的产品经过加工之后使用悬挂式输送线运送到车间的另一侧。

2、模型布局:

按照下图拖入需要的实体并进行模型的布局,悬挂链先用传送带搭建环形起伏的路径并把该传送带类型定义为1,然后改变类型1传送带的外观,根据实际尺寸设置传送带的宽度、侧板尺寸以及取消传送带的“脚”,设置传送带的堆积间隔和移动间隔,这些视觉参数因人而异。


3、建模步骤

Step1:制作吊钩
    建模之前我们需要一个悬挂链吊钩,这里做一个简易的吊钩,新建一种新的容器类临时实体,打开该临时实体的树,新建一个子节点,然后在模型树中找到Cylinder的节点替换新的临时实体的子节点,适当调整新的容器类临时实体的大小,创建表示次数的标签times。   


Step2:吊钩进入悬挂系统

在环形悬挂链的任意位置连入产生吊钩的发生器,并且在进入点放置一个决策点,在该决策点设置当吊钩的times标签值等于0的时候将吊钩下移0.6米出现吊钩悬挂的效果。因为吊钩是循环利用,为了避免吊钩重复下移,进入的时候给times标签赋值为1。




Step3:设置入货点

    在上货的传送口和悬挂链上取货的位置都放置决策点,传送口的决策点与其正上方悬挂链上的决策点S连接。给item添加ondestination的标签用来判断是否有item等待运输。传送口的决策点的到达触发里设置停止item和把ondestination的值改为1。


在悬挂链上的决策点的到达触发判断吊钩到达传送口时是否需要搬货,在其消息触发里设置搬货逻辑。


到达触发代码:
/**判断是否装货*/
Conveyor.DecisionPoint current = param(1);
Object item = param(2);
Conveyor conveyor = param(3);
Conveyor.Item conveyorItem = conveyor.itemData[item];

Object inputposition = current.centerObjects[1];//引用入货点的传送带

if(item.subnodes.length==1)//吊钩为空(制作吊钩的时候已经添加过一个子节点)
{
        if(objectexists(inputposition.first)&&inputposition.first.ondestination==1)//传送带上有东西并且已经到达出货点
        {
                conveyorstopitem(item);//停下吊钩
                senddelayedmessage(current,2,item,1);//延迟2秒后发送1号装货消息
        }
}

消息触发代码:
/**装货并重新启动*/
Conveyor.DecisionPoint current = param(9);
Object conveyor = param(10);

Object inputposition = current.centerObjects[1];//引用入货点的传送带
Object item = msgsendingobject();//引用吊钩
int msgtype = msgparam(1);//消息的第一个触发
switch(msgtype)
{
        case 1:
                moveobject(inputposition.first,item);//把货物移到吊钩上
                item.subnodes[2].as(Object).setLocation(0,0,0);//设置货物在吊钩上的位置
                senddelayedmessage(current,2,item,2);//延迟2秒发送2号启动消息
                break;
        case 2:
                conveyorresumeitem(item);//释放吊钩
                break;
}


Step4:设置出货点
      出货点的位置放一个决策点,决策点A连接出货口的传送带进入衔接点,当吊钩到达出货位置时判断是否需要卸货。
到达触发代码:
/**判断是否卸货*/
Conveyor.DecisionPoint current = param(1);
Object item = param(2);
Conveyor conveyor = param(3);
Conveyor.Item conveyorItem = conveyor.itemData[item];

if(item.subnodes.length==2)//吊钩有货
{
        conveyorstopitem(item);//停下吊钩
        senddelayedmessage(current,2,item,1);//延迟2秒后发送1号卸货消息
}

消息触发代码:
/**卸货并重新启动*/
Conveyor.DecisionPoint current = param(9);
Object conveyor = param(10);
Object outputposition = current.outObjects[1];//引用卸货点的传送带
Object item = msgsendingobject();//引用吊钩
int msgtype = msgparam(1);//消息的第一个触发
switch(msgtype)
{
        case 1:
                moveobject(item.subnodes[2],outputposition);//把货物卸到传送带
                senddelayedmessage(current,2,item,2);//延迟2秒发送2号启动消息
                break;
        case 2:
                conveyorresumeitem(item);//释放吊钩
                break;
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
3#
 楼主| Yumaotuo 发表于 2018-5-11 15:15:01 | 只看该作者
4#
liuzhifan 发表于 2018-5-15 11:42:28 | 只看该作者

请问怎么修改新版传送带的外观
5#
小AI 发表于 2018-5-17 09:08:42 | 只看该作者
liuzhifan 发表于 2018-5-15 11:42
请问怎么修改新版传送带的外观

[img][/img][img][/img]点击进入传送带类型的系统属性里的可视化,就可以自主修改外观了。注意这里修改的是某一个类型的传送带外观
6#
小AI 发表于 2018-5-17 09:10:46 | 只看该作者
小AI 发表于 2018-5-17 09:08
点击进入传送带类型的系统属性里的可视化,就可以自主修改外观了。注意这里修改的是某一个类型的传送带外 ...

C:\Users\Administrator\Desktop\QQ图片20180517090855
8#
Stevenzheng 发表于 2020-10-16 19:14:57 | 只看该作者
到达决策点的item不是这个决策点的子节点,按照上边的写法应该不会报错,但是不会按照预期的运行,挂钩应该不会装货走
9#
ABoY 发表于 2020-10-21 14:57:16 | 只看该作者
Stevenzheng 发表于 2020-10-16 19:14
到达决策点的item不是这个决策点的子节点,按照上边的写法应该不会报错,但是不会按照预期的运行,挂钩应该 ...

请问这里面应该怎么改?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|全球FlexSim系统仿真中文论坛 ( 京ICP备14043114号-2 )

GMT+8, 2024-4-24 19:18 , Processed in 0.071735 second(s), 14 queries .

Powered by Discuz! X3.3© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表