设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8946|回复: 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'1 e# t1 B! F) x
*/
. }8 F. O1 t( m. ?* b( o% H2 m9 his& y* P- R' E  G% _  K" s; h
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
# d) j. ~6 h/ u  Xdo% W. v4 a/ E# h. E6 \, x6 e
        Lan := rootfolder.Internal.Tools.AOLlanguage;. a6 f$ D' ^/ n! l2 I' Y
        if current = @.Destination -- else return
1 J3 B4 ]4 D  v9 L/ I        then
% S4 v" E9 Q  g! F0 E                @.Destination := void;
( x/ @; |, R/ c9 B                if @.occupied then
% y, @4 G; ~0 {' o9 l                        part := @.cont;
( W+ `* G, V$ y  ~' `" s                        @.transpOrder := void;
& v# J- c8 j: [* d" d                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,- {( u5 t+ [1 `$ j& g
                                @,root.eventcontroller.simTime);" t1 {1 ~& l, f+ _0 k
                        @.HasOrder := false;
1 m3 ^. d9 J7 F9 k                        @.DrivingHome := true;
0 [' j6 d7 X3 Z# A7 w                        rgManager.tryToStartTransOrder;
' u8 c, Z- V8 L8 l7 w9 J/ M* f                        if @.Destination = void; |6 {: c1 f) U
                        then -- no transport order for vehicle @
% v9 [4 w' [) R9 r# X7 F8 N8 E                                @.Destination :=
; _( p5 c6 O4 A7 X3 l                                rgManager.nearestFreeStation(@,track.~);
+ v, z2 |& W6 j) R" ~4 w* |                                newDirection(@);   " m3 x8 \' I. d6 n
                                if @.Destination /= void then2 V+ N9 X0 w* e+ i0 X5 j( S+ G
                                        @.Destination.NumReservation :=
6 u  q  [2 [+ u                                        @.Destination.NumReservation + 1;
$ k4 H1 B% Y5 \9 x4 Y8 a2 J                                end;+ R8 }- N! O* N
                                @.CurrIcon := "drivingHome";
. u2 @# |; G' l' `                                @.DrivingHome := true;
3 Y8 B6 _! J0 B: N9 e8 j                        end;: j. u2 K% [7 q2 Y" o
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station2 J* U9 T# Q: Q
                        part := @.transpOrder;
' G) G) f: d! m" X8 P; ^8 b9 _( L                        part.move(@);-- load part: p2 ~9 I  y3 V' E8 u" l
                        @.CurrIcon := "load";4 o% B& b7 r7 ]
                        GlobalDistObj := part.globDestination;# k9 E0 `: F/ v$ O0 x. e
                        assignLObj := rgmanager.rgAssignL;
. p1 O' r1 a& v                        row := assignLObj.getRowNo(GlobalDistObj);5 x/ A' B& G# E5 g  q: k7 u( N
                        if Row = -1 then -- since 70, G3 c% n3 l' I/ l( c/ s# B
                                if lan=1 then6 \  d9 w! s" ?5 C( T- n
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
# G5 r: e  M. H                                                to_str("in der Andockstation: \"",?.~.name,"\""));
3 v1 C  f$ ~* o2 }# M* C                                else. o; Q0 h! O* l! c/ m
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
5 m4 X4 _% [, l6 P0 U- w* n( H( h# @                                                to_str("in docking station: \"",?.~.name,"\""));                               
/ y# M2 U9 l7 Q- K; J, B" P                                end;* M& K. K% ^  g1 P/ j
                        else
+ W; I, u% i) W9 D2 e+ f$ X  i$ Y* e                                @.Destination := assignLObj[1,row];
$ d7 t  E7 B1 n                        end;                       
  N& x2 x; [" L) K                        newDirection(@);
" L+ h, H' l3 o- ~                        @.HasOrder := true;! R/ \7 `. Z2 q3 F# Y$ E
                end;
1 c8 [! ?6 @0 M' w1 p        end;: p2 x. b7 j2 ?2 m4 N% R7 b% p2 x7 f
end;        -- of the method
" v5 ?  w3 E( j/ O9 C, G
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ! `. H5 E5 [# s9 }9 z9 j
/ o# i2 I! J  L  j- p4 O4 R7 V# n
这是AGV_putin中arrive的method。! Z0 P* F( v* I" h4 a- X
. k7 \, i- o; x+ }. [' s6 ^
当到达物料速度越高时,这个报警更多,/ d$ M: t! s3 l, t- \" B
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。/ Y1 O# @% d/ S9 s6 p: g! m
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?: H5 Y; |& T! K& N
5 v' V8 c7 f5 @" B; W+ j2 E' m& z
另外一个小建议,就是move,所有的move都可以这样
- f6 g8 z$ P9 F$ W2 E- B) sif not move() then debug end
( p3 B$ i6 l5 N4 c; U这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
. q4 W, b2 ?8 {' m2 Dplant simulation中的free libraries有AGV模板,
! K: {. j7 X; P2 P9 C里面也有案例。
3 j* z8 A+ R8 ], c* M- P1 O7 ~我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
4 H) Q5 M* R' s; D; Y- Q: V( d3 e, p
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
" l' g' r8 k/ i' l- M) ~4 u" o6 }; U4 i& U& b
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ( i& W; V/ N& W5 L) ^2 Y3 N
这是AGV_putin中arrive的method。
5 |% o5 ?1 Y' p6 c9 {0 o% e
# Y2 f. l5 z7 c' @1 h当到达物料速度越高时,这个报警更多,

% }$ w( g6 ^# W, Z5 o另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-5 17:49 , Processed in 0.019308 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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