设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6633|回复: 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'" r$ ]$ x) K1 v
*/6 U* s5 t( K" b/ ~- W4 m
is9 p( D" j' {% Q5 g0 ]
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;1 b9 ]& q% z) m; q) J0 }
do
, a  A1 e8 {# ?# I* y, w3 s        Lan := rootfolder.Internal.Tools.AOLlanguage;3 U3 X6 y* G, i# O/ U( ?
        if current = @.Destination -- else return
+ q" v: W% |( V( A  z( l$ q8 K        then
* @0 _3 P% O& ~5 Y% ^2 z' N* `* w3 r                @.Destination := void;
6 s7 c1 e4 {# c' V+ F7 N5 C) A                if @.occupied then
: x' W+ ~" s8 `# Q1 D                        part := @.cont;
5 P. g+ B0 q- }* u+ o% D                        @.transpOrder := void;2 |7 p, S" X* |/ f* ]4 g* W
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,9 A. `& u3 S! i
                                @,root.eventcontroller.simTime);( v# ]2 ]; l& h
                        @.HasOrder := false;) R: p: o/ M- ^! a
                        @.DrivingHome := true;
) k, ?3 _7 }0 n  I6 h* x                        rgManager.tryToStartTransOrder;( U: ^5 K* i( I2 ~
                        if @.Destination = void
- O' v1 _7 h% Y                        then -- no transport order for vehicle @
7 K% D- t9 W- O; @* A                                @.Destination :=9 R- K2 ^2 i; B- U& t; R& G5 ]
                                rgManager.nearestFreeStation(@,track.~);
+ T! t+ r5 E# P7 {                                newDirection(@);   
& ?3 X* A5 k4 t$ Z) t0 X8 ^                                if @.Destination /= void then
% x4 x3 v% m' I, W7 y) T2 R- L( ~                                        @.Destination.NumReservation :=
5 ^/ w9 L9 u" L# g                                        @.Destination.NumReservation + 1;
# ^% W# K4 {4 |0 J8 }0 I2 j                                end;/ n. I! r$ M' }4 a7 J
                                @.CurrIcon := "drivingHome";
1 ]5 j9 i! [: {0 X% m( U, N                                @.DrivingHome := true;
6 B9 u/ }; L( P! O2 A+ b                        end;) X5 N7 o( Q. E# ^5 O$ K3 Z
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station2 U2 R1 e. w& D: O
                        part := @.transpOrder;7 x( B$ c% A" Y7 O) k6 L; _$ v; P
                        part.move(@);-- load part
  ]6 e' K3 ^2 ~+ m9 S% a                        @.CurrIcon := "load";) G2 [1 i0 E, I% q- R
                        GlobalDistObj := part.globDestination;: O9 m' ^9 }. N! m* [
                        assignLObj := rgmanager.rgAssignL;
2 b; U1 S+ Z1 R! w                        row := assignLObj.getRowNo(GlobalDistObj);
& w$ @- k  a1 ~1 _# G  {3 q                        if Row = -1 then -- since 70, B6 O; |7 [: h  E5 y$ K
                                if lan=1 then
! c, M3 @5 ?: @" k4 L5 E) C                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),9 s" u  }6 k8 N: b/ X/ k
                                                to_str("in der Andockstation: \"",?.~.name,"\""));7 m' @) ?! `1 E* m4 C7 T3 O$ \9 h
                                else
/ k3 L% H; }: t- R3 E; c7 s. s: i                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),# H; O6 S/ H. y/ Z0 \3 W
                                                to_str("in docking station: \"",?.~.name,"\""));                                / X: t0 x% K' }0 @/ ~9 i
                                end;# @7 p* |% f/ Q9 a
                        else  |" x7 e7 t; {* d
                                @.Destination := assignLObj[1,row];
6 s7 E( o0 G; Q                        end;                       
" ]( A  \5 @: H& P5 ?                        newDirection(@);
8 y) y  O+ v/ f  A( Y                        @.HasOrder := true;/ G- Y& p3 q& U0 c, q) I0 N" ?
                end;
7 G/ n+ P7 x- A; F4 S. }9 |        end;
. g6 B& \1 @7 f9 y( Vend;        -- of the method" e0 |# }' k" H" _6 m
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
4 w/ A+ m9 a6 m0 S
% Y  B! c* I: v% |. g0 T这是AGV_putin中arrive的method。. O; U4 K+ u5 F( o

+ y- a8 f6 M( K( L当到达物料速度越高时,这个报警更多,; [8 q8 z, h" z1 N7 d
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
' u7 O, q7 ?( L程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?0 [/ R0 S1 S3 [, n
1 M8 e0 [8 i" A2 Y( b
另外一个小建议,就是move,所有的move都可以这样
+ p9 y4 b, T; R" |/ I0 eif not move() then debug end
/ p. \6 g8 f# v& ]8 p这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
( N; p, e. O$ q( ^0 l6 h9 splant simulation中的free libraries有AGV模板,+ z# [* D6 e  X5 w; w7 r
里面也有案例。
- g: J) y' v8 M0 j4 g6 e4 T我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
& \( L5 }* q7 {8 l
5 l# x5 P' j0 C0 f我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 : Z% M* ^) i+ [% o1 k/ y$ |

1 ]' h6 n/ h4 D: l, N' Y那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 8 Q3 [) T( {7 `6 ]$ p6 ?
这是AGV_putin中arrive的method。8 M$ m2 f- q/ g2 s5 q9 k: z
: _9 L4 f" k0 m, z( N; z+ o
当到达物料速度越高时,这个报警更多,

5 |; _7 P& A& `另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-17 15:14 , Processed in 0.028759 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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