设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7225|回复: 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'
" O& ?; w  M' n/ @; [" J* o+ X*/8 g/ W. t) C6 H* k4 h
is& C  f% T! w$ Y4 d; z# N% ~4 h
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
7 d# l  G. p, u1 z6 g1 Pdo. k. ^9 k+ J- X) \# e* U
        Lan := rootfolder.Internal.Tools.AOLlanguage;
" O, ^9 M3 j3 W4 X5 Q3 t        if current = @.Destination -- else return
! p% i% g0 ], Z4 d; @: v, W        then
- H& R- f6 H. P& m" G% A                @.Destination := void;
" j8 x+ ?2 D( @* v+ L                if @.occupied then
. j% ?' o5 Y4 V, l$ i5 }                        part := @.cont;. u% w- [% w% w# M1 X% t. e
                        @.transpOrder := void;
' G8 _2 _( ^& t  V' o: M" s7 S                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
& @& o  Q# O5 W/ S  A                                @,root.eventcontroller.simTime);
- M$ P% }5 J% w$ p! X6 _                        @.HasOrder := false;
) ^- G1 Y8 o+ ^5 c; S" C6 y                        @.DrivingHome := true;, ?" d# i- n; Q$ d8 \( |! v- K
                        rgManager.tryToStartTransOrder;
8 E/ C3 H  }+ Y, D7 f                        if @.Destination = void9 v& W# u& K( k" [( v; l
                        then -- no transport order for vehicle @) }5 o0 l, m  H2 K1 d
                                @.Destination :=
9 b  I% x. u+ a9 a6 \$ l                                rgManager.nearestFreeStation(@,track.~);, b2 w# @( y/ F' y- H, f. a$ Y
                                newDirection(@);   - f( e( }1 R; k7 {* E, F
                                if @.Destination /= void then
3 Q4 g1 d/ l1 v) |; X. w& {8 k                                        @.Destination.NumReservation :=: v7 @1 d. I& @5 F0 i! H
                                        @.Destination.NumReservation + 1;: f5 T8 d, `# ]9 Y1 S' @$ \2 B, V- {. |
                                end;
( u4 g& j# }7 ]' i9 ^                                @.CurrIcon := "drivingHome";
( a4 I/ y& m0 b! X                                @.DrivingHome := true;5 T4 ~3 V4 c$ X7 ^2 ~7 D7 P; O8 h: M
                        end;
7 I: Z5 E) |1 f                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
1 S: ?& H) K8 m4 b                        part := @.transpOrder;1 y. Y1 Q# e  V0 K; J
                        part.move(@);-- load part+ x  `/ x% [. g% _
                        @.CurrIcon := "load";
& ?4 O+ X2 k9 Z% d% e% d                        GlobalDistObj := part.globDestination;
( \' q) F* N0 _4 }, d4 Z3 s                        assignLObj := rgmanager.rgAssignL;
, T: ]+ ]' S6 n                        row := assignLObj.getRowNo(GlobalDistObj);1 B8 w7 K% B. n2 ^
                        if Row = -1 then -- since 70
3 Z3 c6 h6 l# ~. l                                if lan=1 then: m. ^4 G/ [6 \* y# h8 _( l3 T
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),/ h6 V: \2 Y! H. t
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
: B" v8 ~8 o9 i5 z  d6 z: v1 g                                else
1 P4 ]( ~" M5 r; V                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),& z5 O9 V8 ?& D
                                                to_str("in docking station: \"",?.~.name,"\""));                               
. R" i+ g, W- g- @1 `' x0 s                                end;
& x, O6 P  W8 T. K                        else3 I* \% s( F5 Y
                                @.Destination := assignLObj[1,row];
! A7 Q9 T2 M0 |& y; Q+ y                        end;                       
, x* r- Q! p/ t0 y0 i2 D( b                        newDirection(@);
3 P/ e" ^: _9 B8 \6 |+ F5 J1 I                        @.HasOrder := true;5 I) Q" ^, j* U, I4 K1 ~6 `, ]
                end;; g9 Y6 V. x: p* W( \- j; [- H: t
        end;! m) d7 g) T! b8 ^, r% d$ j
end;        -- of the method
7 w& ?4 _( r. I' p- B+ ]  y  [
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 5 J2 C9 f5 H0 k% B4 a

7 g1 Y$ S" }( j- n6 _7 _3 A这是AGV_putin中arrive的method。
! w% f" M' t8 k9 I' d6 e- o: D" r) u5 y% x1 R$ k/ }+ g
当到达物料速度越高时,这个报警更多,! n9 }$ p, {$ P, I  L) Z7 i4 P0 W
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。. f' T* w7 t+ W- f: m, z% y
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
3 q4 v! F- w: ^% d" s; k6 n  M) _$ F
另外一个小建议,就是move,所有的move都可以这样
$ }8 O" E' M8 e+ T8 R  Sif not move() then debug end4 I6 w( `& _$ V  K) \
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。0 z7 s9 l1 q+ q3 [
plant simulation中的free libraries有AGV模板,
2 v! X! X7 N5 B) B2 h里面也有案例。
2 W; n% H9 e/ W0 r  K我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
0 S* \, O6 Q7 L$ ?# A$ H; G8 b  O6 k) _. K/ q( M" B
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
- v3 r( p' A8 n& Z( s7 `2 Y( Z& b- R& Q
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 , u- D+ ~) a$ n
这是AGV_putin中arrive的method。
5 r4 _( \- D- u$ I( W& k' L/ {+ P. A7 C: U4 _! Y* a- G; @" c" B
当到达物料速度越高时,这个报警更多,
0 D9 V1 C' ~$ E: p8 j1 i
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-28 19:28 , Processed in 3.700290 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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