设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7071|回复: 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'
% D6 M' U6 M6 T/ e*/
! p" u& s  q* L- ~, qis+ L9 j# Y; m( `& n/ F0 d. y! Q
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;, t1 B* n$ Z9 C9 [2 w( f% o2 k' x
do  a: V7 J7 s+ Q; `! n
        Lan := rootfolder.Internal.Tools.AOLlanguage;
. j2 |  C1 t- I& c5 Y        if current = @.Destination -- else return
  E: x& O2 `/ [: l2 I        then
  ~9 H, z% v/ h6 x! ~                @.Destination := void;
# [0 z# }# l; e$ p4 T1 v6 j* _                if @.occupied then
- V; D. S0 s2 w( [# V# x6 g                        part := @.cont;
+ @& \; t$ d: p7 I/ y                        @.transpOrder := void;& Q- B$ ~9 o1 O5 ~& N% J1 [
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
8 [' t! i+ i+ l5 h  [! q                                @,root.eventcontroller.simTime);' E6 `0 g0 L; n" o( I- |
                        @.HasOrder := false;2 c8 ]5 v3 w: {+ B. k. ?' J
                        @.DrivingHome := true;
' i( _: q: _) x) F8 u% _. W                        rgManager.tryToStartTransOrder;  |' _2 z; H3 t' A% t) S; Y$ P. H
                        if @.Destination = void
$ `9 C8 H8 Y  E$ Y+ q8 Y; j                        then -- no transport order for vehicle @
, ^+ Q6 Z3 N9 Q1 F5 s  x                                @.Destination :=7 c5 Q3 F( I0 `3 `7 V& u. u2 J8 g* R
                                rgManager.nearestFreeStation(@,track.~);
1 u' s, c9 f& r" _2 m                                newDirection(@);   * k1 {. l* `1 R% |
                                if @.Destination /= void then
% v, V, s/ b0 N- N. g! R                                        @.Destination.NumReservation :=) N% h% m3 W( _" T$ C: u, s7 p5 O
                                        @.Destination.NumReservation + 1;7 h+ L  p) d, ^, f& M- q9 \
                                end;7 K2 E/ i# I+ `  k, [- v. x
                                @.CurrIcon := "drivingHome";
: e: ]8 ~1 c" w                                @.DrivingHome := true;
- h/ a# n! e" j, M" S                        end;
0 ]& ^4 W0 u7 N9 C5 y" w                else -- the vehicle @ is empty, both vehicle and part are in the same dock station7 s3 Z6 ]! `8 }4 J2 l9 m$ }+ E
                        part := @.transpOrder;( e% I( _; Z/ i
                        part.move(@);-- load part8 \% m) z  r8 T" o' p5 a
                        @.CurrIcon := "load";
5 f& R2 `0 D+ \                        GlobalDistObj := part.globDestination;, B' @% E0 Q% ?1 H" @& ~7 w
                        assignLObj := rgmanager.rgAssignL;3 N$ r; S  b. o' n, P7 N& ~: K3 F
                        row := assignLObj.getRowNo(GlobalDistObj);
( X+ D% e/ J+ Y8 y& {& @3 }                        if Row = -1 then -- since 70
  }& `: a! W3 C  i- E                                if lan=1 then
& K6 O  ~" Z- E* z                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),( L, l- N8 D3 |. x# G
                                                to_str("in der Andockstation: \"",?.~.name,"\""));. I: a: r! K8 H9 ~$ @* I3 q: e
                                else
: ^- N1 x: _5 r/ ?% ^# c                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
4 J* {+ K7 S& i: y* G                                                to_str("in docking station: \"",?.~.name,"\""));                               
: y( B" r4 u. _                                end;4 p9 [! N2 ~* x4 e
                        else
" ^" t* T* w. I6 ]/ h4 B8 g# K                                @.Destination := assignLObj[1,row];
9 I8 _6 f$ x+ U7 x( G5 x                        end;                        / k2 T! s; V+ ?4 F9 f
                        newDirection(@);$ B+ M; d* i+ b% j
                        @.HasOrder := true;0 x4 S( \# O; c  U( b  G( E* P7 Y
                end;, U$ [- T1 B6 K. p5 _4 Q6 f: M
        end;
/ N  {% n% j" @+ a* tend;        -- of the method2 S+ K, d8 @% c; Q& B1 y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
8 q& A# F4 t! w1 i9 B$ F$ R4 k. w) z4 y; C- G- Y) n* a
这是AGV_putin中arrive的method。1 M, U/ a# y& w8 b, s

! T/ I, E. T6 f: W4 z( D+ D8 o( p当到达物料速度越高时,这个报警更多,* C9 _+ z: ]  h# {5 m1 l# v
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
2 p& `4 c% E  T' w) g程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
9 L6 S! v0 [* v( X" G" C4 i% x: n- @6 [5 s4 c" v" B: {
另外一个小建议,就是move,所有的move都可以这样  c# `/ l1 Q  n2 K, C/ ~" C
if not move() then debug end1 Q9 I. W4 D* W" }% L' H' D4 M
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。( l8 X, z$ [; n  X% \9 G" \1 n; A
plant simulation中的free libraries有AGV模板,
7 i2 t$ F4 j  g! g# L里面也有案例。8 p( w8 \* c+ w! d9 ]
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
  l/ q- W* j$ W2 }4 Z: }& Y- R/ {; D0 d: Z! R7 i' X3 G2 {+ X; n0 s1 h
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 8 o3 Y3 }" A1 ^& l, w
* |, K2 n8 L2 f8 @, Y! J& x
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 8 {3 P! H! A) u6 q/ I) C
这是AGV_putin中arrive的method。
- {6 n3 R& g; I- V, A# s7 H0 a$ O* Z3 A5 F  \4 U
当到达物料速度越高时,这个报警更多,
/ b! j1 j0 E# G7 b
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-14 23:50 , Processed in 0.024168 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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