设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8443|回复: 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'1 Y7 j' a% r- ^6 _9 O! ^, g4 g$ N; R
*/
& x% S0 K9 L8 \. Y0 M; P. cis
/ w" r' n9 {% \# ~$ l        part, GlobalDistObj, assignLObj:object;row,Lan:integer;8 X( r: o1 a8 L# V
do
6 Y( G. L/ o: |8 a        Lan := rootfolder.Internal.Tools.AOLlanguage;
3 y7 [# n; y1 {7 R5 O% \9 v" j        if current = @.Destination -- else return
( m# \; w( X# d8 C4 u7 _        then' U+ T3 J" x& }* B+ C
                @.Destination := void;: ~5 L5 B) L3 y# E0 T/ Y
                if @.occupied then, }; x! S. |4 W8 D+ O; q
                        part := @.cont;( J) B' i  G2 r1 s
                        @.transpOrder := void;
  I+ @/ p; l& K+ P                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
4 u9 T/ ?/ H3 e( j9 P% M                                @,root.eventcontroller.simTime);
* r4 ^6 b8 n+ @. k0 h" t) D, w                        @.HasOrder := false;8 m# K7 c+ `- C; R
                        @.DrivingHome := true;6 s/ R# v+ ]8 D2 _$ Q1 e
                        rgManager.tryToStartTransOrder;3 @$ |! Q& s% A$ c; g
                        if @.Destination = void
7 V  M3 G7 s/ G                        then -- no transport order for vehicle @
8 |2 \3 D! s% b7 L3 K. K- Q                                @.Destination :=
# _7 {. N  E7 c" y* Z* }2 j! ^* T                                rgManager.nearestFreeStation(@,track.~);( n3 [& H6 s- o& D& f" N* W3 t
                                newDirection(@);   7 B; D0 X% g$ \4 R2 w9 I2 I2 h( Q7 S
                                if @.Destination /= void then3 R3 z4 b, ?) C0 Q4 R" s
                                        @.Destination.NumReservation :=. C- C% ~3 n3 _7 Y. y
                                        @.Destination.NumReservation + 1;& _. A0 Y8 m% G' f8 k
                                end;
! |9 [& g% T1 n7 u, J1 Y/ m# P4 k                                @.CurrIcon := "drivingHome";2 [2 O! E7 F% B
                                @.DrivingHome := true;. e: s1 B3 [8 d$ Y$ i' f
                        end;: A- A( p0 B! O8 W! A) W
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station: Z7 L' F; _2 C5 l" u4 Z; }  _
                        part := @.transpOrder;
# i/ Q  ?, i% N5 ]1 Q$ ]% ^" d- M                        part.move(@);-- load part
1 `* r0 z1 o1 {6 w                        @.CurrIcon := "load";9 N) |3 Q( }1 ^" G2 n
                        GlobalDistObj := part.globDestination;
  j' a' l; h8 y) y                        assignLObj := rgmanager.rgAssignL;7 t/ o) ]$ L* q
                        row := assignLObj.getRowNo(GlobalDistObj);
" L) i9 G9 T! U7 t' E3 |                        if Row = -1 then -- since 703 d: H. @' ^  |
                                if lan=1 then
. D; X7 C) @+ M" W1 X                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
# M/ L9 }; Y, |, v% ~% |" A6 n                                                to_str("in der Andockstation: \"",?.~.name,"\""));
7 j" y6 ?6 R7 a3 B; O5 o  a% d' h                                else
* Y% C6 V$ v& o! C, d' v) M" E                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
2 \7 {' V/ a; U( v) `                                                to_str("in docking station: \"",?.~.name,"\""));                                % r- q2 ?3 _" q6 w
                                end;
/ ]2 V3 q6 p9 }' L  R* W# v                        else
( Q8 W$ L# K- B0 @                                @.Destination := assignLObj[1,row];1 S$ d/ J0 W& t7 i6 u; u( q
                        end;                       
/ R; T$ Q1 ~4 w' B                        newDirection(@);
  R: M5 O; h. K                        @.HasOrder := true;" Q" }; F2 \) P3 Q5 f( ]$ `
                end;
4 X) j8 ~* o3 I0 }4 j        end;" J* j6 ^* e. M: J
end;        -- of the method
) R7 B& {; a4 [. Y  ], a* ~: x, q6 d
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 : e6 U3 k; {6 q$ i1 ?: }9 Y* w

6 ^8 i* k4 h. {" o4 R! g这是AGV_putin中arrive的method。) P* f" V+ C0 T/ J2 X' T1 a
5 I! Z) Z0 K9 G& N3 K
当到达物料速度越高时,这个报警更多,0 _+ U8 ]2 T" W- Y+ b/ T
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。1 Y$ G# Q: c. n6 ^) J! i/ N
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?' H8 f  m, \$ I3 m( b8 Z

" R- Y* s/ F3 J$ f) X: x5 ^" K9 D另外一个小建议,就是move,所有的move都可以这样% ]7 `, z6 C' |( X0 B0 q
if not move() then debug end
) t7 o! F. E. w* n这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
# r6 O8 J7 `$ ]. n- Cplant simulation中的free libraries有AGV模板,
/ D$ n6 f2 m1 F5 U里面也有案例。
: R, f( e; ~" A! i( P$ ?( w我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
; |! q7 r* s: X1 \, A% p
; q9 B, ?9 @9 \$ ]6 S6 F, V我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 / L  p8 y. b: M  h8 S/ v1 ^, D

! z2 o5 ?# M; @! F% R6 m+ V. k1 Z那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
+ {" Y. M) S9 G9 l. z这是AGV_putin中arrive的method。
8 T! h0 C7 D! R# \, [$ X7 m/ U" N5 Z/ v, v; A2 J
当到达物料速度越高时,这个报警更多,

( h8 v. s# a: f另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-4 08:36 , Processed in 0.018286 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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