设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8465|回复: 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'( A  R& s8 \* h- O9 b
*/0 N+ ?; i" _1 O3 W* X& e1 O
is
& P) J* l6 o' i0 Z        part, GlobalDistObj, assignLObj:object;row,Lan:integer;7 l# c% I: x9 }' I
do
/ v: `( M" E# T6 J- W        Lan := rootfolder.Internal.Tools.AOLlanguage;% o9 b, r* ^9 ^! E6 C6 J+ W/ P
        if current = @.Destination -- else return
! e4 x  d3 C2 z, e; @        then! w' [) U0 z8 i- |) @
                @.Destination := void;2 q( c) B. w* ~0 s5 z) a0 U7 g
                if @.occupied then
5 x6 e% I; [) G+ R) J                        part := @.cont;
: R& f& t3 i- @! x                        @.transpOrder := void;
: w' A) ^3 {9 d9 d# P% g                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,) `  O  x8 }, W) I8 V5 W# @" ]
                                @,root.eventcontroller.simTime);9 a% u5 M7 z) R0 \1 Q6 V( s; e
                        @.HasOrder := false;
: ]3 x8 T' a- V3 ]5 u. S                        @.DrivingHome := true;
1 B$ |$ n$ [3 o) Q9 t3 g) b6 N                        rgManager.tryToStartTransOrder;" z- V/ R5 Q5 T) {$ d
                        if @.Destination = void, s1 `( n& D5 e; e9 H
                        then -- no transport order for vehicle @
) c) A( J3 H0 F                                @.Destination :=3 i$ \6 {2 G% Q
                                rgManager.nearestFreeStation(@,track.~);
+ D" H2 P; t  l+ a4 Z' V) ]                                newDirection(@);   
! B8 v/ p0 s4 `" _8 q% ^                                if @.Destination /= void then+ t) [4 ]: O4 j1 u8 D/ S% D$ K( d
                                        @.Destination.NumReservation :=; o" p- x6 B. E, I" \
                                        @.Destination.NumReservation + 1;
, W) Y8 M! B, M, k                                end;
" ?, a6 W! m# ~1 H                                @.CurrIcon := "drivingHome";, n5 [( Z# O0 L: R$ W
                                @.DrivingHome := true;
" G# P0 ~7 L7 R' ^- K  ?- @                        end;& o, Z. {0 N1 k: X4 n: k
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station2 `5 f( X* ?- T+ _- t7 n5 d- v
                        part := @.transpOrder;, N3 ^4 D" x3 g: V
                        part.move(@);-- load part9 t$ P, i1 D% H# G8 g" t
                        @.CurrIcon := "load";
: {! B( u! f% l9 v2 b                        GlobalDistObj := part.globDestination;1 g3 W9 r- R' @/ `3 f2 Q! z
                        assignLObj := rgmanager.rgAssignL;
) b- t# s2 H& c2 c5 I                        row := assignLObj.getRowNo(GlobalDistObj);6 y. }, @: v+ P& r8 G" f* G
                        if Row = -1 then -- since 706 m* {6 E* a# K1 k4 V( o; B( {/ r
                                if lan=1 then
, V( c6 h1 ]1 o2 d5 i- L# w# Q, b                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),( Y# Y5 |0 B9 b" R% f
                                                to_str("in der Andockstation: \"",?.~.name,"\""));7 `7 M( w, C' j/ L6 F
                                else
  f5 U: T  B+ w3 H* m0 v5 ^/ [4 p1 u                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
- C+ \: I6 {) f1 q) `: w                                                to_str("in docking station: \"",?.~.name,"\""));                               
  \; Q( x1 O. ?8 w                                end;# L+ D1 K( p! e& L
                        else
; V1 }8 Z8 }; v4 H! W* q% V                                @.Destination := assignLObj[1,row];6 B& {: P' z+ c0 c9 v( v" Q7 n
                        end;                        ! r6 n2 M; e7 K) B+ @+ K
                        newDirection(@);3 l1 n" K+ k3 B
                        @.HasOrder := true;
' E. _1 ?; V5 z+ s0 E* E  @. }, o                end;" w: y1 D) q/ M" p: k  H2 ~: Z
        end;
6 Y6 {! K$ r! T! wend;        -- of the method: g7 F9 f8 k/ F( g- I& \
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
1 z/ @$ y5 S" W1 Y* C
7 I7 e* n% i% R& v6 V6 e3 e8 D这是AGV_putin中arrive的method。
2 _' K+ e! F- x" @! X9 H9 E* y6 Z2 K* v: }
当到达物料速度越高时,这个报警更多,
& s9 I2 Y5 `6 r" S+ R可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
: w) o. W( A0 u! E. p3 d* A3 [程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?* W' S2 T9 I6 ?+ ]4 Z: P( X

- M# Y1 h, }! c( [: j9 A" ~$ h另外一个小建议,就是move,所有的move都可以这样  k2 A' p* G2 ~
if not move() then debug end
! ?& Y$ u! E  g- {5 n8 c这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。$ [2 h; t2 H& |" a9 j  x" z: Z
plant simulation中的free libraries有AGV模板,
( w/ n' M7 `# D里面也有案例。
# A4 |8 ~* r+ ]# [) g我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。3 T* \; N! ?* C/ n3 E6 M; @

, [8 `. _$ ~" X' K' l/ w5 w: d我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
( W- K4 I( U4 ?- N" H% m0 ~
+ L+ w# p: r. f2 M那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
4 U+ ]$ ?) X/ ?8 N: j( k9 i这是AGV_putin中arrive的method。- U' O& G! G8 v, j0 A  W
+ [7 B9 t& U7 y* @6 R
当到达物料速度越高时,这个报警更多,
+ u! I4 |  W8 ?4 @9 t& g7 C
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-5 15:22 , Processed in 0.015632 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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