设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10110|回复: 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'
  |$ J( H3 A$ X8 v*/
9 j" E# @* ]2 N* v1 K  K& i& yis5 _; h+ M( t% g5 k7 B
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;5 P$ Z+ R) @  \  E% a2 T$ `1 [
do; x& U, n$ R1 z/ I5 e) S4 Z
        Lan := rootfolder.Internal.Tools.AOLlanguage;
9 |- x# t$ K. U* Q0 i        if current = @.Destination -- else return) E0 i7 H4 |: w- @8 g: O# b
        then6 X( O+ S% D, P, p; G
                @.Destination := void;% I4 e9 {) O- T& \  t( X
                if @.occupied then
8 |. u5 a! F2 n4 _' H7 ^% L' X                        part := @.cont;2 @: C6 {1 v& w5 O8 u$ k
                        @.transpOrder := void;
$ }" g1 Q+ m/ q! }, C6 o. p                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
0 ^$ M' L) `1 u( D: K$ Y: j. V                                @,root.eventcontroller.simTime);
: S$ i* B9 Q; `' g* `' o                        @.HasOrder := false;
7 A/ h& Y: J& F0 {3 W$ n. B                        @.DrivingHome := true;0 k5 w$ s0 r# p9 R& ]1 Q
                        rgManager.tryToStartTransOrder;
, a" R: _" x% A+ I8 e                        if @.Destination = void  Z1 X: y% S: X0 |- V
                        then -- no transport order for vehicle @
4 u5 W1 x# i' C0 N* \                                @.Destination :=1 L( x3 ?- ]/ t$ e
                                rgManager.nearestFreeStation(@,track.~);' s$ c% G# t& f/ f' x# L
                                newDirection(@);   
' ?6 k- [, G& @" O7 t' P- U4 v                                if @.Destination /= void then! ~% f! P7 z/ f! I* p: I* M0 W/ W
                                        @.Destination.NumReservation :=  i9 D. P" h8 w0 f6 ~1 |4 W: p
                                        @.Destination.NumReservation + 1;# z* ?; a) k9 }/ V" v  J( S( a
                                end;
) \% Z5 _& M& j                                @.CurrIcon := "drivingHome";6 \, U! j' H& H
                                @.DrivingHome := true;5 _* {5 l. W2 a2 d
                        end;# Z( A5 T# e4 I/ F/ Q/ ]! z, L
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
' {7 A) e# |5 Y, Z                        part := @.transpOrder;
1 J. X3 B- y) {2 D; }$ v9 V                        part.move(@);-- load part
# r/ z5 g: n4 F: a& G2 P, ]+ z                        @.CurrIcon := "load";
9 ^8 t+ f  [8 A- @                        GlobalDistObj := part.globDestination;
4 @" I0 d$ x' t" E% b9 ~                        assignLObj := rgmanager.rgAssignL;
# P1 `& |# a8 c, Q) i) i                        row := assignLObj.getRowNo(GlobalDistObj);
; F: q$ [" @7 j4 |4 R# y                        if Row = -1 then -- since 70
$ ]$ A8 e# }  A! z. B2 {2 U  m                                if lan=1 then' S5 l3 ~6 ^: f7 E, U+ r
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),, W  w" r6 m. F$ C+ l7 w$ j( S
                                                to_str("in der Andockstation: \"",?.~.name,"\""));% C5 t- }1 @$ w9 B. c
                                else2 `9 a4 y) u! D8 W
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
/ x7 h, e& [3 w: A/ f3 v                                                to_str("in docking station: \"",?.~.name,"\""));                                - C4 e0 X: u, w  k+ E/ v, t
                                end;* u7 w: ^# v2 d$ |- n) P
                        else4 W- h% l/ l( |$ ?2 \( @  x/ d
                                @.Destination := assignLObj[1,row];
! A1 @' J2 {% a7 }# l! d                        end;                       
+ E; l( k& m2 i; A, s                        newDirection(@);
( f' D+ w  B! A7 L                        @.HasOrder := true;
) {0 x+ k8 c4 Y, m* r9 q7 t! M                end;1 q+ ~; e7 a: a1 X: y0 r$ o
        end;
4 j! a" C# J' l6 I. U( ?end;        -- of the method
1 D: ~  o* o) g
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 / e/ [( V  c% J& c9 b5 W: E4 P* U

. i4 t* j# {0 D3 ~5 t这是AGV_putin中arrive的method。
& t4 L% j. j( L" X) S+ g0 R9 g  b* A  Z% x0 v# Y. F
当到达物料速度越高时,这个报警更多," t1 h0 Q+ i: y& x# m, f
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
1 Y5 M$ {! Y2 X' H3 `6 r程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?% W) `. `0 n0 G. R
8 e, C, j$ O5 O0 n4 g1 O
另外一个小建议,就是move,所有的move都可以这样
( ~# ~$ S- j4 w( d7 t* Mif not move() then debug end
( h% C( f- {& j" m* I/ G这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
8 g; `! `3 G! t% |: x4 k- Z* |plant simulation中的free libraries有AGV模板,
( J) F- B% K" L; ?3 o# f里面也有案例。
+ r! g4 _1 o. ?" r我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。. |# Z5 p* D/ J4 a) \  s

! u& J- V9 p- ?# K我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
$ X+ ?+ m; J5 D5 @( L7 D3 q' a% j0 g
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
6 r8 p" m+ N3 X+ e" z, O3 H0 g0 |这是AGV_putin中arrive的method。
* G) A* [1 G! v9 f
1 Y4 Z0 }; |3 b! e8 c  I3 G当到达物料速度越高时,这个报警更多,
6 h" l# _7 b1 t1 g: u! P' G: t' r
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-14 00:15 , Processed in 0.015716 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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