设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6236|回复: 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'
7 ]1 ]8 ?' {) Q+ S, D, e8 \*/
/ m- W& ^4 a  \- Nis( f' P8 a, [. l7 z8 `
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;2 y- o% {  z  I
do
" w3 s7 H+ G+ r6 Y$ Y) ~        Lan := rootfolder.Internal.Tools.AOLlanguage;
! {4 u3 u0 n# _8 D5 I% Y        if current = @.Destination -- else return
7 w3 b2 Y0 G+ o1 v" _" q7 |$ B        then
3 h: p$ V/ M5 k                @.Destination := void;; R0 B3 G6 H) u8 {
                if @.occupied then
! q7 O7 V; P" y) v5 |$ m! F                        part := @.cont;( I* L. E" X8 z3 ?7 D% u
                        @.transpOrder := void;( z. `# T% h% Z0 i6 ~6 m
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
+ V* l* N# d5 k1 B" X. X( X                                @,root.eventcontroller.simTime);& t4 B: j9 Y! k3 f" i$ L9 p7 ?
                        @.HasOrder := false;
& c: ?5 B2 y0 Y( p                        @.DrivingHome := true;
+ e9 l( p2 f. _: d) X& f                        rgManager.tryToStartTransOrder;* m! O/ k) e, Y9 g
                        if @.Destination = void" z( K# ]9 [. I6 R0 `& A
                        then -- no transport order for vehicle @
; O' b7 a+ z! _1 M" c                                @.Destination :=5 F! G5 u1 w9 [( o5 G4 l/ V: O
                                rgManager.nearestFreeStation(@,track.~);4 F/ u' v/ {6 Q- P: L
                                newDirection(@);   
( o) q9 v$ {7 n' d0 s4 p                                if @.Destination /= void then
- o' O, Z/ L  ]" L2 d% l0 n                                        @.Destination.NumReservation :=
* \& A8 Q1 \8 m1 W& ?$ ]. h! r6 j6 f                                        @.Destination.NumReservation + 1;
2 x! R/ _' I( Z7 b                                end;* }# q# \' |. Q
                                @.CurrIcon := "drivingHome";
# h! t/ V7 x6 t                                @.DrivingHome := true;
1 n/ K7 Z% _4 p: x                        end;% I( C! ?5 y8 n0 i. @5 B
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
, E; j/ f; v3 ^                        part := @.transpOrder;
- T. q; |3 Y7 K- M                        part.move(@);-- load part
4 p  w  d+ p0 ]                        @.CurrIcon := "load";. n& d+ j7 b1 X2 y$ ?6 J
                        GlobalDistObj := part.globDestination;
/ q  o- r/ @& ~- _8 x5 x                        assignLObj := rgmanager.rgAssignL;+ d5 c1 F/ G7 r5 a  s5 l) H, g
                        row := assignLObj.getRowNo(GlobalDistObj);
" y  g* u) o1 w9 h+ y$ _                        if Row = -1 then -- since 70# V" Z  f: c, s
                                if lan=1 then
" I3 Y" \; \. j( n$ s* J8 |                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
% j1 H; Q& V, @2 r                                                to_str("in der Andockstation: \"",?.~.name,"\""));# S- L% b9 M" I/ t% t  Y$ _2 C
                                else
: Z, Y7 S( T. G1 {; w4 P                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),& P* ^+ K  _8 Y6 g" m
                                                to_str("in docking station: \"",?.~.name,"\""));                                ) F' d/ Y$ e3 }9 S0 d( D$ @1 u- l. x
                                end;
* ?9 i1 J" |4 G0 p                        else- C; [2 H5 X( j# A5 M
                                @.Destination := assignLObj[1,row];8 A& X; _* N0 d4 H% r' i6 t
                        end;                       
- H5 z7 Z$ E) Y7 _& d8 |& U                        newDirection(@);6 @9 l/ C0 M4 f  T1 F
                        @.HasOrder := true;4 {: O/ A& t4 R
                end;1 t& n* j8 n1 h6 n
        end;7 Z: q# T1 T2 J" I! V2 e/ m+ i
end;        -- of the method% y: d5 ]" D/ c# S( N+ [( [7 n+ B; K
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ! W; c; o' K6 m5 `6 X5 y

, v$ b' Y0 \# W$ C! r& |' w. S这是AGV_putin中arrive的method。  o- s0 k: J3 \: Q9 O4 r5 G; k+ R; U

' ^2 D4 W; H2 [& V. i0 W3 f当到达物料速度越高时,这个报警更多," c# Z0 I+ f1 ^! F# ]5 G7 y1 [
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。, N- F; d8 h1 i( C/ v5 Z! w
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?" v( K) E7 a; z" P4 A! T- S. z0 o1 {) N
/ X2 r/ k5 H- G. D
另外一个小建议,就是move,所有的move都可以这样9 u* I( U4 R  V2 u) d/ @" g' d' B
if not move() then debug end
5 M6 {, d- c3 s& e这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
) X4 @: P; o; v% x& oplant simulation中的free libraries有AGV模板,
* B" w4 j4 b0 o里面也有案例。9 w. W# r* j' j6 q' I3 l, J9 q6 e0 j
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。! R, X6 _* C' _8 j2 x
8 v: ~* H3 {$ f$ y/ N
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 " X3 z; a; M2 J& a8 I/ k1 M
* ?8 B3 e% }$ P! H2 N7 g& t
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
0 {5 c6 u; t9 a1 @) k: t; }# t这是AGV_putin中arrive的method。! C0 o; a4 c/ a/ _/ w9 X3 ^
7 V1 W8 d0 M) B) n0 D, y0 U
当到达物料速度越高时,这个报警更多,
) A2 V2 M0 I) x; W% {; O9 z5 F  I
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-26 12:36 , Processed in 0.024369 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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