设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8955|回复: 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'0 S5 \2 t7 f2 [0 C' L
*/- ~  ~  b3 W& A& J2 M0 z
is
$ H! c1 {. V  k8 C9 M/ M2 g& w% d        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
. A8 _: x# ?1 G+ W) H4 D6 i9 Fdo
% `( x1 A+ k3 t, s/ E# c        Lan := rootfolder.Internal.Tools.AOLlanguage;4 a, s; E- K# |' t2 m! L( x
        if current = @.Destination -- else return" y2 Y/ U8 `! C; z1 T! C' S
        then
% ?9 g  B% L0 m                @.Destination := void;
4 @' n# W( W* Q                if @.occupied then
! ^* I5 d1 D4 H5 {6 Q7 R  v                        part := @.cont;( l/ Z4 `0 M1 |. C3 F/ [: s
                        @.transpOrder := void;
4 [- k* ~4 e7 h& b9 v$ P& ~" i                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,8 S- r" W) H7 k& Q7 u
                                @,root.eventcontroller.simTime);. z% [: E% J. o8 U* r( M* y  o) D
                        @.HasOrder := false;
# P; i4 N0 y0 Q1 T8 c                        @.DrivingHome := true;
" G! K* B4 ^- M5 `/ H2 d# }: }2 h                        rgManager.tryToStartTransOrder;7 h) Y" u  e; {
                        if @.Destination = void. t" U5 E9 g: T
                        then -- no transport order for vehicle @0 |0 ~+ F5 X7 w6 `
                                @.Destination :=
" r! o; f; a0 Z) O0 ]+ d$ ~                                rgManager.nearestFreeStation(@,track.~);$ L4 d! p! E1 }; \, g3 @% E4 O
                                newDirection(@);   . h) c7 F4 `$ |& u$ }# h
                                if @.Destination /= void then
, ?  {4 w% F  M; k# x* n& ]5 M! n9 S                                        @.Destination.NumReservation :=" j/ a9 D' v2 T3 M$ h' ?4 x" C
                                        @.Destination.NumReservation + 1;
; G/ L+ V( K; h. S! k                                end;9 U5 b; m. @3 ?+ a# E7 q/ G, [
                                @.CurrIcon := "drivingHome";4 X( U6 ?# F* Y8 z2 p6 I
                                @.DrivingHome := true;9 ^) A1 K$ k$ `( p( e) m
                        end;
4 H- D! B3 b) u% p* I' R( [' N+ ?                else -- the vehicle @ is empty, both vehicle and part are in the same dock station  Y) k0 n6 `( W1 F9 m) r0 N
                        part := @.transpOrder;
& e1 r) C) t8 M6 E* n: e                        part.move(@);-- load part
# X' t" u: B$ R; y% r2 M2 h                        @.CurrIcon := "load";6 q) I5 A+ A% T4 s
                        GlobalDistObj := part.globDestination;7 w3 v$ {& f- d! J5 h
                        assignLObj := rgmanager.rgAssignL;: w7 k/ t* y( o% o1 |) d
                        row := assignLObj.getRowNo(GlobalDistObj);9 a; d0 z0 u; x) s% C
                        if Row = -1 then -- since 70+ p9 V2 Z/ \: f- g
                                if lan=1 then+ `  v$ w% q/ Z! j/ q3 D! B
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
( k( F6 i" W0 Y2 l$ q) Z4 ?                                                to_str("in der Andockstation: \"",?.~.name,"\""));
- F5 |. Y4 n- p$ @0 Z2 Y% ]                                else8 O6 _+ r% i0 ~; S# R! F
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),* e* @: m" C- z, s( `
                                                to_str("in docking station: \"",?.~.name,"\""));                                ' G- a5 u6 H) |; i+ E
                                end;4 O5 H+ x" S* o  G
                        else
. h+ j, u" Y: A                                @.Destination := assignLObj[1,row];8 u, ^" q4 b- G4 c
                        end;                        & n( b+ l+ o8 G1 U, D% l
                        newDirection(@);: U0 f! [+ h$ f9 C9 C
                        @.HasOrder := true;# x) ^3 t4 W4 a% O# s/ G6 o0 i$ ?
                end;
+ \# \  A( O9 k7 k        end;
* T3 L. l8 }* Aend;        -- of the method9 C+ [0 T) d  t% r# M$ R
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 $ t9 z' `4 I) m4 K4 N- }& M
4 {2 b# [2 U$ T0 P: y
这是AGV_putin中arrive的method。
1 t! |& L- A. R, D+ E% P  M
* h4 S" A6 q& O, b& b1 o% I" m$ v当到达物料速度越高时,这个报警更多,
. _. A! J1 E6 [7 Z* E% M$ j可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。+ _! B, [" y; N3 Z* r6 y
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
, T$ c3 S" [  M3 B4 E
- `$ |: _8 t) k2 t' t0 [另外一个小建议,就是move,所有的move都可以这样% c; t4 O- K: y( Q: l5 M
if not move() then debug end
9 g6 N! y4 [0 c. x这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
  U# M# A- l, `- R9 z" Fplant simulation中的free libraries有AGV模板,3 G4 Z* ?9 N; S3 v; g1 q
里面也有案例。
. T: `0 \/ ~) \7 c$ N6 t& V" z& n我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
' @; o0 o! n1 Y# X
/ O9 F1 i: Z& `我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ( J2 |9 Q/ ]% T' X; Z7 J4 J
$ ]% s& U2 M" W
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 # o- H) F3 R4 x
这是AGV_putin中arrive的method。; h' n) p  Q+ e- F6 s% G- o; L

% g1 Q3 A1 }6 ]& e% C1 a' u当到达物料速度越高时,这个报警更多,
. i% l4 z+ U: W9 u5 n- `5 `4 F
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-6 06:24 , Processed in 0.021300 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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