设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5904|回复: 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', ?( I( C- h6 R; L: z. E) b  O
*/
5 r7 L* g. ^3 s- sis
, t- f0 j8 u$ a2 E3 |$ o        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
1 v$ y; e9 M2 K% M0 ~do
- z" Z( L. X9 Y9 z' x3 H4 g) B& L        Lan := rootfolder.Internal.Tools.AOLlanguage;8 G$ n6 J  @4 [9 g  W: L% F
        if current = @.Destination -- else return0 B0 p4 x& i9 a* z0 k) p
        then% V/ P! [  i% q/ T' C% ~" V8 Y
                @.Destination := void;6 v1 u& V) @- N
                if @.occupied then" ~) q8 b5 o7 J; ^- M- ^
                        part := @.cont;* l) }; G' l1 i) N7 |
                        @.transpOrder := void;, S) s# B, H. ~5 r/ |8 q
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,3 G# I4 u" j4 R( a# f
                                @,root.eventcontroller.simTime);: C) }+ E0 p+ t. m
                        @.HasOrder := false;
! v" F* j& q  {' q                        @.DrivingHome := true;: o7 y. U. Y& ^" Z) u2 n( J
                        rgManager.tryToStartTransOrder;
2 N2 Z/ |& Q% D/ Y* f5 y+ P( W                        if @.Destination = void' ?% O* }4 }/ M: X6 t1 L
                        then -- no transport order for vehicle @0 B  |' A/ y$ J
                                @.Destination :=
( R/ l' S" D7 H& B( y                                rgManager.nearestFreeStation(@,track.~);4 B+ P: e/ Z/ U# _$ {
                                newDirection(@);   
' W/ v& P0 q: E$ Y9 `" e0 e7 X                                if @.Destination /= void then
; ?1 T2 p7 M* ]' Q+ l8 m                                        @.Destination.NumReservation :=
, k: Q! N/ q1 O; r! h; t                                        @.Destination.NumReservation + 1;! L! ?+ u9 a' |0 A' t* @
                                end;* I; t+ r0 N: i+ z* l9 ^
                                @.CurrIcon := "drivingHome";! v" ~/ G! z! Y5 O* ~6 `& P
                                @.DrivingHome := true;# V0 t& j: Z5 q1 @" ~# |- A
                        end;1 @+ F7 P( k8 z; O
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
: i* N5 c2 O" N: o* [/ H                        part := @.transpOrder;
/ H& M3 V$ t" j- s( f% w                        part.move(@);-- load part
9 r4 _" [5 L" W  \5 x' h: j; ^/ B" U8 d                        @.CurrIcon := "load";
" g1 l9 {* Y  U! x: t. X4 ?                        GlobalDistObj := part.globDestination;! E: s5 ?9 W$ ]7 ]4 y4 U2 v
                        assignLObj := rgmanager.rgAssignL;
- M8 k1 r3 N0 ], C( U3 v                        row := assignLObj.getRowNo(GlobalDistObj);
( s- M! R3 H9 V# o2 T% j, A' ~: x) e                        if Row = -1 then -- since 70
9 l0 v" `6 G- `& H# ]/ d                                if lan=1 then" {0 M: `2 y  y& m0 K% F
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),8 M# r. H' n; G) h9 d  F
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
2 ^3 V% C  v6 E0 U4 W                                else3 t# m' Z, Z6 _# }. g& E% Y, x) M  f
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),5 c6 L* d& `! R
                                                to_str("in docking station: \"",?.~.name,"\""));                               
0 G" g: ?: h  c7 a, L                                end;
! w# X- {" V3 h                        else
# Z$ K2 @* j# `) U- I1 i                                @.Destination := assignLObj[1,row];2 o  E. w! I' c( Y- i  w- |
                        end;                       
  Q5 E+ g6 W' h: T0 D: _1 w                        newDirection(@);* K" H( o6 ^9 f7 ?% o& v3 T
                        @.HasOrder := true;5 H- K5 j$ D0 ~1 e4 m
                end;8 C! {! U0 I+ h9 e6 c
        end;8 o/ U* W* y- V  ^6 F& R* h
end;        -- of the method
; J4 v) }7 U7 O4 G$ t- E& j/ @
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 5 _% G0 I; z4 b$ R: H- p* c7 w, y

% f* O5 \2 ^2 B; g7 J这是AGV_putin中arrive的method。$ M9 T# @( J2 W9 m
( a. x; |0 g6 Q2 k5 B$ m3 c
当到达物料速度越高时,这个报警更多,
. ?+ H$ y  `/ G, q# U1 O可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。$ E4 ?+ O# t' ?3 k% `5 j5 v
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
+ L5 X6 W- C4 v3 Z& I2 M6 |0 x) B; N6 T
另外一个小建议,就是move,所有的move都可以这样
! s6 h5 y& l; E7 z1 p. h. B! j) |if not move() then debug end
2 r7 j% t) e# X, c9 k5 W7 ?这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
& R3 k; Y4 W9 ~$ Uplant simulation中的free libraries有AGV模板,/ e7 f. W7 }+ G/ L3 a- w% `
里面也有案例。  Z* M; i7 k4 A) X' l5 A
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。  z6 G+ S3 E) Q& h( n

! Z4 Z2 Z" n4 v% N我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
' i5 h* w8 J# B( x1 ~0 F+ M
9 @: p" m/ S+ h  `0 {7 k# H; r那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
/ s# o, \8 y9 @这是AGV_putin中arrive的method。
. F! G1 x/ {* N: q0 G4 ~: _  A6 C+ _* x3 B8 o
当到达物料速度越高时,这个报警更多,

: @5 \% c$ o8 J另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-31 13:15 , Processed in 0.017366 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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