设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6293|回复: 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'- c8 K+ s$ A- k0 q  B; h9 W
*/+ F8 }0 N) G! }  O
is
& k+ o% M( J* K        part, GlobalDistObj, assignLObj:object;row,Lan:integer;1 `" ?* y, @9 p
do
5 p7 J! h- G! T8 }" p) E        Lan := rootfolder.Internal.Tools.AOLlanguage;
+ v( X. d" X8 f2 N/ M0 N5 D8 ^        if current = @.Destination -- else return
* V4 H" H4 Z5 h9 P/ e        then
* L% d& Z" w$ _                @.Destination := void;6 V" _/ `  S+ F9 d4 e
                if @.occupied then3 J7 P' `8 H, n9 C+ o; m  L
                        part := @.cont;
$ l1 o$ z, {- ~# A$ M4 B                        @.transpOrder := void;5 ?% I* y* c, d2 f; ]
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,: {# S( o6 Y0 M
                                @,root.eventcontroller.simTime);
# h4 \  ?; n$ t  w' C1 q1 W3 X                        @.HasOrder := false;
5 M7 ~8 l4 ]8 t: t4 z                        @.DrivingHome := true;
; ~1 S3 x; c4 K6 [' [7 X                        rgManager.tryToStartTransOrder;
$ I/ N9 f! P( Y9 r! r" _                        if @.Destination = void" u4 Q7 L2 Q3 h" h
                        then -- no transport order for vehicle @
* v6 t9 u/ ~3 A8 S( u                                @.Destination :=
; @. T. o7 g: [                                rgManager.nearestFreeStation(@,track.~);
3 c! U7 X& q6 ~2 \: S5 ~% n, Z                                newDirection(@);   % b4 S- f9 F! ~2 t) i
                                if @.Destination /= void then  e/ d6 s+ l( T
                                        @.Destination.NumReservation :=
  m" c" _4 Y/ Z                                        @.Destination.NumReservation + 1;
8 [8 |$ f; T  M: e  v0 Q, V                                end;
2 S% A; ]! {7 o8 B, T9 j                                @.CurrIcon := "drivingHome";
% u1 j2 G( {7 @                                @.DrivingHome := true;- P% m$ h: z& {5 E4 g
                        end;
5 l0 ^% \- U- U                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
* z  G+ L: J. q! ^2 _, d8 Z. a                        part := @.transpOrder;' ?$ o) Q( R" W+ Q& S' A  |
                        part.move(@);-- load part% M  L- d* h) ?# T  c/ m9 h" z
                        @.CurrIcon := "load";$ A* `) z, g3 c5 d& }* `
                        GlobalDistObj := part.globDestination;4 w6 m5 l9 x/ q+ p2 g
                        assignLObj := rgmanager.rgAssignL;
0 M' d; x  ?$ B7 u' k- K' p9 B5 w3 K$ S                        row := assignLObj.getRowNo(GlobalDistObj);7 s! S$ A9 u/ g7 s
                        if Row = -1 then -- since 70
4 T) W% |  b8 x* b1 p5 T                                if lan=1 then' Q; }# }' \4 _* A3 ^
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),+ {7 U6 x: G. F( q0 e" H6 K
                                                to_str("in der Andockstation: \"",?.~.name,"\""));$ {* c! W) n8 H3 K1 Y: h8 f, B4 p
                                else) V$ x2 J: J* z  M2 V) v
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),3 b2 G2 w! ?+ ?& |, l# S
                                                to_str("in docking station: \"",?.~.name,"\""));                               
6 _0 E4 L, T1 X$ y% |8 v8 b- Z* T/ p4 I                                end;
1 ]3 b# O6 A/ o/ U1 w                        else
' e$ \( Q, O/ _, I9 f& _  V                                @.Destination := assignLObj[1,row];
5 Y7 Z6 Y. o" r1 g                        end;                       
$ d, J0 j& ?3 U1 r                        newDirection(@);
& l, {: M8 U8 b: P* x" m9 R3 i                        @.HasOrder := true;
  z  v. ~/ ^/ w7 K5 j+ e, J% Q                end;9 h4 G; {; }& W+ y
        end;8 Y" B1 W. s  _* X* n! {  j
end;        -- of the method( B% o6 ?7 l0 T/ F0 Z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑   l( {! O: E4 |9 x- E
/ S3 y% M( _" x' ^
这是AGV_putin中arrive的method。8 \' W, q8 _6 k( _* U; E2 D, j
1 G2 L2 k7 V" z' i6 I. a" L
当到达物料速度越高时,这个报警更多,
! a. G! P' J0 _0 d: x可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。. G% h  O0 I: d$ ~- T- |6 ~
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
4 {1 i+ L2 M" @) |. D
1 W" C4 B& D* @) p' I另外一个小建议,就是move,所有的move都可以这样
3 H- o9 }3 P- Z# T  {( C1 _if not move() then debug end' u0 \# o* u9 U
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
* o5 D7 Z4 |. C, L4 X+ Jplant simulation中的free libraries有AGV模板,% F) t& u( _$ O1 n5 m0 ]/ U
里面也有案例。
+ o! i$ I- T7 A* \; i% h: E) F我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。/ F/ Q2 Y9 X% h, U+ w
- I7 d( Z% f. y
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
" k# C& p) r! S: Y2 G
- z, A* v% R# G那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
+ Q& z2 g! t0 M这是AGV_putin中arrive的method。
, ~2 f) f- L2 b- n0 f; F, P/ i# {/ i8 ]* u( @' s
当到达物料速度越高时,这个报警更多,

* q9 |# h) K$ @6 H另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-29 04:27 , Processed in 0.016606 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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