全球FlexSim系统仿真中文论坛
标题:
如何实现多条(>3)消息、表格消息的发送?
[打印本页]
作者:
丫头盖
时间:
2014-10-11 14:17
标题:
如何实现多条(>3)消息、表格消息的发送?
总的订单信息需根据去向区域,将各个区域的订单信息分发下去,之前做的模型,是一个区域一条订单数据需求行,采用信息发送的方式实现的。
6 L+ Q# U6 J5 |8 o* ?
但是,现在将一个区域的订单数据需求行,拓展为3条(及一个3行1列的表),将该信息发送给各区域,就出现了下述问题无法解决,向各位大神求指教。
3 p! i* Q" K, }0 K& P2 J' s I$ H4 y: D
sengmessage()函数只能发送3条信息,但在做的模型中有多条信息发送的需求,向各位大神求指教。
' l5 W3 |$ H, |4 k
问题详述:
+ @% ^/ o0 R L9 _% i& u# Y) Y5 V
1、如何将表格信息通过sengmessage()函数,发送给中间端口连接的实体?
" D7 r5 ~* Z4 p% C
1)在模型中的“订单队列区23”实体上,需将其内的临时实体的标签表格“OrderTable”的信息传,传给该实体的中间端口1-9。
# i6 f3 H: L5 e) U7 M. z
其中:“OrderTable”的1-3行数据发送给中间端口1;4-6行发给中间端口2,以3个为单位依次类推。
( n! V _3 q# M2 F5 I$ O
2)“订单队列区23”实体上的临时实体"BJNumber"标签同上述。上述两个问题如何实现呢?
! h9 \( j/ _, y3 U/ t0 k: h( a
' ]7 j% i' f P# d6 ]0 O
2、如何通过sengmessage()函数,实现)>3条信息的发送?
8 C1 o9 b# Z# x; U: q
1)“订单队列区23”实体上的临时实体的标签"TD"、 getitemtype(item)数据发到所有中间端口,加上上述信息超过3条信息,如何发送?
2 v2 O4 C# y! {6 f: u
, S! C7 V* d4 e% |6 c
附上述问题的模型,用的是7.1.4的版本。[attach]2257[/attach]
( J! ?0 Y+ ]2 I5 L. i
急求各位大神的指导,非常非常感谢!!
作者:
慧娴亚伦
时间:
2014-10-11 15:41
问题1看得有点晕。。。
! `( Z9 J4 x* x1 Z
问题2解决其实挺容易的,只要将对应要保存的信息存到一个全局表里面,只需要传递全局表的编号或者名字,到指定消息触发器中再根据这个编号或者名字,这样无论您要传递多少个信息只要存在一个全局表里面就行啦~
作者:
丫头盖
时间:
2014-10-11 16:45
2#
慧娴亚伦
* i6 d- u4 K4 y' }( X: x) |0 V
一个27行的表格,要分成9个部分传出去,如果按照全局表的话,就会产生9个全局表,太多了。所以,想问一下,能否避开全局表的方法传递信息?
+ l7 O6 c- n# ?. z" z1 m
& p8 {7 |" H1 \) a
对我的模型在解释一下:
! e. i' \+ O2 V( ?$ K) V9 D8 D& m
1)托盘代表订单。 我在临时实体箱内,给托盘“OrderPallet”设了27行1列的表格标签“OrderTable”,代表总订单;
0 }6 Z0 O6 d) Q+ j
2)“产生订单23”发生器,产生给“OrderPallet”托盘;
; M t1 U% @0 W6 G# J
3)在发生器“产生订单23”内,将全局表“订单发生3”的数据,第一个订单行的每列导入每一个托盘“OrderTable”的每行内,代表该托盘的订单;
0 x! N$ ^- u$ k9 F! Y: j3 H
4)订单托盘到达“订单队列区23”暂存区,将订单托盘的标签表格“OrderTable”的信息,发送给“订单队列区23”暂存区的中间端口(1-9)。
: W& J5 z+ W b" T
其中:标签“OrderTable”的
1-3行数据
,发送给“订单队列区23”暂存区的中间端口1;
9 v: j( d- }! I4 g# M1 o& }
4-6行
发给中间端口2,等等,后续的以3个为单位依次类推。
& D( I7 v9 `! b3 u' h& `
疑问:
7 T; e. P2 ^" c/ R# }
1)上述的红色字体部分,即为疑问。如何将表格内的3行数据,通过一条消息发送给中间端口?
+ n# s0 Z& e! f( m4 ]) U
- ^! j: B% m V b
希望能尽量避开再写入全局表的方式, 避免全局表太多~
3 ^5 H! _4 V8 J4 ^+ x" T
6 m0 o" @0 r$ ^% K/ b+ [
不知道这样解释是否说的清楚了,不清楚的地方我再补充~~
* a+ B1 v, I6 h! ?: l( O8 T8 d
4 r$ s% G7 z- @- @! u( P& a& t
辛苦啦,非常感谢~
作者:
丫头盖
时间:
2014-10-11 16:45
2#
慧娴亚伦
Q3 R, r: f T# A* j" V3 U3 |
一个27行的表格,要分成9个部分传出去,如果按照全局表的话,就会产生9个全局表,太多了。所以,想问一下,能否避开全局表的方法传递信息?
4 Z/ x7 c9 N: M
2 C* b1 v3 R3 u: x9 }
对我的模型在解释一下:
3 @+ }. L* E# _# D3 b
1)托盘代表订单。 我在临时实体箱内,给托盘“OrderPallet”设了27行1列的表格标签“OrderTable”,代表总订单;
( {& {: T# p- l& _( b/ _8 o( `: i1 O4 M
2)“产生订单23”发生器,产生给“OrderPallet”托盘;
i; p' x x% i( L' Z- f3 H, _
3)在发生器“产生订单23”内,将全局表“订单发生3”的数据,第一个订单行的每列导入每一个托盘“OrderTable”的每行内,代表该托盘的订单;
; U& Z. ^& {* k4 O0 i, n
4)订单托盘到达“订单队列区23”暂存区,将订单托盘的标签表格“OrderTable”的信息,发送给“订单队列区23”暂存区的中间端口(1-9)。
) E0 `9 ~' t% p4 A0 x
其中:标签“OrderTable”的
1-3行数据
,发送给“订单队列区23”暂存区的中间端口1;
+ N) R3 D" G7 @2 @" `$ T
4-6行
发给中间端口2,等等,后续的以3个为单位依次类推。
) p+ U' l8 K T+ o8 c
疑问:
; {5 b# g, y( l5 x
1)上述的红色字体部分,即为疑问。如何将表格内的3行数据,通过一条消息发送给中间端口?
0 B! T* {. W7 t& ^, u% X* ^
, H: D) }' R- b/ D
希望能尽量避开再写入全局表的方式, 避免全局表太多~
1 e' x* m+ K9 y
! V" a1 x* i" W+ n6 D, H7 E i' z
不知道这样解释是否说的清楚了,不清楚的地方我再补充~~
' C% K0 C {# M0 U7 f; D
: n, F0 s: P: f
辛苦啦,非常感谢~
作者:
丫头盖
时间:
2014-10-11 17:41
本帖最后由 丫头盖 于 2014-10-13 14:25 编辑
, M4 H7 V+ H; a' W J N
4 E4 x, T" l% O/ I( S
2#
慧娴亚伦
$ t( J8 D7 I2 }* z, R. H
1
作者:
丫头盖
时间:
2014-10-11 17:41
本帖最后由 丫头盖 于 2014-10-13 13:32 编辑
' q, v' B1 }: j' K3 f
) A8 j$ x s. ^0 l& A! ?
1
作者:
慧娴亚伦
时间:
2014-10-11 17:53
也不一定要将消息完整的传递出去,可以设立不同的消息标示。不同指标代表不同的执行方案,在消息触发里面进行判断即可。
) o1 x: o6 B; s/ ]" r2 ^# O7 b- R* k
举个例子,我想要传递某个全局表中,第一行到第八行的数据,我只要设定传递第一个参数为1,然后再消息触发判断,如果传递过来的第一个参数是1,那么则读取某个全局表第一到第八行的数据。
; S, i6 l3 ^0 C! i5 d0 ^- Q
以上,只要建立消息标示联系,无论多少个需要传递的消息都是可以解决的。关键是这个标示体系的建立。
作者:
丫头盖
时间:
2014-10-13 08:40
6#
丫头盖
0 t5 P0 }, F) ?6 Y9 V, p3 J( ~2 D$ n" |
不好意思啊~ 不知道为什么发了这么多条,辛苦各位多看几楼了呢~
作者:
丫头盖
时间:
2014-10-13 08:53
7#
慧娴亚伦
/ K8 e, d9 @$ d2 ?5 b/ j6 Y+ L
您说的这种方法,麻烦您做个简易的模型学习~~ 我还没有做过这种一个参数代表一个表格的方式。 非常感谢!
作者:
大摸鱼
时间:
2014-10-13 15:25
9#
丫头盖
* G. A1 w% n% V
做了一个简单的模型,通过发一个消息控制全局表某一行的值,希望对你有帮助
作者:
慧娴亚伦
时间:
2014-10-13 16:30
也不知道这个例子恰不恰当。。。。随性做了一个小例子,希望对您有帮助。
作者:
丫头盖
时间:
2014-10-13 17:19
10#
大摸鱼
$ y, |; V1 o- F# l2 [: Z
您好!我在您的模型上改动了一下,将我的疑问简化向您寻求方式,主要模型的讲解及疑问如下:
; t' [6 J# g+ b" h( S' m* a, H0 ^* ?
模型详述:
; o; ?, S& F6 x3 h; W# \4 I4 T- [
1)模型在临时实体箱内,给pallet加了一个2行1列的“label”标签表;见图:[attach]2262[/attach]
' [' M6 z& Z+ p* V* f- e: c9 A
2)发生器内,给托盘又加了三个标签,分别为:“TD”、“QY”、“HJ”;
- }/ o' O3 f" ~& ^* e( R# d' p5 E
3)Queue2中,离开触发内将“label”、“TD”、“QY”、“HJ”的信息都读取后,发送信息到中间端口;
2 N4 v# v+ K6 m) O
其中:发送到中间端口1连接的暂存区1上信息为:托盘标签“label”的1和2行、“TD”、“QY”、“HJ”
" Y, ~ l$ K( r' h+ _
发送到中间端口1连接的暂存区1上信息为:托盘标签“label”的3和4行、“TD”、“QY”、“HJ”发送到中间端口连接的暂存区1上;
# z, {+ l6 _) }- @! n1 Q5 t' Y" j F+ Y
4)暂存1、2:接收上述4个标签的信息,写入其标签上。
& w9 F$ ]) t, u, a; V! \
疑问:
! X* [" R+ `: k# Q/ V
1)“label“标签:为一个标签表,怎么可以实现将整个表,作为1条整体信息发送出去?
% d( P8 V* a; s- s
或者:是否可将这个表写入全局表后,将全局为一个整体,做为1条信息发送,如何实现?
5 r4 V$ H6 u& A9 o( }/ A
2)“label”、“TD”、“QY”、“HJ”共四个标签4条信息,但sendmessage()函数仅能发送3条信息,如何解决一次性发送4条信息呢?
1 o/ s, r& |: ^
$ Y6 k, | }8 E: X& k
这个问题从上周开始就一直被困扰中,急求帮助~~ 非常感谢啦~
- w i, B$ r& l, ?- F& s9 H
# L8 ?. I" X4 Y5 M! s
附模型为:[attach]2263[/attach]
作者:
大摸鱼
时间:
2014-10-13 19:28
发消息只是解决问题的一种方法,我们在做模型的时候需要考虑哪种方法更简便,在你这个模型中其实可以直接在离开触发读取item的标签值记录到对应的中间端口,不必用发消息的方式ps(在你这个模型中判断是==而不是=,而且你的标签也写错了是label,你这个模型到处都是问题,第一你做不对,第二我们看起来也费劲,基本功不扎实啊)下面是我修改过的模型
作者:
丫头盖
时间:
2014-10-14 09:15
11#
慧娴亚伦
. X% e0 Y$ b$ Y$ V
您好!刚看到您的回复。非常感谢,又学习了一种新的角度解决问题~~
作者:
丫头盖
时间:
2014-10-14 09:18
13#
大摸鱼
! y( s0 K) i. g2 }$ n1 D( f% A
懂了懂了~
: M. K0 r" i5 u- i' J9 r0 w
相当的感谢了~
+ r) h: e# c+ j S
我确实基础功不是很扎实,仿真是我工作里要负责的一部分,没有太多的时间单独钻研。现状是通过边做边用来边学习滴,尽量在学到了一种方式后就触类旁通~~ 所以我现在有时间就到论坛里来看看新的模型,学习大家不同的思路呢~
欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/)
Powered by Discuz! X3.3