设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5491|回复: 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'* R8 X& u$ L$ c9 I
*/
( F7 O/ m9 p% z5 D# l3 M8 E) W9 [; yis% K5 r& I% \: T
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
( t, d. O. ]/ sdo
9 x. ^# K, s2 u& r+ I        Lan := rootfolder.Internal.Tools.AOLlanguage;
1 H) @* Q5 A9 G3 p% D, ^4 A        if current = @.Destination -- else return4 n1 j) r8 J" ?9 |: ?3 k& Z
        then
' A: G! G( m* b  ~0 @1 Z/ R                @.Destination := void;: S* S: w# f: O
                if @.occupied then
9 [; i8 n  `: b* n# ~                        part := @.cont;
! {. L5 n) g5 N! X* \: D6 K8 }$ q6 j                        @.transpOrder := void;
/ n: @) Q3 L. i. X7 \                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,4 b1 O6 X0 e; K% P- O
                                @,root.eventcontroller.simTime);6 y; [$ ]- D  x: U& U7 M$ @
                        @.HasOrder := false;2 Z$ E) T  S; r7 P5 a
                        @.DrivingHome := true;
0 F8 b' v! e% G                        rgManager.tryToStartTransOrder;1 V# H. H0 g6 [5 d- H& W& n' L1 C
                        if @.Destination = void# O8 s, ~; l) f1 m
                        then -- no transport order for vehicle @  n8 ~4 k5 g5 d; s* j
                                @.Destination :=
4 t# J! ]8 m- R1 T3 L9 c3 M                                rgManager.nearestFreeStation(@,track.~);
/ w! v- R1 G' D/ b, g  [# j) F                                newDirection(@);   3 i. ?8 d9 ^+ G) v7 n- M& C
                                if @.Destination /= void then3 k' h2 s- v" Z
                                        @.Destination.NumReservation :=  q: R6 w0 Y2 n9 U# k/ `
                                        @.Destination.NumReservation + 1;
1 V, D9 ^6 `3 T0 ~. T0 `4 h                                end;' p+ c9 g* x: J: X$ v
                                @.CurrIcon := "drivingHome";; z- M. y; v  Q8 d
                                @.DrivingHome := true;3 s# L( D! s; D
                        end;
' C8 u1 c. T: }  R& B$ b1 t1 I                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
8 }% v4 z- ?. U: m                        part := @.transpOrder;+ I' H; R0 }( C! z) D" r/ x
                        part.move(@);-- load part
/ g  F2 z, p9 X* ]$ @! i. ~1 P0 x. ~                        @.CurrIcon := "load";
% [" F) T1 C' D- o                        GlobalDistObj := part.globDestination;
/ p0 G3 J" k6 r8 m& i4 s7 |                        assignLObj := rgmanager.rgAssignL;
3 a: U9 ~  C) l2 k% T# ?                        row := assignLObj.getRowNo(GlobalDistObj);2 h+ r3 b0 ?, |. r8 f
                        if Row = -1 then -- since 708 E6 v9 c; |+ g$ F: G+ h: j2 ~
                                if lan=1 then! v. D  }6 y- j: ~; F% P! _
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
8 U: C( |0 K+ c4 L                                                to_str("in der Andockstation: \"",?.~.name,"\""));5 M; X$ A6 b( i2 A
                                else* D. `# d3 ?- ^! W, Y
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
5 e; T1 ~9 x$ A. w* p                                                to_str("in docking station: \"",?.~.name,"\""));                                ; O4 b; E2 F* L4 C7 ]; x8 v5 b
                                end;7 q0 S, b' N4 p  N: a
                        else
8 T0 F% K6 K2 _4 t" B# d% i) w" w7 q6 k                                @.Destination := assignLObj[1,row];
' D& x& F; y0 c" |0 \- T                        end;                       
  w! I: u) X! M: {                        newDirection(@);; K1 t. A- [$ I# V8 s/ n7 H
                        @.HasOrder := true;
8 [/ `# [  E4 x0 d+ z. v* o5 |  x7 a# c                end;
1 c- g, [+ G) \' S        end;
- p- A9 ^( J; y9 I& a- vend;        -- of the method# G) c, D* E! Y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
4 v7 k3 N) |: D9 E, `
% F, \2 x5 x3 T. ~这是AGV_putin中arrive的method。
# ]  ^& ~- O  C7 m( \/ [3 v3 K% C0 Z; |5 a; }/ a; W. n5 U3 d
当到达物料速度越高时,这个报警更多,3 k, E; _+ m6 U$ G
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。% _' k& _0 O$ j8 I' Z4 ^  Q" z5 Z$ T
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
- \6 D  e+ Y& _$ ^# Z7 J
8 a6 w/ y( |3 h4 B1 V另外一个小建议,就是move,所有的move都可以这样
5 H9 F$ c9 n# }9 w2 rif not move() then debug end
' p7 z! _6 G8 t! T, Y7 g) y这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。1 Q' j- J% t0 b# v+ ]" _
plant simulation中的free libraries有AGV模板,# V1 a+ p8 m, ^  B5 v5 d' {
里面也有案例。; ]  B1 m% L: X, w
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。' v# I" l0 [3 Z0 a3 P

, \1 T8 `' P. m  J0 v我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
) [" k) ]1 D' J/ w& h& k
# Q3 Z: P  |2 d2 u) S6 J; G& L那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
! i6 i  k" ?% G% O6 R- w; A这是AGV_putin中arrive的method。- }% E! V5 T5 `# a6 M, p+ \$ I
8 l; E4 E; L( v- v
当到达物料速度越高时,这个报警更多,
6 }1 q  p5 ^' x. [
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-27 14:41 , Processed in 0.018152 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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