设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7175|回复: 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'/ e7 o6 y  c5 \. b9 e  g/ \1 C  s
*/
  i# P  K' k. n# P* ]2 gis% k% o: O9 s3 ^+ Z
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
! n, k. E5 f* N- Pdo
% K9 Z4 x* A  R- R6 X8 j        Lan := rootfolder.Internal.Tools.AOLlanguage;" F1 s7 ^6 D- i) p/ `, J) J
        if current = @.Destination -- else return
' N+ `* H. \" C8 Z+ d; K        then0 |" e) o6 j8 R6 G5 r
                @.Destination := void;, G7 h4 c* ~0 z
                if @.occupied then- ]: Y/ m: n$ H+ z* V! F% U
                        part := @.cont;" G! v: Z6 t5 j1 y" G7 c- F
                        @.transpOrder := void;
( {: S/ h& ~$ q5 V8 ]  d! H                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
" X  Z% B/ y+ F2 w* Z! j" G                                @,root.eventcontroller.simTime);
! m( V6 \: |; H! [                        @.HasOrder := false;6 G: E4 h# F# p, ]7 I3 e3 E1 `
                        @.DrivingHome := true;7 @5 Z0 G" C/ P! n0 Y3 v
                        rgManager.tryToStartTransOrder;3 ^; r0 E, \1 Q/ I7 ]- D1 f
                        if @.Destination = void
3 @7 v: Z, E5 n  g8 ?2 l                        then -- no transport order for vehicle @
7 R1 @8 J0 P2 d/ K5 P. N2 r                                @.Destination :=
9 T4 z! S' B4 x5 b, `2 |3 [                                rgManager.nearestFreeStation(@,track.~);
% D  R) f- d0 p( Q                                newDirection(@);   3 P% m+ C8 F  H3 h& C* b* U, a9 s# d
                                if @.Destination /= void then: `) i2 `! Z2 m( {- K& U
                                        @.Destination.NumReservation :=
8 S2 ~+ `/ C" p% \" D                                        @.Destination.NumReservation + 1;! S! I( H- n; o
                                end;
( I  E% d, A7 }7 J' B                                @.CurrIcon := "drivingHome";
/ M6 @2 n' x4 L5 F                                @.DrivingHome := true;7 z7 ]( C5 E( m$ d2 Z. L
                        end;4 J* H3 O5 A  a; F  ^) b
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station$ O& h. U6 ^8 o) I9 N1 H: B
                        part := @.transpOrder;
* d  h# W0 D0 h# w" O                        part.move(@);-- load part
* l7 W4 N2 S% q" ]3 k( {% u9 Z9 ^9 P1 ]                        @.CurrIcon := "load";
8 _% p3 o  L7 g% s. L                        GlobalDistObj := part.globDestination;
) D( W) F+ Q* X3 {4 C                        assignLObj := rgmanager.rgAssignL;! c4 ]* {, A; g( @
                        row := assignLObj.getRowNo(GlobalDistObj);5 P$ T3 ^# A4 f, q
                        if Row = -1 then -- since 70
: v1 g& d  ~9 E0 ^% G% f+ _                                if lan=1 then
5 q" c6 K$ _$ d. D* ~1 M! W                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),6 u* j+ d' s7 e5 f; D8 t
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
: C3 H) Z2 s- e                                else
/ \' \" f( V0 O" e5 x( j) z) I( E                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),7 I% N2 Q0 j" N# |8 N, [
                                                to_str("in docking station: \"",?.~.name,"\""));                                2 D4 S& E* ]5 r7 c
                                end;7 R1 C! [: H& V4 J6 O) i* k1 A
                        else2 w7 f  C) Q: d) g, x
                                @.Destination := assignLObj[1,row];% n: `* }9 O. b1 Y/ }  Z7 J: u6 L) b
                        end;                        & b, X8 P+ c$ x) ~
                        newDirection(@);- O+ B, [3 _/ z9 x9 F+ D5 f
                        @.HasOrder := true;3 R; }0 y6 L  w6 J
                end;9 {5 f8 E6 f% B
        end;
! [2 ~8 H' K7 _8 E' X0 @; Hend;        -- of the method
8 k: n) U% b: F2 E* t
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
. Q# `" T0 T5 |, W0 ], A$ R% r% E! @, T" K4 S' Q
这是AGV_putin中arrive的method。) e) G# O$ D5 _
$ m+ P" R4 d: t$ G/ s- k. y6 I& N
当到达物料速度越高时,这个报警更多,% ^" P4 o7 Z8 X5 a3 |( j4 c% c, p
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
7 [6 I6 T! ?; o7 o3 \% g程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
5 S, t$ L- @: K1 R
% p: i* ?  i" E3 N0 ^6 }另外一个小建议,就是move,所有的move都可以这样4 b8 z7 B& a) R2 m8 ^& d
if not move() then debug end
: l- b% S0 W- Y7 d0 u这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
5 j* ?6 D; B" _( b9 L- H# t$ Uplant simulation中的free libraries有AGV模板,2 d! c3 X! i% p
里面也有案例。
* i" i1 R( V4 X, w# N我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。* y4 |7 Z5 n8 V0 D/ g

* ~$ r+ a$ v6 W! x; C5 p我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
1 x! _( P' m7 p  J# y( o0 a# u% U% M, _* B/ {/ g9 h) v
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 : ?2 O) E" K8 j/ v% |: x; v6 G
这是AGV_putin中arrive的method。2 k: Y2 |  F" ]3 I) }

& H( h. H6 U" W, n, g, r当到达物料速度越高时,这个报警更多,
* }5 f( Z/ A  Q$ Q$ \
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-24 17:15 , Processed in 0.019812 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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