设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9468|回复: 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'2 L  p/ w" q5 H0 }7 n5 W
*/) S, B3 }& l; R  l' |7 z1 l
is
4 M. f! I3 ^$ u4 T6 \        part, GlobalDistObj, assignLObj:object;row,Lan:integer;( f, W) }) e6 \' y( q
do& v& C: a; r0 S
        Lan := rootfolder.Internal.Tools.AOLlanguage;
0 _; w& l1 v, R        if current = @.Destination -- else return: x( S) k+ Q' C3 a
        then% I& l. c" ?) i
                @.Destination := void;8 b+ Y3 v0 g' u- i5 S6 Z, k
                if @.occupied then
9 {: e: J9 e6 P) m9 e                        part := @.cont;
! t# d( d8 L, A7 O                        @.transpOrder := void;/ W1 A4 [# T' M
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
+ W- S$ Y6 ]+ @2 `# c6 F1 H                                @,root.eventcontroller.simTime);: D1 F; k, m! k$ M; I% k
                        @.HasOrder := false;! d6 u# |) v. G  x3 \/ r
                        @.DrivingHome := true;! ?9 w$ c! u: }- x! v: B/ D! S" i
                        rgManager.tryToStartTransOrder;
0 R3 h* d" ~1 ~0 d/ w" B- V                        if @.Destination = void# ]. b" |) o% ~+ J4 J6 F& ~
                        then -- no transport order for vehicle @5 _( C. R& S" ~! q' o$ w5 J9 r
                                @.Destination :=0 T3 J  j7 N( B8 e+ a
                                rgManager.nearestFreeStation(@,track.~);' K' P0 f  N/ G1 L/ j9 j6 B
                                newDirection(@);   
0 b4 O! r7 I$ ~1 ]                                if @.Destination /= void then; w4 b+ d. t* ^- t; P7 i
                                        @.Destination.NumReservation :=- S( l6 R' ~/ x5 ?4 a$ P- w1 p
                                        @.Destination.NumReservation + 1;: l3 N  g6 O9 x' k
                                end;
! a$ B0 H7 H$ {. v4 l                                @.CurrIcon := "drivingHome";) n& l0 d  e2 Z
                                @.DrivingHome := true;
# D; e8 @* ]6 [  m0 O% j0 p                        end;" S, T1 S8 N, |
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
) [3 k+ L4 E1 K5 d' F                        part := @.transpOrder;& l, {. e: I) M
                        part.move(@);-- load part
% B! L2 ?* C* r% I. ~                        @.CurrIcon := "load";+ c, g! D2 ^, w7 X, Z( H
                        GlobalDistObj := part.globDestination;9 j0 m  P# u* E/ E/ c
                        assignLObj := rgmanager.rgAssignL;+ ]+ Z  H& s+ X5 d( G3 d) h. L
                        row := assignLObj.getRowNo(GlobalDistObj);
2 y( B6 a0 ?7 h) y- v0 t0 Z                        if Row = -1 then -- since 70
( {9 D8 _7 |7 t0 z) R' m/ W                                if lan=1 then; L  e1 ^& ]3 t* i& h) ]2 B/ |5 z
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
, K& n5 \( [- t/ L; H                                                to_str("in der Andockstation: \"",?.~.name,"\""));; T+ `* ^% V& {5 |* {. }
                                else
0 ~3 s9 g' @' ^1 D% P! X2 c7 D/ y* W; h                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
0 ?7 Y% J  p' z/ y4 q: H                                                to_str("in docking station: \"",?.~.name,"\""));                               
* ~9 E- d7 X6 x                                end;( r0 G( `$ c0 w$ m! ?
                        else
6 S) H0 ]( k, {: ~* R/ P+ ]  W                                @.Destination := assignLObj[1,row];$ C+ f+ Y+ I6 n# T2 j9 D& h: ~
                        end;                        . y/ Q1 g; ?3 b
                        newDirection(@);& M7 E1 v. u! \6 z' I6 ^9 d4 |
                        @.HasOrder := true;( w. m, w; ~, h) v- y0 ~
                end;
$ N/ E; R# Q1 V2 `' q0 T8 O        end;! P1 ]* d( V  k9 w9 q7 G+ X8 S
end;        -- of the method
1 W9 y9 k- r) e# o
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
5 Y& F$ Q4 A, W& y
* ^6 B* X( W* z* o0 k5 Y( u5 D& y2 s这是AGV_putin中arrive的method。
3 U5 h! d! q4 B; e1 `" U( S& ~
( F" ?7 U6 \0 B0 ?0 b当到达物料速度越高时,这个报警更多,
1 n4 O. k. X8 |8 o# R可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
5 e$ I; {( k3 u' W0 ?8 b" E程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
. `# ?8 p' y; `
( P3 k9 p' D+ G) r$ O5 F! l# b- X5 [另外一个小建议,就是move,所有的move都可以这样2 b" p# w+ B* [. @0 v
if not move() then debug end3 j& |% n0 V5 m
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
9 }: S4 V% Y2 uplant simulation中的free libraries有AGV模板,
$ U+ c/ n: o. f5 q里面也有案例。6 {- i6 _, B5 \! [
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
' J( z" Q0 O4 o8 b: G$ d& s$ U: H) G+ I, {6 o9 B. d4 b/ A- {5 _
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ( Z4 Z0 K; U( S  _9 w: b

" j3 q+ Z! q1 x7 J# Y4 I那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ) V8 ^. {  D+ _1 j8 a
这是AGV_putin中arrive的method。* v: s! L( A  n3 Q9 c& O

5 Y- b# h# p' \1 j! I5 L) d8 I$ @9 X* A3 h当到达物料速度越高时,这个报警更多,
* O0 \2 G5 J% {' I
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-2 16:55 , Processed in 0.018433 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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