全球FlexSim系统仿真中文论坛

搜索
查看: 15181|回复: 16
打印 上一主题 下一主题

如何实现,当第一件物品存储时间>3600s或暂存区数量达到6个时,离开暂存区??

[复制链接]
跳转到指定楼层
1#
丫头盖 发表于 2014-11-28 10:46:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
模型思路:7 ]( ?% o7 Q2 r4 a2 l
            1)当货物到达存储区时,若第一件到达物品存储时间>3600s或存储区内数量达到6个时,货物离开存储区,到达待装车区。8 n" _$ i+ p* ?! G+ G1 H
            2)当前批货物离开后,存储区内重新根据“若第一件到达物品存储时间>3600s或存储区内数量达到6个时”这一条件,实现下批货物离开存储区,到达待装车区。
2 v6 l$ J3 _. B, p* x0 @6 d            3)车辆组装处(合成器)根据待装车区内的货物数量,更新合成清单,并组装。
$ `2 o; @' W$ I- U
$ R9 z1 F" |6 R! D7 I7 P5 w目前的模型:在存储区上设置了标签记录时间,并控制存储区的输出开关,但是没有实现上述希望的模型思路。
  B2 p  Q9 i4 \. [- u求助!!各位大神们帮忙看一下这个模型要怎样才可以实现上述模型思路的需求呢?? 非常非常感谢!!

本帖子中包含更多资源

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

x
2#
cy411522 发表于 2014-11-28 11:18:37 | 只看该作者
我做了下修改,目前实现了暂存区的控制要求,希望对你有帮助

本帖子中包含更多资源

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

x
3#
cy411522 发表于 2014-11-28 11:34:26 | 只看该作者
1# 丫头盖
6 `+ n+ ~9 {: h( ]
$ H1 v' w& T$ A  V, K
2 `+ O0 V' [# z: A) ^2 ?& X3 F8 Q你的第三个要求,我看了一下,你更新合成器组件列表的时间不对,在装车区离开触发里是没有用的,因为item不能离开所以触发不了里面的代码。。。所以你好好考虑下更改合成器组件列表的时间点。。
4#
 楼主| 丫头盖 发表于 2014-11-28 14:02:08 | 只看该作者
2# cy411522 3 B. |9 g$ Y  _+ ^1 G, q0 m
非常感谢!这个模型对于1、2的逻辑都实现了~~
+ o" f# T/ O4 H( A: |模型内有一个代码向您再学习一下,不是很懂:[img][/img]" r3 M# [. l) \- e, U# j
8 \7 o' j1 I9 p; u1 E4 X
上述代码在消息触发内:若不满足条件,则发送一条延迟消息,该条延迟消息的作用是什么?由谁来接收这条消息?+ u! s& F. I; u* @

- p" E. E2 m1 p' z  `5 ^另,对消息触发的功能的逻辑,我学习的还是不够精,想问一下:一般一个模型内是先由进入触发(或其他模型)发出消息,它再接收,在代码中它是在进入触发之后的吗?
7 j$ i0 J4 x5 [; n* D非常感谢啊~~

本帖子中包含更多资源

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

x
5#
草原一棵树 发表于 2014-11-28 15:18:18 | 只看该作者
本帖最后由 草原一棵树 于 2014-11-28 15:36 编辑 2 n8 `/ |3 H8 I, w
6 u0 |" ]( _6 U4 z  B  U6 v7 y: F

本帖子中包含更多资源

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

x
6#
cy411522 发表于 2014-11-28 20:54:48 | 只看该作者
4# 丫头盖 , ?3 R) H) L" C* `/ X
5 d+ `3 \2 W1 F, t8 O0 `; x
自身接收,发的是一秒延迟消息。。基于第一个实体的进入时间t,每隔一秒统计一次当前时间然后减掉t结果与3600秒相比,若大于3600则打开输出;若小于3600则继续发1秒的延迟消息
7#
cy411522 发表于 2014-11-28 20:57:58 | 只看该作者
4# 丫头盖
+ W. l. @; F9 g) d, S+ F
1 N/ z  i7 `, D0 ~! \5 r  `: O
  J, s3 k, `2 h: j$ o! B自要有实体给它发消息,那么它的onmessage就会触发。。你可以做个断点测试它的触发时间点在什么时候。。。
8#
 楼主| 丫头盖 发表于 2014-11-29 17:46:43 | 只看该作者
5# 草原一棵树
3 ^0 ^; Z2 G- m: ?( \0 F! B! t你好!看了您的模型,觉得相当牛掰了~  想问一下,模型中的“懒人专用”这个是怎么做出来的?
( \1 S9 g! j/ M7 m3 W$ ^* |0 a5 \# ]( T+ Q4 }: ~7 x! ]9 B' t
) \. p0 a3 D0 {2 ~) y; s2 j  y
另:由于暂时不会在新的模型中做出您的这个“懒人专用”框,因此将您的模型思路和2楼的模型进行了结合,课题中的3个问题都可以解决。但是存在一个小问题:3 K0 ]5 G0 H8 p* j
当模型运行到3700s时,已满足时间>3600s条件,存储区货物应该到车辆组装处组装。
1 m7 R& V! }  t/ C0 K% C但,待装车区的容量未写入全局表。
. r8 v1 f7 G9 h- j, J3 o4 l; A0 m  问题应该是:暂存区3的托盘,在车辆组装处的合成清单还未更新时,托盘提前在合成器上等待,导致合成器的数量无法更新。但是,我自己没有解决这个问题、、、、、
5 A( h/ f2 Y( n  z( k    辛苦你在帮我看一下怎么解决,非常感谢!!

本帖子中包含更多资源

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

x
9#
德古拉 发表于 2014-12-1 10:52:24 | 只看该作者
根据楼主的描述大概做了一下,您看看是否达到了您预期的效果。
9 f# V7 x) f- L$ {, V+ F1.最多等待3600s的条件不用循环发消息去判断,直接在存储区进入第一个item时发送一个3600s的延迟消息即可,当此延迟消息触发消息触发器时如果存储区内有item,则释放所有的item。7 p0 y4 B5 f" w  d+ e0 Z
2.更新打包数量可以在待装车区进入触发中将全局表打包数量值设置为此时存储区的容量加1,并在此时释放一个托盘。8 Z! Z2 w' t9 R0 V. R

本帖子中包含更多资源

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

x
10#
xinglei 发表于 2014-12-10 16:53:00 | 只看该作者
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-9-6 06:32 , Processed in 0.081647 second(s), 14 queries .

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

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