设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5205|回复: 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'4 z; R7 i' M) @
*/
- D5 r1 k, p7 k* yis. b* }4 ]( z6 a+ z% b
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;9 l" j3 b! M0 C' X) ~& n
do, ^. a% t1 ~1 I+ g5 M( I; B5 y( |
        Lan := rootfolder.Internal.Tools.AOLlanguage;
) w! a8 N+ @& }+ w' b        if current = @.Destination -- else return& a: s0 ~( m" v, X
        then; Q  ]+ j3 E+ B) K, G4 U/ C5 l  d; p
                @.Destination := void;
. F1 n/ `7 z+ L& V* H2 C4 w: Y0 l1 S' n  O                if @.occupied then. S* @8 J3 a# l' s4 t
                        part := @.cont;9 ^4 t  v/ Y  j
                        @.transpOrder := void;
' B/ j$ C$ k- a3 h- P                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,) G* b+ p! }+ U0 U8 a6 p
                                @,root.eventcontroller.simTime);
( R% j4 G! }) X+ R% j8 A- u( f4 D                        @.HasOrder := false;! @& d$ h: o/ h2 y) L2 w
                        @.DrivingHome := true;0 L/ R+ y! n4 @$ k: p6 u+ Q% K
                        rgManager.tryToStartTransOrder;9 ?0 q2 b$ J* q# U% R
                        if @.Destination = void* S, u' z. K* a! n9 N$ k
                        then -- no transport order for vehicle @; n8 o& X1 H: [
                                @.Destination :=
- m' {& M* h9 I" b. N                                rgManager.nearestFreeStation(@,track.~);( a+ ^/ F8 `  Q$ p- `4 J
                                newDirection(@);   
' q) l4 f. R% n0 r" o                                if @.Destination /= void then: D/ Q( T+ l) j' y- I
                                        @.Destination.NumReservation :=
8 h( `4 C) G' }7 w                                        @.Destination.NumReservation + 1;4 m. {6 U# h( b/ g) l( B7 r# G9 t& ~
                                end;
" J; Z& F  w% G3 o  f/ E6 c' G                                @.CurrIcon := "drivingHome";
0 S: z5 U- O- F                                @.DrivingHome := true;
/ @5 j: i0 O+ K1 W. Z                        end;# v, E) d( E: s2 d) [
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station4 D+ e4 F$ _0 `4 S9 H* Q% B9 O
                        part := @.transpOrder;
. a& e6 u, W. h7 t/ r! j                        part.move(@);-- load part7 K* k0 r0 O0 o4 w5 m1 R. j
                        @.CurrIcon := "load";- E  {- r3 p, U( l- }! w: V
                        GlobalDistObj := part.globDestination;3 ?4 l* ^. s7 n. ^( |8 T* P
                        assignLObj := rgmanager.rgAssignL;) ~5 j6 N3 t! }5 S
                        row := assignLObj.getRowNo(GlobalDistObj);
6 \. ^8 H9 W1 X' ]! E' u& W. ?                        if Row = -1 then -- since 70
7 ~+ k1 c) i9 g& M9 E" n$ I6 O                                if lan=1 then9 q/ |4 S; ]" y" j+ a
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
! J1 K+ O3 W1 D, \  H                                                to_str("in der Andockstation: \"",?.~.name,"\""));
3 T; F+ Z6 R" u' h                                else: V! A) ?! d( E) l) a6 b" `' n
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
9 v; e- D9 j+ }! M5 t# v& o& r                                                to_str("in docking station: \"",?.~.name,"\""));                                ) U  u# [& L) a0 \' h, J3 R
                                end;
' \! }" w3 L* [                        else. n- a' I) g) n% A7 q
                                @.Destination := assignLObj[1,row];: w/ t1 _3 \( x1 A/ D( D2 ?* r
                        end;                       
! \# j4 E3 X9 T: F+ ^! N* ]0 Z9 Z/ M5 r                        newDirection(@);
% w( A% K3 Y. Q9 ~: h4 D% D                        @.HasOrder := true;3 Y) m4 l( U) k3 Y5 K5 v
                end;
' A) I4 r+ f- ], ]. a        end;
2 Y- w) A' T& \" C% {! q$ }2 dend;        -- of the method) d1 k% M1 a" B" r2 D' p* _% {
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 3 ?* V" @& {8 p1 E- D% E
+ P$ ]" o1 P% g* r/ F* `2 O
这是AGV_putin中arrive的method。6 V8 j; z5 u5 X- x, W
. _5 Y& Y! G/ T' y& E' u
当到达物料速度越高时,这个报警更多,  l% X2 Q: c4 X0 o
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。. Q5 e# H0 x9 L
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?8 C3 H; i: n0 a# o# F

! O" i" c$ s9 s4 V另外一个小建议,就是move,所有的move都可以这样
9 ?* ^2 Z/ j' @, k" e1 c" jif not move() then debug end
) s$ p9 }/ g: E3 T& h- I) @这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
+ X+ S6 |5 [1 `: }' M' f" k; Splant simulation中的free libraries有AGV模板,
0 V$ n" ]$ D' I  r里面也有案例。" }7 E. B( P& m% Y0 }, @
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。- S1 K4 h% j) l  b4 ^; |

8 R$ m: B, l& E1 S8 D8 \我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 " r3 ?% n4 Y4 j5 C; L+ I& e
  k$ j# C; F& E7 y; G
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
0 K1 }& n2 _( i$ O6 O. c这是AGV_putin中arrive的method。
! l" c& K% C# i4 A; d4 n+ ^# B
# h' e' C, G" U+ }当到达物料速度越高时,这个报警更多,
& Y$ l( f, k* A+ u3 m! I
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-10-27 02:44 , Processed in 5.041312 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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