设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8172|回复: 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'! Z; H+ g8 h. \! o* r0 H; B
*/7 s- I- I. k/ @5 h9 W
is8 W  G7 j2 e2 t+ n, i$ v, ?
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;9 F" Q& e$ U0 Q! x9 {
do
& e1 K6 y, i9 K9 l2 b) Q9 k        Lan := rootfolder.Internal.Tools.AOLlanguage;
4 g4 B  k' ], ]- {* c( W        if current = @.Destination -- else return
7 \  W4 n7 T# ^+ }$ G3 d        then
4 ?; u8 |0 @" A: i6 j+ N" _                @.Destination := void;1 q3 z1 }% |6 K' i. Q: C1 z
                if @.occupied then5 B2 r8 @7 y; G  r1 Q! Q
                        part := @.cont;
$ m9 ~# ?4 r. S8 l( T; W7 @                        @.transpOrder := void;9 S- g2 C, f" z
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,  m9 N* C' w# A3 G% O
                                @,root.eventcontroller.simTime);
, Y2 c8 u( `& I5 J4 q: O/ }                        @.HasOrder := false;; l5 Z0 J( p% P# L
                        @.DrivingHome := true;
2 K0 S/ Z* K! h) |4 c; b                        rgManager.tryToStartTransOrder;
: h  M( ]8 d9 K& R# e+ F& N9 _8 d                        if @.Destination = void- z) C7 c, g0 j. ^
                        then -- no transport order for vehicle @; ^  \. N& v4 U
                                @.Destination :=* X; V' r5 X4 A# Z
                                rgManager.nearestFreeStation(@,track.~);
) b: L( G2 r0 v* n                                newDirection(@);   
/ k$ B) A. F" N8 P4 k                                if @.Destination /= void then/ t$ z5 c8 f" D( }1 F! U2 M) d
                                        @.Destination.NumReservation :=( i. A  x. J1 _* R% ]1 d0 e4 Y
                                        @.Destination.NumReservation + 1;- b; Z; m5 ?- b6 M& @' D6 D  K$ S
                                end;
) o  L2 o) i: _9 k% Y0 ]+ y                                @.CurrIcon := "drivingHome";9 v& n. `/ t. m
                                @.DrivingHome := true;0 T9 ^% C1 @$ H# N% f! Q6 @
                        end;
! ~) @# R! n$ t" p% B$ z' _( Z& p                else -- the vehicle @ is empty, both vehicle and part are in the same dock station1 P6 E3 h9 e0 D' k
                        part := @.transpOrder;
- p8 p/ D. \3 \                        part.move(@);-- load part. A# N  q4 s$ Z! {
                        @.CurrIcon := "load";
" R' R# v7 y  n4 q; M5 j- h" q' }! t. g                        GlobalDistObj := part.globDestination;2 \1 l) I5 _- a& r# f" `
                        assignLObj := rgmanager.rgAssignL;
# o# K4 T1 S# s" u                        row := assignLObj.getRowNo(GlobalDistObj);( c9 C  d& k' e
                        if Row = -1 then -- since 70
8 K( y3 v9 R% d0 x                                if lan=1 then, V1 ~) ^; v: y# m. U, @
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
. u( v, y1 G# i, d                                                to_str("in der Andockstation: \"",?.~.name,"\""));) Y: O0 k) U4 w7 q. c: w, r
                                else7 t/ L) k. {$ p. U; o1 u
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),$ o3 e2 F2 e. j+ Z: x+ v' j
                                                to_str("in docking station: \"",?.~.name,"\""));                                ( ~, W& R" O+ N! ^% X: w
                                end;
# b7 _7 _+ m2 S6 o$ a8 a                        else  G( B0 E- h3 x( L5 ^- _
                                @.Destination := assignLObj[1,row];
  @2 D6 [* M/ j+ F- F                        end;                        1 s! E6 U3 o5 j$ Y& J2 b
                        newDirection(@);: i, N( J, y: R9 Q
                        @.HasOrder := true;  a4 B, b3 h, ~; P& o5 n/ I
                end;! z* L( Q; c; M) j9 T6 z
        end;
7 H1 B" P0 V4 f7 p# f. g, kend;        -- of the method  @% S- _4 j: H# S" p1 ]8 U* V
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 / _. D' \6 |  N; K
0 r/ A. l( V5 ]8 k. @
这是AGV_putin中arrive的method。6 e0 h4 [* O. Z6 \  W8 o% v

; n; ?) z7 _& @+ t6 j; o. P; T2 `# w当到达物料速度越高时,这个报警更多,6 y  B% H9 V* X# V* z* |* t
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。+ }! c# \8 L. c
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?! J" w! B! M$ C) h8 c. [
* d9 ?6 B* _. K( K; N+ n. k1 B5 F
另外一个小建议,就是move,所有的move都可以这样
8 U, l9 L; \8 r& Lif not move() then debug end
9 G3 N: C* M0 g9 V& v8 U3 C- I这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。' ?3 Z* b$ v! H+ |5 }* Z/ b7 C
plant simulation中的free libraries有AGV模板,( @  ~# r' T4 ^4 v( p& r
里面也有案例。3 l6 o3 \, `# w; i7 L' E
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。2 d+ D( U, V' R2 Z

2 r4 [1 e  ~8 t/ R: z1 A我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 1 a( V( v6 o# v( F8 ~

. _3 [% @+ x: E' w$ I3 j1 e9 Z/ q- ^那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
& n* d* a) I' F这是AGV_putin中arrive的method。# ~1 y+ X; x7 N
- ?4 L' c' ^2 H! r
当到达物料速度越高时,这个报警更多,

! Z3 z! z$ |# u. o8 z; f9 E1 B+ }另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-19 01:40 , Processed in 0.026201 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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