设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9953|回复: 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', p/ L3 M7 P( J
*/
) }9 Q) J- X% {4 o5 w9 Iis
0 C3 j; ]3 a& b) t. Y  j+ U/ z        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
8 A) H% K' i! Y- X6 i0 Jdo$ p& E' o0 ]6 m1 r( t
        Lan := rootfolder.Internal.Tools.AOLlanguage;
; `' g8 \8 R. d; l9 W0 K( J: U, e  F        if current = @.Destination -- else return3 y% K3 K. m( m$ U9 v# ~
        then7 F) u3 J3 z, K, C& N/ C
                @.Destination := void;) ?& _0 b: _" ?4 a, P0 f
                if @.occupied then
' W: J$ }4 p$ M" D  ^. t7 v                        part := @.cont;) D, ?9 y( n1 {' j/ ^
                        @.transpOrder := void;
3 r, x& J: O& j  t) ]+ K8 ?                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,) D1 J5 A" e/ h& e  I
                                @,root.eventcontroller.simTime);
/ [" m1 r/ d8 j/ ~9 D1 K- K' v                        @.HasOrder := false;
$ X4 n  I. f4 Z+ w! r                        @.DrivingHome := true;& t/ b( [- E0 ]
                        rgManager.tryToStartTransOrder;
- m( Y1 w$ D1 D, X% ?. ]5 K/ r                        if @.Destination = void
1 @& I! J2 a7 S8 y( N8 V% S                        then -- no transport order for vehicle @
, B/ [; k2 U3 f9 E3 T* N                                @.Destination :=% k) M3 D9 L( q  ~( t7 P& k
                                rgManager.nearestFreeStation(@,track.~);" |& {9 L. X  o
                                newDirection(@);   
' W' R- z* X- }" M$ ^) v                                if @.Destination /= void then
" V  K, x5 ~6 J9 c                                        @.Destination.NumReservation :=
% M2 x2 u$ C3 ^! d3 _5 G                                        @.Destination.NumReservation + 1;! h8 x& W( e2 y8 \
                                end;
4 Z2 G" |, y  d9 E3 w                                @.CurrIcon := "drivingHome";
  P2 _7 |" a6 X/ _                                @.DrivingHome := true;
2 a; B: Z6 x; i                        end;2 }4 c) e9 i  ?+ Y
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
8 G. ^3 ?/ B4 B3 R9 J' x                        part := @.transpOrder;' U4 s  i/ F& ?. c4 A6 c& ]
                        part.move(@);-- load part
. B+ }: ^* a! n; e, W                        @.CurrIcon := "load";/ i8 {- o" P: q
                        GlobalDistObj := part.globDestination;
0 n' x7 Y4 V& |* L                        assignLObj := rgmanager.rgAssignL;, k* r3 p, V" ^* Q3 {2 X+ r9 a* |8 `
                        row := assignLObj.getRowNo(GlobalDistObj);
. [- k  c+ ?' w  y) t, i/ N' c5 k1 y% r" ^                        if Row = -1 then -- since 70
" ?1 {% k! t3 g. u                                if lan=1 then
& S; m2 \2 m0 @  h, u3 j                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
. j) }" H, I; ^7 x                                                to_str("in der Andockstation: \"",?.~.name,"\""));
! h$ s1 V" U0 h( c; A                                else
" E+ S5 p; b4 M                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),( h3 e1 [) m7 k. O  x9 t" v. g: s
                                                to_str("in docking station: \"",?.~.name,"\""));                               
9 z9 y8 y& e+ O( h                                end;
& G4 K/ v$ \# f                        else( W$ n' v& }" |/ B
                                @.Destination := assignLObj[1,row];
5 U0 D8 |% B- a$ z1 S6 n                        end;                        7 S! q; f7 I1 T# Q
                        newDirection(@);
  [2 ]- a, u* R/ h! r3 u                        @.HasOrder := true;
% Q& n! o9 E9 \* a. S2 D' H# f                end;
: g* E8 w) V% [/ r$ X$ E! z" D: G        end;
* ]0 B# Z% p6 m$ \( ?. E/ xend;        -- of the method/ x, S) [* O; s$ o+ x
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
" D' @5 e! @$ l
9 z$ y1 }) u/ O& I6 X, |3 }$ E这是AGV_putin中arrive的method。2 }7 t0 b# k1 T+ \( P: P2 J0 r( Q$ E
6 ~. E7 o4 M1 D: H' J$ V
当到达物料速度越高时,这个报警更多,5 e& u3 }2 ]: S5 m
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。) P  p0 H; D" q. Z" e: t+ ?
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
/ f  x2 j/ I2 Q. W
  K- {8 n; z, b; P0 A另外一个小建议,就是move,所有的move都可以这样* I1 B4 v" s# U4 r- j4 e% |
if not move() then debug end
: ?/ Q) I( G! J' f0 U" `这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
4 X5 |/ y: j5 q- Lplant simulation中的free libraries有AGV模板,
* n- X  l9 A* ~+ \  }里面也有案例。# B$ X, x$ ?0 F* Y5 G" L* O
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。9 c6 g; v& h3 p. l. r

5 g# E$ h, M4 r我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 7 z) f. y0 s/ u1 x( S; m$ |+ J! D

2 M. B8 E' P$ l6 M% v0 p那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
" L8 J  b, ]1 @  V4 e这是AGV_putin中arrive的method。. y1 ?& C4 _! N9 B

; K+ d8 w- G8 l( T' W1 E" L当到达物料速度越高时,这个报警更多,
- W3 g+ a* o  `/ g/ M8 W
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-4 06:48 , Processed in 0.015745 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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