设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8152|回复: 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'( E* ~% \# P$ L' _5 T7 i7 |
*/
; U- v- m( Y1 Y5 d. @& _( Zis7 p# O) ?8 q. U1 E( [8 u
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;4 r+ ?; S8 @- a( B
do
& w9 |( C7 D4 D6 i' y        Lan := rootfolder.Internal.Tools.AOLlanguage;
. \& }5 ^; {) l        if current = @.Destination -- else return2 u6 O8 `8 m: @$ ^/ `: t
        then; L5 _$ D7 h* ^! J% C' g* h
                @.Destination := void;
4 q! N4 I: e5 ?7 b& A  `; q                if @.occupied then! P4 k& Q5 s6 T9 c
                        part := @.cont;
+ {- L3 n! X- M4 G                        @.transpOrder := void;" S( D0 n$ ~/ }
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,; S) ]9 U! R. ]* P  P- X( E
                                @,root.eventcontroller.simTime);
9 c% k, x4 S% Y, r* `                        @.HasOrder := false;
! g  V/ ?" Q* y: L$ n" _# T! a3 z, L                        @.DrivingHome := true;( z* G2 t2 [% @: N) N  H
                        rgManager.tryToStartTransOrder;) c& A$ b6 }4 V
                        if @.Destination = void% V' o& x! M" s4 |1 h% }! `; }
                        then -- no transport order for vehicle @# X% y, r; ?+ W2 S
                                @.Destination :=
" o, T: [0 t  d8 m8 m& Y                                rgManager.nearestFreeStation(@,track.~);: a* t" L  x4 x! M( X
                                newDirection(@);   
" Q6 I2 G% [) E; R" f( _9 Q+ q5 Q; k. r: {                                if @.Destination /= void then
! N, n" [  \& I6 t( v! Z; y                                        @.Destination.NumReservation :=) e) U) u+ ^: y; H( f6 t, o
                                        @.Destination.NumReservation + 1;
* }+ V9 g: g8 `6 A8 J/ T' y4 H  g4 i                                end;
6 t' s% Q, [( a* M: j  O2 b                                @.CurrIcon := "drivingHome";
2 Z# \  v6 l4 q* U: K; e                                @.DrivingHome := true;+ G/ S% B, z9 s5 {
                        end;
6 K' b4 p) Y) B( Z/ ^8 {                else -- the vehicle @ is empty, both vehicle and part are in the same dock station& Z* l* Q0 _- O6 @. w' p
                        part := @.transpOrder;$ {  y" u  H- }5 }/ ^
                        part.move(@);-- load part
- ?+ q9 y  q: v6 ^                        @.CurrIcon := "load";
* C. y  }3 t7 A$ z) j                        GlobalDistObj := part.globDestination;/ h; b% n& W; k# q. C# ]4 S- j
                        assignLObj := rgmanager.rgAssignL;* h9 q; |3 z" {* E
                        row := assignLObj.getRowNo(GlobalDistObj);1 w/ F4 Z% [- q9 z, v0 c
                        if Row = -1 then -- since 70
) w8 ?" d6 M1 w                                if lan=1 then
& l7 ]! W7 z  g+ a                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),) O6 y- j9 P/ ^; E0 ~  n- D
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
1 ^  {% z  Z9 R5 s, k" I* Y                                else' V' Y5 a/ Y: {$ V1 r( y
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),5 J' n0 l$ D- I. K: \+ i$ k
                                                to_str("in docking station: \"",?.~.name,"\""));                                , K4 P) j( Y7 L: d# Z/ L
                                end;
& L: R; I0 G! K* i+ |                        else; `/ u0 }% f" Z8 @* B
                                @.Destination := assignLObj[1,row];# S+ P  h% e9 j2 d8 \" t$ y  i2 P  M
                        end;                       
6 B/ D3 i! r+ f5 j! M6 A                        newDirection(@);
% x. R: U& M4 M8 A3 Q$ A                        @.HasOrder := true;
8 H  v, a: G0 a1 r. F6 a0 h                end;+ U  h- `" z% R% Z
        end;8 [: X( h9 O" |; a: U
end;        -- of the method
8 r# E& o5 n3 f; h9 x7 b+ D# e
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 # B  I8 }- \7 T$ B# C, P
: L( `- v+ G& x# [# n" a( U: @
这是AGV_putin中arrive的method。
8 }% O/ h: V1 P* r9 i! }
6 k9 x* }- b9 h9 o, `* |: u当到达物料速度越高时,这个报警更多,
3 ?4 G( `" ^  P, ~3 T1 j# d% T& v可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。. L5 B% q$ C4 ^! x
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
& I- C8 n/ `: g2 A
$ j' P! {$ k9 K: j$ y另外一个小建议,就是move,所有的move都可以这样
- I1 `5 f$ q) t' a7 T) rif not move() then debug end
4 C9 d6 g1 u" ?0 b' q5 h这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
0 k/ I) \# p5 P2 Y" Y9 I9 Splant simulation中的free libraries有AGV模板,
: }! z, U4 V  t* F2 A3 m里面也有案例。
- u/ g# q. \4 _我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。5 ?! `1 g/ u( ~% S( A

* J, c3 M) R% D$ |/ S  u2 H我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
7 A6 U  j7 A$ T4 c% ?; E/ i; V( e; ~$ |' D, f2 i- X4 t
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 9 S* W3 g1 Z+ v4 L& K7 K
这是AGV_putin中arrive的method。
4 Z- N* N. e! k* W& ]9 @8 Q& b( |% X, W( b: F
当到达物料速度越高时,这个报警更多,
+ W$ P( V; L8 y! a% U. u. q/ ?
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-17 16:57 , Processed in 0.021337 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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