设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6541|回复: 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'
, X1 {" f6 W9 Z1 R- O*/3 `: V8 u/ S1 I8 r
is
  S) R& @+ @8 D9 L5 H        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
) L( t+ e7 o/ E4 P) Rdo' n- ?$ A. p0 R4 N" @
        Lan := rootfolder.Internal.Tools.AOLlanguage;
+ b9 b" K4 ~  D: B4 h' Q        if current = @.Destination -- else return" I( @8 u5 @! [( Q% {
        then/ X: m& ^+ y7 P! i8 s5 ]
                @.Destination := void;  O# [% }+ X+ ~/ ^
                if @.occupied then7 s  }  ]- b! c* {9 U
                        part := @.cont;
- w' K  {  p& r, J' U                        @.transpOrder := void;8 v% _1 _; d5 f
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,+ L/ m8 b: e; R3 Z6 i  V. V
                                @,root.eventcontroller.simTime);0 ]1 _/ m: M% Z% u
                        @.HasOrder := false;
) f( d7 f% H) l7 @                        @.DrivingHome := true;
# D" E+ k9 _7 H                        rgManager.tryToStartTransOrder;
/ j* c5 H% W  r6 O+ k9 W% M- f                        if @.Destination = void
- e3 f' {* e! P) u2 y, g6 D                        then -- no transport order for vehicle @( r/ e+ r! u* k- |6 d
                                @.Destination :=3 b9 E- g5 t% F
                                rgManager.nearestFreeStation(@,track.~);
5 E- t. }' N2 R5 A0 g/ n                                newDirection(@);   
. Q! m, I  W0 ]. M8 `+ I                                if @.Destination /= void then6 I, h  H; w' |0 ~+ _; v* D/ ^, a
                                        @.Destination.NumReservation :=% j1 c9 @% p4 o
                                        @.Destination.NumReservation + 1;
/ p& h; e8 i2 K                                end;
7 V; ]1 B! l; S  X7 |5 ~- \                                @.CurrIcon := "drivingHome";
2 E% A" g9 D  i7 t2 L( q                                @.DrivingHome := true;
- \9 B. S% }% R& @: o* C5 H                        end;
) j' a! c! z) Z& X2 O                else -- the vehicle @ is empty, both vehicle and part are in the same dock station4 z7 N' w1 G9 s! ^) K
                        part := @.transpOrder;, O8 U5 g; _/ e7 J8 [
                        part.move(@);-- load part2 Z/ P7 ?$ d* J, L' s- v
                        @.CurrIcon := "load";
& a0 P& F- f8 ]! ~. m                        GlobalDistObj := part.globDestination;
; D) d( U% U' ?" X/ ~, ^; M# Y! M                        assignLObj := rgmanager.rgAssignL;
1 N4 H9 M. g& c3 t) u" i                        row := assignLObj.getRowNo(GlobalDistObj);* R. g6 k' a  M% P( }7 i
                        if Row = -1 then -- since 70* i  @, J( \) b3 P! q8 n$ J8 {
                                if lan=1 then8 V$ N9 Z& A' I- @* r# \
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
7 V, C" {  }  G6 f                                                to_str("in der Andockstation: \"",?.~.name,"\""));1 @6 F& I3 j" L* |* p
                                else2 E: T' Z/ v! A* }9 t; V8 g
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
& L: e2 d5 h0 p# C                                                to_str("in docking station: \"",?.~.name,"\""));                                ( H6 E" q, O/ q8 s& n  s$ v
                                end;
, K/ K9 v3 ~1 k. x. z% i                        else
" A* @8 U7 F/ ^                                @.Destination := assignLObj[1,row];2 N; m0 K+ B+ W: A) ?* \. q
                        end;                        & [" a' J. o2 e1 }+ y- h3 K  R  p4 O
                        newDirection(@);# E* [7 h: k6 X. X* k5 O2 s
                        @.HasOrder := true;$ R, X8 w% z2 s9 i6 }* q* @' p
                end;# w9 A+ A6 P/ q/ ?
        end;( J* O" q/ h. ^% x
end;        -- of the method
* c: {, U& ?5 j9 s; i  K
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
7 r. Q; D  P' T
# _$ _- _0 k  O2 l1 N这是AGV_putin中arrive的method。
3 H) ^# j  g! }! F! I* [, s( p
7 ?4 x9 e& W) X5 S- u1 ~当到达物料速度越高时,这个报警更多,
5 X- {0 M) ?' s) x1 @+ }可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
; O+ w, |; Q7 f* [% A$ D程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
: H2 C/ ]3 n1 V, m; n9 R# z! w8 _; _* b+ F- G% O* _- K
另外一个小建议,就是move,所有的move都可以这样
  _% v7 A# s: b+ y: U% o* fif not move() then debug end. v' e- S- W( c  S# ?* }# C
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
* k3 j. p# z4 l6 uplant simulation中的free libraries有AGV模板,
* D; I8 \7 i/ V( Z里面也有案例。" R5 _9 G& @3 n
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
$ I* x8 \( u# l$ N' y: [( B# S  U8 c, d7 A/ ?" e
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
" ~( G( D% Y( A0 k7 H1 D* M0 G9 D4 o: L# T5 e8 p8 k' e
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 & j! p- {+ Q" g! @% R/ S2 w
这是AGV_putin中arrive的method。6 G2 E0 }' M4 F1 E; I# C

& U$ s' b4 S& i$ V" W/ g* A当到达物料速度越高时,这个报警更多,
3 o4 p  T) \; F' @0 Q6 }9 a* U
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-11 22:08 , Processed in 0.019528 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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