设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7990|回复: 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'
% W) A0 k9 `3 D. O  A( H*/
; ?8 ^- Y4 K* B- N8 ]7 Gis/ z( {! E, g% K: f
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
$ _4 v: x+ S) C, Q5 hdo
) s0 M* g1 l  H8 H        Lan := rootfolder.Internal.Tools.AOLlanguage;
( v2 I# y5 T" U$ n* X" _1 B$ v        if current = @.Destination -- else return" v. _9 G/ P. l8 T/ D6 K
        then
' d: ^2 a$ K% K8 Q                @.Destination := void;
/ x' n1 V# i2 [( Q4 S! L3 Z                if @.occupied then
" Z, R9 e- M" @* T, K4 {                        part := @.cont;
3 x9 ~; C  U3 R% F( ^& c3 J/ m                        @.transpOrder := void;- a# G( O6 i; _
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
+ q+ J( f. b( s3 e" ?0 y                                @,root.eventcontroller.simTime);$ W' t5 w, L6 w6 j* {$ X5 G
                        @.HasOrder := false;8 Z+ K7 }& j  N2 s' i7 z* A! P
                        @.DrivingHome := true;5 R+ H& Y1 s* j. r% e: L) ~
                        rgManager.tryToStartTransOrder;( y! b  _4 a6 Y! R5 U  L$ }
                        if @.Destination = void
2 C2 k" w; e6 C% \- S, T4 h& a                        then -- no transport order for vehicle @
: m% `( \  F& T' u  k3 f3 A, n                                @.Destination :=; _4 K, o7 l( q$ J
                                rgManager.nearestFreeStation(@,track.~);' P$ V6 g) u- m# D7 k& Z$ z
                                newDirection(@);   
; [& T% }" L. x- e, ~5 a+ R                                if @.Destination /= void then
. D3 f; u) r/ _$ X3 x: a: l2 f                                        @.Destination.NumReservation :=$ a% n) E. g  Z3 ~1 C
                                        @.Destination.NumReservation + 1;
  v1 U; m8 \3 ^, @: r& I                                end;
. E/ ~1 q! L7 _. `) U9 c$ J8 u                                @.CurrIcon := "drivingHome";
) f* i+ A$ y6 n7 c2 y7 G* T                                @.DrivingHome := true;
$ l& t9 X& S6 q' \& B$ `                        end;
! B3 _3 Q8 Y: A$ Y                else -- the vehicle @ is empty, both vehicle and part are in the same dock station% M" h+ W$ i: V' C
                        part := @.transpOrder;; b) ^  V% i/ L3 @5 W  e) Y
                        part.move(@);-- load part) s" k" o6 @% |/ e' T! Y- P
                        @.CurrIcon := "load";
/ g) k* k' |. d: X1 A& f6 G                        GlobalDistObj := part.globDestination;
+ N. C2 [1 U$ j+ r( j" X) Q9 I                        assignLObj := rgmanager.rgAssignL;
/ [# ^2 \7 {3 @: `$ u& y8 t( l                        row := assignLObj.getRowNo(GlobalDistObj);
% [9 s) W7 y% l& A! X" ?0 ?2 g; I! l                        if Row = -1 then -- since 70
3 }+ p: z1 R' @+ `$ Z' x                                if lan=1 then' v$ d- q9 @$ P" W; e6 U
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
6 n+ g, B7 P2 ]5 S$ L6 H                                                to_str("in der Andockstation: \"",?.~.name,"\""));
% ~4 }; I( s" m4 G/ _, y! i                                else' C$ ^) v( I1 `/ o$ e$ H$ }
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
- D9 K& N/ W) u( O. K# P! h1 ^                                                to_str("in docking station: \"",?.~.name,"\""));                                ! z" ?, t9 e* u- l- |
                                end;
/ u- a$ I$ v# \- P& W& o                        else
4 D0 h; u/ ^* K+ p* N# S, }                                @.Destination := assignLObj[1,row];
3 j. J$ o* B) M; ~# R: w- S1 i# }                        end;                        # x. h, a+ v2 g: F) X
                        newDirection(@);6 L. j0 F) u  G
                        @.HasOrder := true;; f' T& x) d4 S
                end;
  |) ^+ n. r  ]& O        end;
0 g# L5 d2 G7 }; aend;        -- of the method
2 C+ i7 w- y7 T
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
& Z( m0 A: _: t2 p6 J
$ i8 k3 C4 E- m3 V* G& r$ p这是AGV_putin中arrive的method。- x6 A" {( |+ U

/ B4 x" H2 j  {当到达物料速度越高时,这个报警更多,
: s, h! b- ?7 ~2 t可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。& P9 u/ [4 M* r8 t2 O. ?+ K
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
  o4 o: k: \; g" E1 ^! j/ R
" k- p1 m; ~" [; j. s另外一个小建议,就是move,所有的move都可以这样$ W* _1 i/ z1 k1 j6 R
if not move() then debug end
: [5 g* |- o( U: J8 O  ?这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
+ b1 J# |8 \& uplant simulation中的free libraries有AGV模板,
% ~8 T: A% [, P  Y1 Z里面也有案例。2 s; D: q, w# V/ X1 h! G( y2 m$ o
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。: }- j6 T) l- n) j. C
$ H8 d  r9 j3 S5 k3 n4 ~6 Q- d
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
! y4 {( l0 T2 T- H
: H4 n) V3 s) [  M那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 * g% f5 P8 p0 E% A
这是AGV_putin中arrive的method。: E. |" O6 i  f) M$ m5 c

3 l) X1 v/ L/ ]8 s- t6 T6 Z. |4 U当到达物料速度越高时,这个报警更多,
& P! p7 l! m9 w0 p9 c# y4 i
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-9 14:48 , Processed in 0.023096 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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