设为首页收藏本站

最大的系统仿真与系统优化公益交流社区

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9155|回复: 9

[求助] 用AGV模板发生了以下错误,请解!

  [复制链接]
发表于 2011-11-5 16:38:28 | 显示全部楼层 |阅读模式
问题在哪里?

本帖子中包含更多资源

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

x
 楼主| 发表于 2011-11-14 10:37:54 | 显示全部楼层
没有解决,再顶一下。
 楼主| 发表于 2011-11-17 11:03:27 | 显示全部楼层
/* called by:        entrance ctrl of the object 'track'
# [7 j! H2 M4 G# a; Y*/
% x! p( T  `; dis
8 w% b. m) D5 a* `/ F7 t; j8 X  T# i, J        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
/ p9 Z& [" A  B& @: o8 Gdo
% X* V7 R; ]9 ?0 `/ V6 M: j        Lan := rootfolder.Internal.Tools.AOLlanguage;
3 n( O" J) _9 G$ D5 }$ f        if current = @.Destination -- else return  f% [9 m/ F* f6 D$ G
        then+ Z+ k0 W. u# R
                @.Destination := void;
4 b6 Q4 c# n* g1 G5 U                if @.occupied then3 u5 O2 n( t& R6 P% u' V
                        part := @.cont;2 }" y4 q$ B& V2 \
                        @.transpOrder := void;
8 r* R6 f* |$ {+ V2 o                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
6 c; `3 L) |$ a. m                                @,root.eventcontroller.simTime);
/ v: K# j) q1 F: ]                        @.HasOrder := false;# G, G6 w) [9 n8 S- i* F
                        @.DrivingHome := true;5 w; H) \* f+ }/ K; ]; a& Q
                        rgManager.tryToStartTransOrder;# O* Q+ e, z; B; s
                        if @.Destination = void  G& Y% M- R. {' l! m3 k' J, v. \
                        then -- no transport order for vehicle @
5 B& z! [4 y/ e                                @.Destination :=
) y' u9 c- D# ^" ]: V                                rgManager.nearestFreeStation(@,track.~);
: v) S/ D2 z# M" T& v) r                                newDirection(@);   6 G& X& R8 O/ Y# l7 {4 q: x+ O
                                if @.Destination /= void then
7 }: l3 X; m. R' [0 ~                                        @.Destination.NumReservation :=* T1 h+ j2 j. _- \* s
                                        @.Destination.NumReservation + 1;7 Q- \( r5 y5 X, @+ |
                                end;" [& N8 i& d% A; A( ]
                                @.CurrIcon := "drivingHome";
9 _0 |/ a- k' _2 }                                @.DrivingHome := true;4 `& ~  \4 u4 b# n& G+ W
                        end;$ n: M/ B1 I) O- n2 v* H" W
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station* v4 j. e( K+ v& q( G# c
                        part := @.transpOrder;
" m! |2 _: q" D1 K6 H. v3 x# G' s                        part.move(@);-- load part8 v8 c: @/ E9 a' n( a' G8 y
                        @.CurrIcon := "load";
+ w  U$ R3 g4 W/ N8 O% F) n                        GlobalDistObj := part.globDestination;
, l+ B: z4 j. U0 u                        assignLObj := rgmanager.rgAssignL;
0 Q; ^: j$ D, M6 N1 K. w                        row := assignLObj.getRowNo(GlobalDistObj);* s% X7 f4 @$ V1 K6 n3 y
                        if Row = -1 then -- since 70
; w" L  O$ \$ ]# A& ~                                if lan=1 then& D( C; H  z6 J5 j0 z
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),2 \$ y' k. X) f$ @, r) m) @
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
( N& p; o" J$ I$ \* i& H6 N, L                                else* y$ h9 v8 r5 s& b0 q
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),# z% `" d9 Q5 h
                                                to_str("in docking station: \"",?.~.name,"\""));                                . [3 ]" q! h1 X; m8 c, b! I+ U  S  G
                                end;
) g9 X$ L% t* F6 |# f8 w. k& E6 A                        else
& u7 L( y5 a! L                                @.Destination := assignLObj[1,row];
; r) n4 Z' g5 [+ {/ Q- U                        end;                        0 O& V, W! ^6 q
                        newDirection(@);
- X3 K$ L$ @8 D- G( T0 h( A  O) I                        @.HasOrder := true;
" B0 h6 v" [+ I  V+ ?7 `* ^' {                end;
" a8 S  A  W4 r8 @4 Z) y        end;
% z0 W0 Y- W8 r; Vend;        -- of the method
3 r" V9 g7 |. }" v. F$ S1 N8 e
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
5 t4 q: ~2 _: ?" G( z4 V7 X; _* H1 s2 p. b+ X/ T8 L5 ^
这是AGV_putin中arrive的method。% b+ I0 ~8 u7 n2 x4 g

5 \) v& G( m  Q1 @* E当到达物料速度越高时,这个报警更多,
' a( m5 @; B& a1 y/ A可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
. V% V* q, y8 D( i6 ^程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?) k0 O) g0 Q# g2 o( x* A
/ ~' J- r# \6 y0 ]/ n  E1 t% k  g/ ?' j# P
另外一个小建议,就是move,所有的move都可以这样& R( R  z; @/ `- e- L" L( ?
if not move() then debug end4 k" s6 o% L+ }0 ~+ k1 N( w
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
) a; l* }- `% X3 Mplant simulation中的free libraries有AGV模板,
! p) d7 m' }4 W( ?' V4 a( [6 M0 W里面也有案例。% ?% O5 w- g5 @& d, y8 s" E# }+ _
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。( D6 d) L, j: i0 }& k' P

7 v1 t2 C7 ~1 n/ m+ y我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
3 C; @+ s, \+ U0 ?4 F* i! }5 d1 |
3 z5 Z' W& N' k, D, G& @3 w那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
* V! ?: R/ p" g3 e9 |6 D这是AGV_putin中arrive的method。
" o! B9 c( k6 r8 g1 j! \$ Z
' \: h+ E! U: n5 [' b) d6 J5 t% \; y当到达物料速度越高时,这个报警更多,
: k4 p8 c* U  W* J+ R% a
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|SimulWay 道于仿真   

GMT+8, 2026-7-16 22:18 , Processed in 0.017856 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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