设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6949|回复: 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'
: U* t0 u2 a5 T- E. d*/0 U% t+ @7 ]' ^) [1 ^4 h
is
2 X  m. W: J( r! T$ _        part, GlobalDistObj, assignLObj:object;row,Lan:integer;% y: f+ s. S7 B* ]$ ?" p
do5 q1 l( \, |: b) u1 ^
        Lan := rootfolder.Internal.Tools.AOLlanguage;  f* k! j9 O( F. j
        if current = @.Destination -- else return6 A" S5 m5 A# F" t+ }
        then
9 n- G, L% M' f) G" k                @.Destination := void;
- p# `- H: `: ]+ x; F# X$ U6 F                if @.occupied then  H( @$ a* z7 g# H+ f; ^
                        part := @.cont;
) q, l5 F; _! b% N. T) @5 h                        @.transpOrder := void;
: t5 Z8 T: B" C9 h                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,. w9 N- G) L5 \" L4 c
                                @,root.eventcontroller.simTime);
$ t+ n7 Y, X  }/ w                        @.HasOrder := false;
5 I" a3 q. [  t& _0 S$ k8 d                        @.DrivingHome := true;, a' t. i/ m8 [
                        rgManager.tryToStartTransOrder;
$ K( t  i: N( H8 [( G                        if @.Destination = void2 b! W# v" X$ ?% ~
                        then -- no transport order for vehicle @
7 Y! ?+ D! U  L4 y" k/ P                                @.Destination :=" S! W3 A! j/ |  i1 Z) F; A
                                rgManager.nearestFreeStation(@,track.~);
2 w) \3 a8 U4 n! L/ n6 W8 v                                newDirection(@);   : j7 O4 V5 y" [9 V1 [
                                if @.Destination /= void then
( {: A$ T! L6 Y+ ~6 u0 h; q# m                                        @.Destination.NumReservation :=
! B+ ]7 n5 G9 |' ^/ b2 O0 X                                        @.Destination.NumReservation + 1;( g( m8 h  H# O) p+ Y% y
                                end;6 V2 b/ A7 O4 h. J4 A
                                @.CurrIcon := "drivingHome";* M& b+ B& x7 ^# T; H
                                @.DrivingHome := true;
+ j9 D  `! y; M                        end;
, }. m+ v; j4 q2 e: o                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
* y3 C1 @3 j/ i7 q* X7 Z5 S                        part := @.transpOrder;
, J& S* w6 E* ]; s6 D% B+ m                        part.move(@);-- load part2 i! v9 ?8 ~- |% U- E
                        @.CurrIcon := "load";
$ h1 `% ?2 Z5 h! H4 U                        GlobalDistObj := part.globDestination;2 h* T* X  H% F5 T/ C4 F  D8 `2 T
                        assignLObj := rgmanager.rgAssignL;
  T7 T8 y2 @* r                        row := assignLObj.getRowNo(GlobalDistObj);
) v, L: P' P, z  C1 j2 r5 Z& I; V3 o                        if Row = -1 then -- since 70
. z% p8 M- `' m                                if lan=1 then+ e* m2 C& q# O7 N$ z3 S, Z
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
, A2 W! [9 x0 K0 l7 z2 W6 l6 F                                                to_str("in der Andockstation: \"",?.~.name,"\""));
1 @8 G9 j) Y3 G( W- q" [                                else
1 k" L) Q& C0 e: I4 I1 v' P                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),4 H) J7 j- W7 ~7 O' V4 g
                                                to_str("in docking station: \"",?.~.name,"\""));                               
% m: K, s' t% _+ u                                end;
' e0 _& L1 ]1 Y2 S                        else
5 V) P# U* P7 |' w0 }0 B; {! o0 N                                @.Destination := assignLObj[1,row];
9 ]9 L5 s$ w3 D8 J                        end;                        4 ^- H4 t& j3 y! `
                        newDirection(@);& `  S5 r- {) B, d5 H7 C! D2 i  T
                        @.HasOrder := true;( U2 ?( U- @/ r$ L" Z2 T
                end;
9 `6 v+ @8 i- ?3 `# X2 X- m1 f        end;: S5 ^+ g- l9 G, O
end;        -- of the method3 A) G7 d, G1 \/ u' b, k
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 " k( X  p( w7 O. F: ?4 E, K
! S! Z. N% j2 ?. |' `/ Z0 ]$ H
这是AGV_putin中arrive的method。4 G( k' S1 g  V5 \% \9 q
0 j8 q% V3 R' m% @
当到达物料速度越高时,这个报警更多,$ U- P  M/ q5 q: d* p# p8 {' B
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
' W6 g% u7 c5 M' F' I8 w* K程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
/ {6 m# {" O) e. V) ~  O
3 m* a+ b6 e. I: q1 X9 d* T9 ]1 ?另外一个小建议,就是move,所有的move都可以这样
4 T: Y' j2 o( {+ `) xif not move() then debug end' j& B  E5 q; o9 g$ q0 Y
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。' C$ E4 m$ u% d0 T+ k3 W, d& \% }
plant simulation中的free libraries有AGV模板,
; m- E3 B0 V" u3 m) l里面也有案例。3 J( f" B' M5 ^/ c
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。- d$ Y  I. o9 @! J1 J% u
* R8 J; b9 Y5 V) O  S7 D
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
0 ]" i8 I8 Z- k! ?  f4 A6 Y* r6 x  u
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
& i4 {, H5 J! f  j这是AGV_putin中arrive的method。
/ J+ p9 s- |: I$ u
- n6 v& M5 s' Y0 ]; ]当到达物料速度越高时,这个报警更多,

) k3 W4 x, W4 t% X& A  z- f; W另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-7 20:00 , Processed in 0.016207 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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