设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8941|回复: 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'
% j; H5 j; O" m- e  t4 `*/; e! e0 ?( X* q4 L6 T0 F1 N  L
is* ?# s; H$ k/ Q) Y4 s
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
8 L* m5 k; s: {( Sdo
; R; ]- o/ q, L; u& ~9 `9 `( i        Lan := rootfolder.Internal.Tools.AOLlanguage;
1 f6 T8 A) B* m$ w        if current = @.Destination -- else return
- N$ m' L2 d/ X/ L/ c        then: ~& n+ W! P- ^/ s6 l: }4 F3 P
                @.Destination := void;9 k% O) d1 e( Y2 F0 S; L( W
                if @.occupied then
+ O4 H% a: s% G                        part := @.cont;7 G2 m4 L  R, q' q! q3 M3 k
                        @.transpOrder := void;9 z' v2 [) \7 O- d. e; [1 U2 X
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
& n9 [- z. l3 E- {( N  E                                @,root.eventcontroller.simTime);
3 r8 ]- T8 ]8 k  Z( c2 z1 T                        @.HasOrder := false;
% A1 ~; f" H& U0 ]1 g$ m                        @.DrivingHome := true;
: u, q. c' X/ W                        rgManager.tryToStartTransOrder;
. J9 }% n) H/ c" J                        if @.Destination = void4 u9 n, H2 s& h: z6 a
                        then -- no transport order for vehicle @7 G  o( p% a! ^
                                @.Destination :=" K/ Z2 N: W: s! _6 X
                                rgManager.nearestFreeStation(@,track.~);( p% _% |2 @/ U9 M
                                newDirection(@);   
! d9 g1 t8 m0 H7 {& s                                if @.Destination /= void then& A: B1 H4 O& g  ]+ O
                                        @.Destination.NumReservation :=# I- h1 Z( k/ ]0 B
                                        @.Destination.NumReservation + 1;! _2 }, q$ d5 V5 i
                                end;. s, K) \6 W3 _& C0 R8 A2 f, J: _; C
                                @.CurrIcon := "drivingHome";
! e5 W, Y( n4 n$ Q                                @.DrivingHome := true;0 k+ \3 x& O: \# Q5 A" ]
                        end;
- W/ Z% z* A9 j6 W& x9 U                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
: u8 t- Y" D6 x                        part := @.transpOrder;0 y2 j9 I! u! i
                        part.move(@);-- load part
! _' [# {; E9 m3 n" Q* u( e                        @.CurrIcon := "load";0 o0 w' J8 [  }5 e* B. c- N
                        GlobalDistObj := part.globDestination;& n, D+ s* r2 ]% ~
                        assignLObj := rgmanager.rgAssignL;
3 K' T9 Q4 x9 |1 W; j& k- N  y                        row := assignLObj.getRowNo(GlobalDistObj);! m; P5 J, U5 X, \
                        if Row = -1 then -- since 70- p& K* W! Z: G: w
                                if lan=1 then
! D3 D9 A: ~' p* i* V                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
+ C; C+ g) E' M0 E7 K4 L  `1 Z                                                to_str("in der Andockstation: \"",?.~.name,"\""));, s- o5 K' g' ?/ w8 t& _* Z. M( i3 x
                                else- z1 V  S  r( J7 c0 E9 s( U- R
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),% t3 M# v- p. v. q, w% ~' ~) r. W
                                                to_str("in docking station: \"",?.~.name,"\""));                                & A3 C5 U, d1 a7 a
                                end;
" r1 N2 X0 V5 V" y6 `. T; e7 D                        else
6 a; g( [% C1 n1 T                                @.Destination := assignLObj[1,row];' j1 c. l* k) ^% ^9 K/ K
                        end;                        % y1 `8 c& `  Q, u4 D
                        newDirection(@);% J5 J. h4 P' f* K+ r
                        @.HasOrder := true;
& j, `( n* |5 `) E7 g" a                end;. ?9 ]: A0 ]6 h& N: e' t
        end;- e' J3 g" u) k
end;        -- of the method
/ k4 s7 ]9 D) F5 Q
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
* G( O, p8 p' T# {6 Y  v
3 Y" q: }; _7 d8 p& }5 [这是AGV_putin中arrive的method。
: P( n* ~3 A# {0 J  D$ p
' h, K" i! {' r) v; h当到达物料速度越高时,这个报警更多,0 y1 L% }4 D$ r6 c9 J
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
7 Z3 n: n" m0 ?* |# z$ m# I; X程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?# g% x7 Y6 f+ F) `
0 E' F# W! j( u. K6 o
另外一个小建议,就是move,所有的move都可以这样
! U9 D1 u( E  H/ i( }5 bif not move() then debug end; f# V2 ?& V& C
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
& I/ O: \1 h3 {plant simulation中的free libraries有AGV模板,
- [$ N1 ]5 k# _6 r/ Q( i里面也有案例。
# {& Z, }( Z! ]6 T$ Z) ?  `我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。$ {  Q7 a& e+ F9 E
' X; X- p* x4 }0 f4 X( R  z
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
* c8 S+ I6 H; k9 r/ z* m* b9 N# W- O# }3 Z* ^, k' W  T9 T$ a8 D
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
8 a* p/ K' h6 y* [这是AGV_putin中arrive的method。
, o# T: ]' k; c8 g* F8 `' q: T
当到达物料速度越高时,这个报警更多,

' z4 q1 H; p7 u. S# I' f. C  q0 B9 N另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-5 11:11 , Processed in 0.014815 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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