设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6763|回复: 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'0 @1 `& ~& X- C( [
*/  J; p& d7 x5 P& ]1 u! j
is
3 T: E' n9 y  ^6 j( n3 a        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
: E8 G- f# q! g$ v, a/ fdo
2 q) l' s) D* A$ U! B        Lan := rootfolder.Internal.Tools.AOLlanguage;
9 v; e1 w1 u3 x  k* D* K        if current = @.Destination -- else return
* y1 g3 v( j( v4 U+ w3 ?( f! D        then! h1 d! `4 `/ b+ E  f7 L
                @.Destination := void;9 ~' v' f; T8 y0 R* y8 v# q
                if @.occupied then
0 I; w- |" W) Z/ G& e0 ]! B( \                        part := @.cont;
5 t: O0 l; ^( t& T+ ?8 i4 ]) p                        @.transpOrder := void;
) r7 s  K1 h9 M  L) N                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
% n( n$ W) H5 @$ \" c                                @,root.eventcontroller.simTime);
8 I- n8 f" W" ?) f- r. l( u& G                        @.HasOrder := false;; N% D' O2 q% D" P1 y9 y& I5 D" ~
                        @.DrivingHome := true;' G1 a* }2 m* O5 X' j8 O  x
                        rgManager.tryToStartTransOrder;
, w$ O. V+ r2 f: L0 [  v# X& F                        if @.Destination = void
1 f  V: B9 d* V6 X# J6 W. z% L1 Z                        then -- no transport order for vehicle @7 e; V- h' M& B5 J$ S! I
                                @.Destination :=
8 y* x  O' D% n; Z+ J" ^& |                                rgManager.nearestFreeStation(@,track.~);4 {) e, F2 P  U4 n$ ?2 C7 q% y7 R' t1 R
                                newDirection(@);   
. @/ N0 o1 z- Q                                if @.Destination /= void then3 j$ D* X: l8 s( n! s$ Y, r8 Q4 l1 i
                                        @.Destination.NumReservation :=" q- L$ \( l0 p* ^# r/ T0 {. n
                                        @.Destination.NumReservation + 1;: ?% I4 [4 B$ W3 w3 q" ?5 Y4 A" ?
                                end;
4 l8 @$ h- A# c! ?& K  h                                @.CurrIcon := "drivingHome";
' ~+ E( c! w& g* w9 r1 ]/ e                                @.DrivingHome := true;
4 @8 j5 F+ A5 g2 O" |( i                        end;7 O( u; h" t- p* u: V
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station2 a+ r% x2 x' `9 U
                        part := @.transpOrder;( R& ]. e- g; g% C% `
                        part.move(@);-- load part
: A/ r" z7 C) T, M7 \* k5 j                        @.CurrIcon := "load";) h& ?) F" I/ @' e+ ]# W, z' M6 w
                        GlobalDistObj := part.globDestination;* `2 E& m- c' F6 Z; w
                        assignLObj := rgmanager.rgAssignL;
% V7 z/ [& n( w+ p' y' N                        row := assignLObj.getRowNo(GlobalDistObj);  h- E2 d$ {: D
                        if Row = -1 then -- since 707 F. Q- w, C, u8 D, Y
                                if lan=1 then  Y" m, x: `8 d1 L( d9 f
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
7 U# }. w0 l# e% q* S% o  M                                                to_str("in der Andockstation: \"",?.~.name,"\""));
) ~; F6 [8 }$ s; i; b, @                                else2 Z- b9 R" G4 Q. v  E, Z+ V
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
" Y7 ]- u2 A/ E# X4 @0 |6 o                                                to_str("in docking station: \"",?.~.name,"\""));                                8 ~  G& o  p6 a; v
                                end;, b' O" }9 H+ ]" e; U- b/ }
                        else' o1 s  J- z% [3 e" y, W7 U  }" c
                                @.Destination := assignLObj[1,row];, _  L) H9 n6 M8 ?& D& Q2 j" \
                        end;                        $ ~. H# @1 m: S; v
                        newDirection(@);
! r  A5 T  i: W! T9 ^                        @.HasOrder := true;
* \" F. r5 v; W" j% p$ X1 h                end;* z: ~) {( @* e
        end;5 ?+ @  e: l7 ]1 f# Y" X- s
end;        -- of the method
  y; ?  x( y7 S6 ]
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
% u, D. M4 b& L2 X
- c3 x0 w9 R6 E4 Z$ X3 b这是AGV_putin中arrive的method。! e5 @/ ?( Z* `2 W, @$ [6 ~+ R

7 u5 Q0 p* w! F* ~9 ]/ p  ~当到达物料速度越高时,这个报警更多,
' T8 a7 ~* }' t2 l; W可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。9 I* K) E8 ~/ u; k5 a% t
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?. j  A- Y4 \" w' ]( h

. h! k1 e. Z/ o另外一个小建议,就是move,所有的move都可以这样
, R9 p: z8 _9 m8 q9 Y7 R, E; Rif not move() then debug end8 q0 N3 e( w7 m% I" r
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
& |3 R9 F' E' Zplant simulation中的free libraries有AGV模板,
7 M0 z" D% E: ?: M6 T3 V# V里面也有案例。
# [& @! {! l" |( R& S8 _( o2 _我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。- i  Z  E& X; Z7 z0 b
4 d, [9 d: C9 p1 F
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
9 r: j. t, e, M2 \# b4 J+ F; `8 ^1 c1 @0 v* E' Z8 C" W, I
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
  i5 l, }8 O# q6 l# x! ?# ]0 f4 {这是AGV_putin中arrive的method。
, g/ |9 D) Y+ o! G2 ~0 b8 G- o6 _
8 r' N7 n. ^( }$ G当到达物料速度越高时,这个报警更多,
" u7 k: w# a; e' q
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-25 09:19 , Processed in 0.018018 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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