设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7423|回复: 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'
9 ]9 g9 V7 r' l- S$ R; _: |*// Y' }2 v9 |) T0 ^
is
+ ?1 Z$ F2 n% t4 h6 r( ^        part, GlobalDistObj, assignLObj:object;row,Lan:integer;5 a7 k( V9 h* B1 o# ~  D
do
* V" E  e9 f' ?% X! O6 T+ b7 ?        Lan := rootfolder.Internal.Tools.AOLlanguage;* k0 E9 S- t' p1 m! t8 Y9 c1 [
        if current = @.Destination -- else return6 H4 ?* [( C' z/ ~
        then
  |) E% Q9 X& v3 P) K1 R4 Z( R# B8 j                @.Destination := void;3 G+ P6 _/ c) p( w! q/ q
                if @.occupied then
1 d- a' q: t; w! l7 R" f. U: P                        part := @.cont;, X. R2 i8 S, [4 ?" Q
                        @.transpOrder := void;
% @8 l, A( A8 r/ k/ s9 N# X# j, m                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,2 L2 w; I. \% U/ t# v6 |$ x
                                @,root.eventcontroller.simTime);
( V# S1 }" d8 I8 X; w/ k: `                        @.HasOrder := false;) C: v! A8 l* g8 K
                        @.DrivingHome := true;# |" t- h+ v' ]- O" K- I: |! M
                        rgManager.tryToStartTransOrder;
: N3 ~+ w; V; A$ Z0 u. ^6 x% C                        if @.Destination = void- I! c6 x) C5 _7 ~
                        then -- no transport order for vehicle @. J: V' F0 S* K
                                @.Destination :=9 m, `. _; U" D5 Z. V
                                rgManager.nearestFreeStation(@,track.~);5 C+ o0 j/ d5 F$ t
                                newDirection(@);   ) g6 i2 l9 Q! O0 a+ e3 n0 i
                                if @.Destination /= void then4 i- d7 H4 T" M) _+ g% E; t
                                        @.Destination.NumReservation :=
0 B# ?! M/ g- Z6 z: r                                        @.Destination.NumReservation + 1;
; V1 D  O/ A9 U. y4 y                                end;
1 \. A1 e/ t' C' `1 W                                @.CurrIcon := "drivingHome";
. V! r- j* W/ Y7 q! u. K0 D0 S                                @.DrivingHome := true;7 d$ O) ?# E8 z+ m6 \
                        end;0 j: o6 ^+ r9 k1 _, G+ V4 t
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station3 ?( ?5 B$ U7 o9 ]" B, g
                        part := @.transpOrder;; x& p& c, d5 x3 i
                        part.move(@);-- load part
; P- @7 z, `& k7 L                        @.CurrIcon := "load";
3 v8 G/ q$ s9 y                        GlobalDistObj := part.globDestination;2 t6 x" X! k$ i( K' k* {; w9 A3 y# W
                        assignLObj := rgmanager.rgAssignL;7 w5 S8 W: A% [6 v& p
                        row := assignLObj.getRowNo(GlobalDistObj);
: `$ f  i" R% V* |& ?                        if Row = -1 then -- since 70
. T8 n* d4 k* A# b# e) H9 v4 j; Y                                if lan=1 then3 G; n6 X+ M. z: p) {4 k/ M% G
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
1 l0 `% ~7 s; K8 x# o/ g4 R5 W                                                to_str("in der Andockstation: \"",?.~.name,"\""));) P( P0 C$ m6 K- T7 \0 i
                                else
1 a; o- S- y, p; t' h8 s/ Z                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),- o: \) ?0 i5 q* g+ q% k) T
                                                to_str("in docking station: \"",?.~.name,"\""));                               
9 ~' D$ ~! ^; n4 |7 Q2 r; o6 v                                end;* Z" p" |4 X; I9 i4 w, z
                        else
' B) o9 K6 A5 l& ~                                @.Destination := assignLObj[1,row];
4 \: ]' a! a( W( o4 M: c6 V                        end;                       
, S7 g- Z0 p" ^8 \, |7 O                        newDirection(@);
6 l, |% R) Q& c- |3 o7 b. \                        @.HasOrder := true;
9 C( @* ~* U: u- g) H4 y8 `2 G                end;6 U; ]# K/ Q9 J. I" w) Q% e
        end;1 Q7 ^# S* y9 B, X; n0 I0 {
end;        -- of the method+ u# M& f. S# I$ d# ]6 D
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
* v! O& p6 q$ t& G5 R& w( j% s1 l8 r: J8 R5 L: T
这是AGV_putin中arrive的method。8 U- A# e8 A: b( x0 x/ u$ b

4 r' m' V! \0 d. s3 t0 I  d/ w7 I当到达物料速度越高时,这个报警更多,% p3 A/ G# D& @
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
% j- {# l7 T/ y# z) G程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
) E# z, U9 A+ y4 S9 c
0 B/ a3 J# v* J# C$ N/ H- w1 q另外一个小建议,就是move,所有的move都可以这样
( p5 q) m7 i; J: b9 L: {# V& Rif not move() then debug end
# I8 w+ K6 B; X这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
* d" y7 K! F# Iplant simulation中的free libraries有AGV模板,5 Q9 m6 Q: p3 b1 O# ~
里面也有案例。3 J4 i0 {& b( B, ^1 s
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
# C# |3 x  L* c' V6 ^3 q! U; z/ a& E- j# \$ \; n' n5 S1 V% [' l
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
$ p2 y) r4 X/ G/ [6 S8 s
- e5 v0 V. d0 X  L# g. [* e  ~- S那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 0 o6 v. l# ~0 |( [) y2 V
这是AGV_putin中arrive的method。8 M* S1 f7 |0 u( I- O: W# |
( A& z) j" z; o! ]6 h+ u
当到达物料速度越高时,这个报警更多,

0 i% k2 Y1 X+ n- F/ ^8 X  R2 B另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-10 15:21 , Processed in 0.023340 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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