设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5529|回复: 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'
3 U: R# J, S  V2 H. u6 Q*/
0 w( T# I. e# Q3 g+ p* r2 Eis
# {2 r$ V! t: Z$ s" k5 d4 O4 M        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
( `* x$ F9 @! P- cdo
+ ]- G8 A& s+ A        Lan := rootfolder.Internal.Tools.AOLlanguage;
9 F1 E& \* V8 J, \; h        if current = @.Destination -- else return
# R5 z' g5 B' e: @9 n7 ?5 \' J+ @        then6 ]; _; c- C4 n: _6 |/ c
                @.Destination := void;9 }, T+ E/ f  i3 D$ H4 H
                if @.occupied then; B$ h% @1 J, s. x$ _2 U1 W/ f. ^
                        part := @.cont;% `; \( v& ?/ A* d- V; ]  f
                        @.transpOrder := void;
6 a8 [- |7 O: R8 o; a+ b                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,. Q2 ?& e/ V+ p6 [2 o& w; I4 C; T
                                @,root.eventcontroller.simTime);
# ~( n8 P& W3 C, [1 n                        @.HasOrder := false;) V: N2 R5 L2 F
                        @.DrivingHome := true;
0 V5 a6 Y& _9 p                        rgManager.tryToStartTransOrder;' Q/ b; u; i( R$ |0 J
                        if @.Destination = void" z; C" c- ]3 g7 c
                        then -- no transport order for vehicle @6 d' F, a1 n6 o- A, Z( h7 t$ p3 y
                                @.Destination :=! L/ }# F3 k  O# I
                                rgManager.nearestFreeStation(@,track.~);& B! s$ X. n( p; G/ w! G
                                newDirection(@);   9 T7 D8 }) Q5 F- s% y8 Q
                                if @.Destination /= void then; p% S9 K9 H4 z  }3 c. C; W& g2 L
                                        @.Destination.NumReservation :=! {& m% s7 w3 q2 j
                                        @.Destination.NumReservation + 1;' C2 g! l/ `. o4 t; l+ ?
                                end;! \( t: \9 E/ ^/ l6 }( S0 W6 b
                                @.CurrIcon := "drivingHome";& z- n. g# P% ~) c; ?% w4 L
                                @.DrivingHome := true;
1 V0 j  m# \8 D( y/ z, X6 z; p                        end;
4 N' h- }1 w8 l/ j8 h  o                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
8 U7 B' t' @& O% K0 l% }                        part := @.transpOrder;
9 ?4 h1 b1 Y4 d1 Y6 ~                        part.move(@);-- load part
' H& h( U/ m# M1 ^7 {0 X8 I                        @.CurrIcon := "load";
$ d) Y* I- I  a' I( k, t9 p                        GlobalDistObj := part.globDestination;
  X9 H7 R5 K& w8 l4 D2 i$ p                        assignLObj := rgmanager.rgAssignL;
% |9 w' X& Q2 `9 h                        row := assignLObj.getRowNo(GlobalDistObj);
8 D& y" u1 k+ ~& I, T                        if Row = -1 then -- since 70
- M$ i7 n: l/ J9 ^                                if lan=1 then
' {9 `) @$ o& y' K: h6 _7 |8 L+ z                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
: Y) w  ~$ P! q* r& o                                                to_str("in der Andockstation: \"",?.~.name,"\""));" }% H8 I8 {0 U  O0 [
                                else
& N6 u3 y5 l# y) D  f2 k& i                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
# i! E" ^( s$ K! M                                                to_str("in docking station: \"",?.~.name,"\""));                               
7 _) ?0 M' |7 f                                end;
3 ^+ U% s5 H" E1 L1 y% H4 k                        else
7 \) t, F9 P9 S; g" e9 g8 K                                @.Destination := assignLObj[1,row];
" {, g9 ~$ f2 R1 P                        end;                        4 v3 e2 q/ E1 X5 q/ y  L7 H
                        newDirection(@);
6 U% i, z; P0 m! K) [3 w7 b3 t                        @.HasOrder := true;" K# N, O$ L/ r$ \# }8 k
                end;
" e$ F/ T- R# Z* {: H        end;
3 `; e. N! P" z# \' d% lend;        -- of the method
$ f6 q* N9 q. _( X$ u
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
. i2 S; L8 Z6 v" X# V2 P6 J1 }2 A( Q7 X4 c' q; p
这是AGV_putin中arrive的method。
7 k8 n  X4 n+ I  a& _3 v" b6 Y) h6 f4 u
当到达物料速度越高时,这个报警更多,
4 `/ ^% C; j: _5 O/ A可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
% E; g# B- O6 s* O& m3 e) H程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
, M; t" j# z: P% @7 E1 ^/ r5 _5 Z, {5 i1 W) I7 g4 f1 u3 @
另外一个小建议,就是move,所有的move都可以这样7 S; o' O/ W- Q9 ]
if not move() then debug end! B* h% ?- E5 a* @& ^; E' z
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
* {& G! }* |, R  _4 Oplant simulation中的free libraries有AGV模板,4 n3 K" ~) c, Z5 \  V) F/ U& ]
里面也有案例。! O3 D( x) l/ L3 z& S3 l& l
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。  @0 q" o8 s" Z" ^+ U9 _
( Z' v# i% G( K0 A  K. U4 V. M
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ; c/ c/ j) x, z( d$ h( ~0 U
, ?5 b! q& @) ]% t8 w4 Q
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 & n+ L$ {- C8 b$ n" \
这是AGV_putin中arrive的method。
6 Y# |- c2 D- w9 V, v7 G! J) D! P: U2 j  P  O5 Y1 o9 V& M7 o: h
当到达物料速度越高时,这个报警更多,

0 w8 u1 F6 Q# e. y- ]' Q& H6 E+ ~另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-2 06:33 , Processed in 0.021402 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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