设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7523|回复: 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'
* \. d7 p+ d! `6 I6 D; _*/
. c# u1 J- Z- J- N, i: f" ais
/ ?6 K. \; P7 v        part, GlobalDistObj, assignLObj:object;row,Lan:integer;; r. G- T9 j8 d* z- g7 D
do% d1 n* }- I. [, V9 p$ S
        Lan := rootfolder.Internal.Tools.AOLlanguage;
$ |: J4 M: ^& @6 s% T  y6 b6 W        if current = @.Destination -- else return
, i& t4 Y5 K0 s( L3 W% G, \        then
$ S( G8 G9 i& x1 g                @.Destination := void;" o/ j1 m7 E: {3 g# }
                if @.occupied then
  K$ w9 _! \' `. o. x4 b. B' N                        part := @.cont;( H' l. ]. Y2 k
                        @.transpOrder := void;3 O7 c/ I+ b$ ]& B$ B5 W7 D
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
$ o9 O3 P; s8 w- e, p* i$ p. N                                @,root.eventcontroller.simTime);1 @& m) R% j: I7 f; k
                        @.HasOrder := false;
6 m" K: j- ~" v2 _                        @.DrivingHome := true;2 {4 H' `2 N6 I$ W; |
                        rgManager.tryToStartTransOrder;: t7 |' J# o: v) y5 T! ?
                        if @.Destination = void. a1 d/ L) Y; W3 Q4 s
                        then -- no transport order for vehicle @: ?% w/ P8 `4 L7 ?$ m* `
                                @.Destination :=
' F- \0 j* F) a+ Y" k- ?                                rgManager.nearestFreeStation(@,track.~);
+ L6 @: w) @( ]' W( I                                newDirection(@);   
" F' l! ?, X  Y                                if @.Destination /= void then
7 x! t  O* Z' [% g! x0 F+ j! A                                        @.Destination.NumReservation :=, k- E! k4 q6 m" r8 Q: {% k3 c- Z
                                        @.Destination.NumReservation + 1;
  p4 o4 G6 n  y4 ]                                end;
! @2 ?1 G! t0 S9 W# ?                                @.CurrIcon := "drivingHome";5 W+ l9 I+ i* d& V! |0 g
                                @.DrivingHome := true;& h' L- b) H7 N1 t8 P
                        end;
/ `# V, |* c8 O- q$ v+ w                else -- the vehicle @ is empty, both vehicle and part are in the same dock station- w: o( N" a' v9 ^9 C) B
                        part := @.transpOrder;, y( c$ T# w2 B1 q: j
                        part.move(@);-- load part
: P8 r/ r! b/ A# [  m" o0 z                        @.CurrIcon := "load";( B7 W; v9 }) N3 O& Y8 q
                        GlobalDistObj := part.globDestination;
, F, D. D/ h; _9 B. ^# |4 \; b9 f                        assignLObj := rgmanager.rgAssignL;- W( o" M8 P5 w4 S- v0 A$ x
                        row := assignLObj.getRowNo(GlobalDistObj);- H- |7 i. B) i+ j: S
                        if Row = -1 then -- since 70
* [" G8 U5 i- y% R                                if lan=1 then
1 R2 C: L9 }. V: x                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),7 K3 B# E; O% K( ~; ~
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
5 x$ \' v4 ?$ r9 G6 x' {3 o                                else
$ x3 P0 N; \4 P- P$ a                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),5 i  d/ ?3 B9 @$ ~0 Y+ `3 B
                                                to_str("in docking station: \"",?.~.name,"\""));                               
/ H2 Z# w, m0 P6 x                                end;
/ a" n  r" s% H& J) K3 b                        else9 v, t+ `3 y/ D& e
                                @.Destination := assignLObj[1,row];
: ?6 z2 a+ W% r2 [8 z                        end;                        ; h' F1 H. n' G" U  Z
                        newDirection(@);
- E0 M0 `; l4 C                        @.HasOrder := true;
) @* G% Q( I4 B4 R2 q3 Z1 {. P                end;- w" _6 N2 Q. e8 L
        end;7 e5 c0 O) A  L/ i; x2 j6 h' `
end;        -- of the method
9 @# O& G! ]9 L, f- s2 C- W
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 3 t; Q* q! N3 i( l

, l; x" H' H2 f4 r) S+ X这是AGV_putin中arrive的method。/ h* k, o4 N% Q; \3 I
: D" B) q3 J+ y& L  W
当到达物料速度越高时,这个报警更多,, S" H1 t  ]$ b, o; b% E, p
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
+ G# `, @2 ~3 t# B( ^& K程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?4 O5 g: b! |" Q) D

) ]5 S' E* _" K7 ?另外一个小建议,就是move,所有的move都可以这样; ^# N( I& y# i2 {4 v: g- v
if not move() then debug end( ^1 H) M3 j/ R: x* T
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
2 t2 e9 C% ], h: ?plant simulation中的free libraries有AGV模板,! w0 W. ^6 y8 C( }( Q
里面也有案例。6 e0 F) v" G- h. Y' Z0 \+ ~* \
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
- T6 h' L, B. [! a. x" j* C% k  r  N8 f; ?# t3 l4 C  I5 [. l! L
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ' G2 R6 I5 x2 h& }
" |# u6 q1 p; @
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 5 ?# F; Q9 H; Q
这是AGV_putin中arrive的method。
( o# ^$ a& \* e8 q2 ]$ k8 w* b: \
' B( m: S+ U4 ]5 |当到达物料速度越高时,这个报警更多,

& ~% B% {7 I3 s* T3 }另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-16 13:29 , Processed in 0.019069 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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