设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8454|回复: 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 Z* k' r! f: s; d- P9 a*/9 `* w6 W3 d6 h" R4 s
is
4 k2 p9 U/ H  x* a$ a+ t) |2 N        part, GlobalDistObj, assignLObj:object;row,Lan:integer;) b+ f7 {5 B' x$ z
do5 v% H3 B! Y; U0 `4 L5 \/ x
        Lan := rootfolder.Internal.Tools.AOLlanguage;
4 g- b6 J) P+ W6 j- Q% R( H2 K        if current = @.Destination -- else return9 w1 v: p. f* j% @
        then
: n+ p9 ~9 c/ P) ^1 O3 A1 b$ h. f                @.Destination := void;
5 `0 [" _& @  ]+ T) H                if @.occupied then3 v/ Q3 s. s. Z* ?! O4 h. n! }
                        part := @.cont;- j+ @' M! ?4 W4 N0 `
                        @.transpOrder := void;) u1 o0 ]3 g5 F1 `7 _8 f, |; l
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
. o& S9 r0 q7 n0 q4 V  K                                @,root.eventcontroller.simTime);4 |5 d9 q: C/ L# B- J$ p; t  L  @
                        @.HasOrder := false;
, w6 `- w2 o" @5 o. n9 c# ^/ r                        @.DrivingHome := true;
# W! w% ^* _- K! O7 i                        rgManager.tryToStartTransOrder;+ @& `* p( ^  E! o
                        if @.Destination = void( B/ b: q  a1 z6 j" N% l
                        then -- no transport order for vehicle @
3 C$ D+ F% ^* G2 H, U& ^                                @.Destination :=3 x, q. l0 T# y! [8 h' b6 m
                                rgManager.nearestFreeStation(@,track.~);
7 d7 Z. U2 `5 }5 {6 Q" {; t* s                                newDirection(@);   1 u, w' T/ t3 W8 E- N$ G- M
                                if @.Destination /= void then
( y+ h- y, p4 f5 ~4 s! [                                        @.Destination.NumReservation :=
/ _+ |' `/ z7 s( X, s# \* X                                        @.Destination.NumReservation + 1;6 o' q7 q5 N+ S- Y
                                end;, A" _3 A  ^3 c9 H
                                @.CurrIcon := "drivingHome";  i! E# e' \2 u6 [8 L* o3 N
                                @.DrivingHome := true;
6 |, ^' ~; |3 m  Y& a8 r+ g, u                        end;, O( h/ \" }5 Z2 {" W
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
9 b% \' E! p9 r6 m: Q                        part := @.transpOrder;
) E4 c6 s- |. ]                        part.move(@);-- load part/ `# E) }1 g9 m
                        @.CurrIcon := "load";1 B* ?( y# C) O5 B2 |7 T( r
                        GlobalDistObj := part.globDestination;  F" P7 @5 C1 a3 h8 f
                        assignLObj := rgmanager.rgAssignL;
' K$ w; I$ b2 }1 [                        row := assignLObj.getRowNo(GlobalDistObj);
; S! x% @6 ^. l. z                        if Row = -1 then -- since 701 M& k& e' @% k1 Q1 v9 L% }* a: c. _
                                if lan=1 then4 r3 Q* [) v% a& }3 v: M/ A5 U
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),1 [7 l5 j% J' u2 J0 L0 x
                                                to_str("in der Andockstation: \"",?.~.name,"\""));6 j. U- J0 j3 S  m" C! }& m. H/ B
                                else- I1 O4 W, B8 }) Z) E0 D/ k/ ^
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),8 s) P6 D1 O& ~% l7 B
                                                to_str("in docking station: \"",?.~.name,"\""));                                * i3 h5 I; S" v# f2 {! Z6 a
                                end;
3 }* O  D2 t" @+ C                        else
- o9 T9 O2 Y9 ]! {                                @.Destination := assignLObj[1,row];
9 G) i5 s8 x2 H% e) l) J2 l                        end;                       
$ Q; q  e& ~/ [4 A5 \( f                        newDirection(@);9 x8 d& t  ?6 |, U8 |
                        @.HasOrder := true;8 v4 m# [' r8 o1 `
                end;7 T2 v& f/ z4 z, |1 ]9 V
        end;
$ ^9 d3 t1 k* e3 Uend;        -- of the method
7 N' O* S" ]1 C9 m5 w
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
6 w' |4 E% h& ?- ]' A) q- F- h) |
$ t  Z* c2 I- M这是AGV_putin中arrive的method。. q4 b8 [, x* j8 Q  \

: u: F% n9 C* u8 v6 k$ p; ?当到达物料速度越高时,这个报警更多,
; x9 D  g; X% r- c$ |可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。% g8 s6 R& M6 G1 K4 I+ h0 s
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?" y, W/ i5 F5 U$ \$ F" A* v
0 \6 s" G* D! w! m, F7 Z
另外一个小建议,就是move,所有的move都可以这样, y( N; o. S( P& |$ I
if not move() then debug end  |# J% }4 H1 w+ \
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。- M+ b/ t1 j$ P  r% d
plant simulation中的free libraries有AGV模板,
4 C1 ^* y1 `# S0 H6 s  I里面也有案例。
# }- ^! @% v7 ]8 G我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
; x' v% p7 A7 D" V0 g/ O* K# v- I3 r. r
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
; a6 R$ B7 s4 ~, I& {$ @) [( u. z6 M4 W, q  G2 X6 M, G
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 , b) h% D, l3 V8 q
这是AGV_putin中arrive的method。: {$ [6 l4 K6 ~$ _1 y. y
% H: Q, ~$ Q8 h. J2 t/ N
当到达物料速度越高时,这个报警更多,

! E  j! m/ P" t5 A7 V另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-5 00:45 , Processed in 0.018893 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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