设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8091|回复: 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'
; h3 s4 y& }+ x4 }! v*/
+ U: e9 y7 Q3 o4 `is
; }& L1 e4 O5 Y. ?4 g        part, GlobalDistObj, assignLObj:object;row,Lan:integer;/ z- G+ b# Q" B. R: H
do
* o: u- u+ g; c# @9 q' L: Y        Lan := rootfolder.Internal.Tools.AOLlanguage;
# t2 Q3 p/ m. v+ R        if current = @.Destination -- else return
( ~. ^2 [( C* }3 O  O        then
, W: z+ X3 s2 t                @.Destination := void;& M+ l+ V; Y4 H4 a* j0 I
                if @.occupied then( h, ~( o  I( {1 ~( o
                        part := @.cont;
! s% ?. v2 U, g6 }1 g                        @.transpOrder := void;
5 W; ]; s! y6 V2 \" T+ K' \$ H                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
: h8 D4 S% u* b7 D4 J  C) _                                @,root.eventcontroller.simTime);
# s8 p% F0 F  a9 s6 z; ?+ ?                        @.HasOrder := false;+ a0 ^! j; w( p3 p9 q( d
                        @.DrivingHome := true;
, Z; r0 a, A2 v4 \! g3 d: R- i                        rgManager.tryToStartTransOrder;; q0 M" U" R$ S; X* E0 i
                        if @.Destination = void* @1 z) G' w  C' I9 y
                        then -- no transport order for vehicle @9 u' H( B. I' @+ p* W
                                @.Destination :=
0 c( m( R- [' A, }7 _( Y- X                                rgManager.nearestFreeStation(@,track.~);
5 t, t( c, C+ b. S                                newDirection(@);   
3 F* c+ C1 |$ s                                if @.Destination /= void then
! k+ K8 f% [) u! n- H2 @                                        @.Destination.NumReservation :=7 r2 H7 M8 L2 c3 {, a1 B* A
                                        @.Destination.NumReservation + 1;8 f1 L& P9 k% V: ~
                                end;* z6 b) |; D- `0 G5 Q3 Q) i( B7 Q
                                @.CurrIcon := "drivingHome";, q' _: H$ z& N- V0 N3 P% U
                                @.DrivingHome := true;
" a1 ~" d5 X4 l( X7 t4 T                        end;
# y5 s# ]/ \# y1 P7 V5 N                else -- the vehicle @ is empty, both vehicle and part are in the same dock station4 j( C1 ^2 \5 M8 g. l
                        part := @.transpOrder;+ g# ]* A1 o! Q1 J  T8 A. b
                        part.move(@);-- load part
* O  B& a: K& H+ o1 `9 j$ D- w                        @.CurrIcon := "load";' ?; s) b; x1 z1 H# i4 }! Q/ j
                        GlobalDistObj := part.globDestination;
' V1 p# [7 J* \: B2 C- @                        assignLObj := rgmanager.rgAssignL;0 e' U, ~8 Z' s1 P8 M
                        row := assignLObj.getRowNo(GlobalDistObj);
/ H! `8 F, G! U+ |0 l4 R- a                        if Row = -1 then -- since 70: @( ]2 u* K3 ?1 K4 ^& Y- S- E
                                if lan=1 then
2 q! r* w2 J2 S9 {( O6 j! C! N                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
! E) r# [" v7 j* L                                                to_str("in der Andockstation: \"",?.~.name,"\""));
  h+ z5 y0 }6 h                                else
8 i* K* c& ~$ y6 q# T                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),  t3 B" O$ A, n* W: Q8 g7 Z/ M
                                                to_str("in docking station: \"",?.~.name,"\""));                               
- l8 {# V. X& _! f* X                                end;
* S- x& U+ n" C" c4 I7 j. v9 |                        else; q9 t, C: @6 Y, s2 p
                                @.Destination := assignLObj[1,row];
1 ~8 R9 C) Z' z% }                        end;                        ; u" y2 L: H: l+ X4 Z# s
                        newDirection(@);
2 F( s% B. R8 o, W                        @.HasOrder := true;4 j1 v0 U9 E5 G. h8 a& _8 A
                end;+ C$ e5 r, d/ i7 i2 @/ k" p% u; n. u& q
        end;/ O5 ~0 L# u  O# m+ `5 C, W
end;        -- of the method
" i* d" t# _; J3 w2 L( J4 y0 k
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 " \8 a$ X! w, g" p$ R

9 s( V3 p; L1 l, j3 j/ _" V这是AGV_putin中arrive的method。: B7 K9 c' k/ r5 c% Z# }0 u/ _
+ [0 G* [2 V7 G) O7 m
当到达物料速度越高时,这个报警更多,! T. N# O7 v5 |4 p" c
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。9 z. M0 |+ ^: F2 I. @3 ]
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
" ]; p/ R4 ?: [2 ~+ t4 l
: H: ?7 G3 I: n5 v1 v4 m6 Z. [另外一个小建议,就是move,所有的move都可以这样# a$ z" R* Q) C7 U5 a
if not move() then debug end! a9 p  q; y7 v7 ^& X8 \
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
7 T* R% k4 E* A; X9 ~# Zplant simulation中的free libraries有AGV模板,8 A8 o  D8 V/ Z! f2 P
里面也有案例。
1 Y, D# R# V4 T) {7 }我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
4 l7 S. @0 A) ?0 Z0 U
8 N! e1 ?, b. V# M7 _. \我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
1 G4 ]1 K7 F7 ]( k- D2 @) y/ V
# {2 L0 i$ j" k9 E  g那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 & p& f2 s1 @* G& d$ {8 P
这是AGV_putin中arrive的method。
' O( P8 w# I$ \  }; R3 ^
2 n, w% y7 a; D+ C当到达物料速度越高时,这个报警更多,

3 s7 k  H' r" `0 |2 q# U( }3 J6 T1 W& d另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-14 14:59 , Processed in 0.016451 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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