设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7561|回复: 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'
$ Y( Y0 L* }# [# k0 H: j5 @  C*/
% ^5 Q" b1 y. m( P5 ~$ _/ m: dis1 ~0 ]( a, X# g( ^: P, m! w  w
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
/ Q  I6 }4 Y- i7 Ndo
) ^3 _1 k% {9 \9 C        Lan := rootfolder.Internal.Tools.AOLlanguage;0 q$ O! l- h7 o( H- y( Q
        if current = @.Destination -- else return
9 O$ z  s' ^! x0 q  c- {2 c+ S        then( q( B6 f9 S, v/ J7 g
                @.Destination := void;
6 q. ~. G7 j9 M$ l5 W                if @.occupied then
2 n8 ?) H# P- L( j# P; }                        part := @.cont;
; l- X7 b, W4 R1 f: R: z                        @.transpOrder := void;: i4 d" N! g+ o7 c2 g2 }8 q/ `
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,$ ]. ?7 q6 u9 }& T
                                @,root.eventcontroller.simTime);* ?7 R, D) w/ n- B8 R
                        @.HasOrder := false;9 b( h; I# q, E3 Z4 H. E# A$ V' U
                        @.DrivingHome := true;; \$ q4 G6 Q* u+ u
                        rgManager.tryToStartTransOrder;
* R- w' F( s( F' d                        if @.Destination = void
9 K) z  {/ d6 k. Q& c                        then -- no transport order for vehicle @5 F! i" V1 v' i9 h, ]* M
                                @.Destination :=
, g( w: y, _5 K4 ?2 U$ ?                                rgManager.nearestFreeStation(@,track.~);7 ~7 g, t* ?# f% U3 A  c
                                newDirection(@);   
- K6 K3 J4 g" L6 r+ c                                if @.Destination /= void then
& I( Z3 z8 s0 G7 x) U8 h; t                                        @.Destination.NumReservation :=% T: F* ?/ ]) x4 B3 V
                                        @.Destination.NumReservation + 1;
- {: q: E" }- P; `# Y# R                                end;' v4 P6 e& c  t( _3 j) k
                                @.CurrIcon := "drivingHome";% i; M& v1 x- F% g* r  t
                                @.DrivingHome := true;
: R; d: \9 R$ f6 u                        end;5 E2 T$ z, S+ g8 |$ N) t6 t7 Y
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station/ T( t' Z2 L" k4 J. O: C9 l
                        part := @.transpOrder;0 g! Y+ V8 H+ E" S- R/ O
                        part.move(@);-- load part
9 S0 R- ?& s! I4 \  N                        @.CurrIcon := "load";
) w: G" \$ w9 s  t- x1 U, Z                        GlobalDistObj := part.globDestination;
4 X, ?8 K3 N# y  I3 a0 D                        assignLObj := rgmanager.rgAssignL;
5 H6 M% f/ F* n1 |% L* h, r                        row := assignLObj.getRowNo(GlobalDistObj);- u5 a& d& C6 r$ ^& [+ d8 Z
                        if Row = -1 then -- since 70
4 }7 c7 {* B& w# g) P6 r  M$ W& T                                if lan=1 then
) t* v( ^5 ~6 z$ c; C( L/ B                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
: _7 F6 q8 j  T# ?                                                to_str("in der Andockstation: \"",?.~.name,"\""));
9 ~) n, H- y7 U0 [: J2 U                                else- R) m7 {, ~6 G2 r
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
1 X" Z+ E5 U( O! B' `                                                to_str("in docking station: \"",?.~.name,"\""));                                1 z4 v& M) `% ^( M
                                end;! }% G6 Y/ O8 \) s% \
                        else9 S# B7 W4 G" k
                                @.Destination := assignLObj[1,row];" f* Z, u3 E+ s" ~. a4 V% J
                        end;                        % i$ T; Z. t, C/ e
                        newDirection(@);4 l) h6 o3 U( C; ^: |6 I
                        @.HasOrder := true;6 R5 X# [) G, N% p$ r
                end;- p: p4 s/ [% m2 c- v  S+ t9 y
        end;
  A* V. x# k" k, k& rend;        -- of the method0 [2 Y+ e& s3 q9 v5 {# @- u& q( ^! n
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
$ s. P. M8 \4 @! u6 M$ Z/ X- J+ v) ?/ Q6 ]4 G+ {5 X
这是AGV_putin中arrive的method。% J' j: o2 W2 [" h- G, s3 d8 `; e
( i$ G* n  o" Z; ]
当到达物料速度越高时,这个报警更多,
: b9 Q0 b2 _3 n; z/ x9 _可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
: x& M8 j$ G; \程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?7 M* u* z; B( }5 i; p, t8 m* U  r+ R

& x9 y1 g0 Y) ]. R0 K) T" N另外一个小建议,就是move,所有的move都可以这样
) V# L6 b* e$ M" H- oif not move() then debug end3 v1 t# Y9 \: s( z. S
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
* F9 _3 o+ k3 I2 P% Vplant simulation中的free libraries有AGV模板,0 S* o5 y9 z  I2 Q% N& k. T. Z) S
里面也有案例。: p' J; d0 w) b3 _: B8 }1 _( Z# t
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
- a2 v" o& U) @
/ R. S- c& M3 \& t我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
* o9 O$ C1 A) d
8 c2 O5 |2 C  \" i那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 . `% x" E3 R" k8 j
这是AGV_putin中arrive的method。4 \5 h7 [. B+ X7 L
* m+ x0 P  o% d
当到达物料速度越高时,这个报警更多,
/ X: v- l( e1 }6 h! {6 B# `
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-17 21:58 , Processed in 0.016927 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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