设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5583|回复: 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'+ C# q6 Z' M$ [
*/& @3 W4 \, C0 D9 m3 G
is
" G. e& p- {$ n! R        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
9 A  K7 _6 B/ ?8 P% r2 O) qdo& l" k, P# r/ u( e; e
        Lan := rootfolder.Internal.Tools.AOLlanguage;
, q) ~* a6 d, U/ p( \        if current = @.Destination -- else return
2 E+ N7 ^$ t) n        then
4 p" }# n1 ~' ~9 u+ ^  @0 I! x0 c                @.Destination := void;1 C" ~) G3 \8 v  G. g$ B2 T
                if @.occupied then5 |# A3 L: l2 G2 }, j) n1 W# q/ g
                        part := @.cont;
. e% M: O; l4 G: g; F; S                        @.transpOrder := void;6 q# Y( C$ l; _
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
" e7 ^+ M9 D2 Q) r9 O- S4 W0 l9 s$ ?                                @,root.eventcontroller.simTime);
; W+ j$ H; Y4 P$ o( c                        @.HasOrder := false;2 h0 e) @) w$ a0 h: K  n& B* P
                        @.DrivingHome := true;
# c* m/ d: l  J7 B0 j! \                        rgManager.tryToStartTransOrder;, D7 E7 l/ Y1 u/ k: A1 J
                        if @.Destination = void# ^: x$ n( C0 L2 @. P
                        then -- no transport order for vehicle @; |9 P5 Y7 v$ a/ T  U
                                @.Destination :=
7 C6 \1 Z) ^7 [                                rgManager.nearestFreeStation(@,track.~);0 o" Z3 }, n  }  G$ o6 S4 ~
                                newDirection(@);   
4 e0 x+ t1 H! l' ~' U! A* z                                if @.Destination /= void then) y& I" @; q* \. \3 @+ Z' M
                                        @.Destination.NumReservation :=
$ B7 ^; l0 O+ n# m                                        @.Destination.NumReservation + 1;% }0 }; g( Y3 o: F
                                end;7 \) k  o( N5 _; Y* y
                                @.CurrIcon := "drivingHome";1 u. j8 {, z/ `  A
                                @.DrivingHome := true;
  P% _# G+ }! I1 Z                        end;# E& U" b# I3 k  ]. L
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
/ W4 P# K) m1 {2 B. E2 a                        part := @.transpOrder;
9 {+ L* U! Y+ f3 ^, c                        part.move(@);-- load part
: `2 z& K4 r! G                        @.CurrIcon := "load";
7 d# }0 d3 U8 [* y6 J0 Z                        GlobalDistObj := part.globDestination;
9 ~0 q0 p- r5 \& E( T                        assignLObj := rgmanager.rgAssignL;& S% D0 t) X% c$ ?6 L
                        row := assignLObj.getRowNo(GlobalDistObj);
! X7 {* S0 @1 {                        if Row = -1 then -- since 70
2 s+ L1 x2 @8 \# c7 p  ?5 A' V                                if lan=1 then5 F- D" y3 i6 }# t. k) b: C, K
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
) k" ^# o: I8 S                                                to_str("in der Andockstation: \"",?.~.name,"\""));
' L  |# T7 k9 R                                else1 u  c1 F# o( Z1 ^! f
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
) V1 O2 n) i; q" p1 [# m* v                                                to_str("in docking station: \"",?.~.name,"\""));                                8 E; v6 z, _3 |6 Z" x, y
                                end;; N1 a6 T2 \! E& o3 R1 R+ B
                        else& x  |! b  y" \& c
                                @.Destination := assignLObj[1,row];
6 @* g7 e/ E4 E                        end;                        6 t# S; z9 [1 `3 E$ T
                        newDirection(@);
' \5 i% K- Z; z                        @.HasOrder := true;0 X" }0 f' `! P8 o+ N4 F2 w
                end;
( q2 p2 t6 F  [, Q8 Q: W        end;/ b! l/ @' s% Z* P
end;        -- of the method- `' V* V2 o; O6 V. b* f9 W
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
; K% N. {1 q/ Q
6 _/ {  E  G5 |1 j6 K0 y6 V8 w这是AGV_putin中arrive的method。
9 w; o& ~/ ?6 b  J0 I; A/ s1 V0 z( x9 h0 [* @/ b8 F# ]) A
当到达物料速度越高时,这个报警更多,5 d- Z: C  u9 Q/ w" k# i# F
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
" k; G# x: P7 s8 h程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
/ ?2 K( V4 T/ \" j  C8 o6 A" f3 m9 N: x# Y) M- s
另外一个小建议,就是move,所有的move都可以这样
8 j- N4 C& h0 Aif not move() then debug end
% |" s. K5 g* z3 s; D这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。0 V2 A8 |+ ~3 @: \1 p3 F' x  V
plant simulation中的free libraries有AGV模板,
, X  V1 D( h: w* C/ m4 W0 V里面也有案例。
$ y1 w# r* p& A" Y" b! O8 y! b我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。, l1 p) ^' Y4 {$ X+ s" C) `
% h2 k7 @2 Y. G" T
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
, w  f6 n2 m! V! }. K1 n* I1 K0 s+ w. a3 Z: f: J# }) K3 c
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 / w# i1 ]; _7 p, H
这是AGV_putin中arrive的method。
* H8 g4 u6 y# _0 O" K6 h1 V6 l! e, Y5 r0 K3 o) r
当到达物料速度越高时,这个报警更多,

7 V; l7 T6 C8 L. C7 Y& q另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-7 04:57 , Processed in 0.019366 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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