设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7002|回复: 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'
6 U/ x7 \) g2 L0 A*/  y% m$ G! C* o) S' K7 G7 ~
is
# K' K+ u" T& o        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
& @& `  C' ]3 i" T# Q. mdo0 D# @/ z/ V8 d! p
        Lan := rootfolder.Internal.Tools.AOLlanguage;
2 T  g6 b4 Z$ T3 `; l        if current = @.Destination -- else return/ h# m) J& V$ }
        then
0 h( \+ w" B( \, u: V- ~! u- S                @.Destination := void;
# ?" t; p2 `4 f6 n7 i* v                if @.occupied then! ~) M- ]; E/ i1 {, @
                        part := @.cont;' P; K' E) k* i/ F4 z( {& F$ ~8 O
                        @.transpOrder := void;5 K3 t) A4 b. h* ]) ^
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
; `; L& p; G. B) n& [' R                                @,root.eventcontroller.simTime);8 V) ^6 F) q& F
                        @.HasOrder := false;
. F% }* m. K% A                        @.DrivingHome := true;
) u9 T+ H- I- o# c7 \% J                        rgManager.tryToStartTransOrder;6 K3 f7 m: U0 ?! T9 x  H
                        if @.Destination = void5 E/ j# k. B# K5 g
                        then -- no transport order for vehicle @
5 P  x% o& _) l; ]7 D                                @.Destination :=, v3 y8 _$ C' J& X! a6 p7 j, m2 G
                                rgManager.nearestFreeStation(@,track.~);
8 w0 N/ m4 x! J2 T* i                                newDirection(@);   * b+ ^$ A5 s% W; E" Q1 ]8 \
                                if @.Destination /= void then1 t3 d; {1 S' p* S  E6 }
                                        @.Destination.NumReservation :=& i# w0 v& w- q+ U# L4 j3 ~
                                        @.Destination.NumReservation + 1;7 o& i) ?  B# w2 _
                                end;
" R! T$ |! i& L                                @.CurrIcon := "drivingHome";+ C& R! ~: \: @4 p
                                @.DrivingHome := true;, i  l" `9 K. s" F
                        end;, X. Y9 t/ o1 C7 k0 Y  ?
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station* T% l6 \2 G; z( {* R+ z
                        part := @.transpOrder;
$ {  b# [' J3 q* U# m; M* P" |                        part.move(@);-- load part
# O6 g- E  G( l' n& ]9 D                        @.CurrIcon := "load";) K7 q4 w: a3 O. N% t/ v9 [9 W
                        GlobalDistObj := part.globDestination;; {  {1 T, z# }3 X9 I
                        assignLObj := rgmanager.rgAssignL;# Q! ?9 o9 b( r  r- G
                        row := assignLObj.getRowNo(GlobalDistObj);7 _$ {" r' Y* M+ |
                        if Row = -1 then -- since 70' h/ Y: e8 P7 M- U
                                if lan=1 then
8 _$ M" d$ c+ g2 R) n                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
# j) d: D3 N6 a' p                                                to_str("in der Andockstation: \"",?.~.name,"\""));$ r1 v0 b# ~$ {. F3 \) P& f1 @
                                else- Z3 B+ ?3 @3 p
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
$ \1 V/ j2 J% q) h& \1 O                                                to_str("in docking station: \"",?.~.name,"\""));                                2 m# D: E! c8 |8 Y; T( @9 A* W" \
                                end;
" A6 M9 T  u! U" B: j" e% v0 W: i                        else
0 C0 y. N' n$ O                                @.Destination := assignLObj[1,row];
7 I4 g" q9 k- k: [, S% c                        end;                        5 d+ i8 X$ Z( }, J, [( q  Q
                        newDirection(@);* f4 r2 C3 ~4 h3 P9 J
                        @.HasOrder := true;4 W/ X, a/ s7 p& c1 c1 ^% E
                end;$ Y) G: C% e9 q& ]2 w# h' D! }6 t
        end;6 f( J0 ]7 K' s. u3 i1 N; x
end;        -- of the method5 n$ K$ V0 D+ g; Z7 A) ?
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 7 }) c: ]0 F" ~& Y

3 V% \+ u( a9 u5 Z这是AGV_putin中arrive的method。
- P( n2 K) u, \) L$ S. J2 ], C
) {& `, ?2 v, r( b8 z) `" [' v+ |! Q% K当到达物料速度越高时,这个报警更多,9 s+ }# Y4 K  f* A, {
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。" |# i6 i0 ~! t' l. K
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?7 g9 v* P% `( k  K. `

6 V4 I# l3 K3 p& e另外一个小建议,就是move,所有的move都可以这样
; Z' T' E' A8 {) n6 v5 ^( I7 [if not move() then debug end8 _8 r9 H# s7 P1 @5 ^
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
0 |0 X$ A/ R- w- Bplant simulation中的free libraries有AGV模板,
, j3 G6 |/ P8 @# O, @里面也有案例。4 E0 e# A* W3 A, R$ K& g! c8 ?
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
1 h- ^  l) a' w. F% A; q4 X4 k) l! Y! g  l  M! R6 A3 d
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 + ~+ C) j4 G2 q. F; E) S3 I) t
' ]- C3 Q0 m1 h# K7 g" j$ V) |  a
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 4 M& k* D0 l/ I$ g5 q4 \& a
这是AGV_putin中arrive的method。7 m! k* _: K9 s
7 y/ k" \. P' O6 ^+ z
当到达物料速度越高时,这个报警更多,
$ L# v) r3 s& l) @1 P2 K
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-10 17:41 , Processed in 0.021267 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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