全球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: Dsengmessage()函数只能发送3条信息,但在做的模型中有多条信息发送的需求,向各位大神求指教。
' l5 W3 |$ H, |4 k问题详述:
+ @% ^/ o0 R  L9 _% i& u# Y) Y5 V1、如何将表格信息通过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 O2、如何通过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& m1)托盘代表订单。 我在临时实体箱内,给托盘“OrderPallet”设了27行1列的表格标签“OrderTable”,代表总订单;0 }6 Z0 O6 d) Q+ j
2)“产生订单23”发生器,产生给“OrderPallet”托盘;
; M  t1 U% @0 W6 G# J3)在发生器“产生订单23”内,将全局表“订单发生3”的数据,第一个订单行的每列导入每一个托盘“OrderTable”的每行内,代表该托盘的订单;
0 x! N$ ^- u$ k9 F! Y: j3 H4)订单托盘到达“订单队列区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 d4 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 b1)托盘代表订单。 我在临时实体箱内,给托盘“OrderPallet”设了27行1列的表格标签“OrderTable”,代表总订单;
( {& {: T# p- l& _( b/ _8 o( `: i1 O4 M2)“产生订单23”发生器,产生给“OrderPallet”托盘;  i; p' x  x% i( L' Z- f3 H, _
3)在发生器“产生订单23”内,将全局表“订单发生3”的数据,第一个订单行的每列导入每一个托盘“OrderTable”的每行内,代表该托盘的订单;
; U& Z. ^& {* k4 O0 i, n4)订单托盘到达“订单队列区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 A2)发生器内,给托盘又加了三个标签,分别为:“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/ V1)“label“标签:为一个标签表,怎么可以实现将整个表,作为1条整体信息发送出去?
% d( P8 V* a; s- s        或者:是否可将这个表写入全局表后,将全局为一个整体,做为1条信息发送,如何实现?
5 r4 V$ H6 u& A9 o( }/ A2)“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