设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6836|回复: 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'
& u0 C- h8 c. V) S5 j*/3 v/ t: D2 j0 i0 ?  {7 k
is
$ w0 J( J- w2 F% h  Q; c) |; l# x        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
8 P  X% G2 s0 [( p7 F4 I( j* @do
' h9 ?8 j* e1 Q( V        Lan := rootfolder.Internal.Tools.AOLlanguage;5 }9 V- S/ {' H0 W5 g, ]  l, |; J
        if current = @.Destination -- else return4 e% i1 W# e/ x( L( E: J
        then& q$ \$ A+ w8 X) n" X0 p
                @.Destination := void;& H7 M1 C; |. O. ^) K3 ?
                if @.occupied then
7 a5 H7 s/ `. ~( m& M                        part := @.cont;  O( }/ p" g  [
                        @.transpOrder := void;/ c1 L, Y' K' D4 [, _/ l
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
! B4 J) K- q0 z* j( B# o. S" p8 i( u                                @,root.eventcontroller.simTime);
, C$ _. S! d/ A  {' J, H                        @.HasOrder := false;
5 `9 r7 h2 a2 T- @# P                        @.DrivingHome := true;
! r: O/ z# H# L: O# i7 R                        rgManager.tryToStartTransOrder;+ |; A. V/ v9 }
                        if @.Destination = void& f- F9 Q7 ^) `% p% k
                        then -- no transport order for vehicle @1 y, D: m6 d. ^, B, K( d
                                @.Destination :=
. q; N) [8 f5 N- z                                rgManager.nearestFreeStation(@,track.~);
( b# q/ M* }% |7 y3 K% O% w+ y& L+ J                                newDirection(@);   
6 c9 c* W' r4 b. i                                if @.Destination /= void then
8 m4 r5 Y$ ~. A; M                                        @.Destination.NumReservation :=
) c1 h$ k8 _0 G+ n2 t! S, }6 f                                        @.Destination.NumReservation + 1;
! a, O, s* [. K% H/ f3 n4 ]                                end;
# ~/ G! m# ^2 d; M: x" Q" k                                @.CurrIcon := "drivingHome";
* ]0 j' E  c5 q: S# h5 L- g6 `3 D                                @.DrivingHome := true;9 _) J- ?' n& ?/ |" t4 w, T  _8 L
                        end;
% u% h7 s  s8 ]' p7 f9 ~                else -- the vehicle @ is empty, both vehicle and part are in the same dock station8 X, B" I  [( P( X: d) W+ p7 r
                        part := @.transpOrder;( q* ^$ k+ I. H
                        part.move(@);-- load part
- q2 h0 F9 L  c$ g" I& A$ E                        @.CurrIcon := "load";6 ^# N0 d2 H  t% ^- C- S2 S8 d& l# n+ z
                        GlobalDistObj := part.globDestination;
$ R) e$ P! g3 q; S+ c3 z0 r                        assignLObj := rgmanager.rgAssignL;& N0 L% V( s/ h9 {' q# L
                        row := assignLObj.getRowNo(GlobalDistObj);
3 q( X# e6 Q8 t3 D# h1 Y" P$ p                        if Row = -1 then -- since 70
. e& V8 |& k7 P                                if lan=1 then( i& D6 N6 ~6 x9 t
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
) }& |- Q( g) E; v% r* w                                                to_str("in der Andockstation: \"",?.~.name,"\""));8 [$ |0 m9 U1 c0 C
                                else
8 x" K* A; Z; h3 ^, |                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
' W' T  V: F8 e8 y  K                                                to_str("in docking station: \"",?.~.name,"\""));                               
3 ]. S% q2 p* J  o9 {                                end;
% c3 e5 i# J, G& g# G+ ~+ v                        else
: C, H$ H0 _/ L1 p                                @.Destination := assignLObj[1,row];
2 a  j) g3 a2 K$ n5 ]0 _* I                        end;                        5 _' T0 z/ @: b% K, t2 O# L  }5 V* k
                        newDirection(@);# P7 O! z  T2 \  C$ k4 m7 B
                        @.HasOrder := true;
; [1 o8 ?# g1 Z& x) S                end;
1 h. N9 Y3 L, B% u        end;
0 d- O, [( \0 Wend;        -- of the method; X7 o* t, T; ~7 X
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
- G, G+ t0 b, Y, C: ^/ G
9 T; `8 {. z- e+ _7 ^* w这是AGV_putin中arrive的method。
  q: K/ n; b$ A! u1 k0 l* L) ~2 b8 a. |$ d% l5 O# @
当到达物料速度越高时,这个报警更多,% b" |/ c6 s  F- r
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。$ X: Z3 ^& @2 P8 J$ t8 H& t
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
! B( c2 L  p: |, D* W9 W5 b
: q* k& B4 r' S! i另外一个小建议,就是move,所有的move都可以这样
/ m7 i! V. O( d5 W; hif not move() then debug end5 Q. A+ |8 a* q' z( @, _/ n! D
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
1 V7 n4 E9 k2 O% f' Z- K* t& p$ Yplant simulation中的free libraries有AGV模板,7 W' M; S$ G7 w4 R/ H7 `
里面也有案例。
. m# |( C2 A6 f* @9 q我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。# h& a  I! s8 w2 X, x; Z  y5 y
7 p: f7 m# ^9 S0 A! e
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 5 D  I& C. }6 f% ]
' T+ s. H( u/ S( z1 \) C. s! h
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 : ~4 m4 e$ p, h+ |; e; N
这是AGV_putin中arrive的method。: M" }# h  c; F5 u5 W

# c# i8 z. W# x0 w) M当到达物料速度越高时,这个报警更多,

2 }+ c1 T7 S" M/ |7 t/ Q/ N& f另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-1 16:04 , Processed in 0.023912 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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