设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8431|回复: 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'
5 }2 Y0 w( k( ~1 J*/
( L: b( C* i9 His4 V7 a2 p* v; j: d
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;. s( o- ]3 B+ `/ I$ H
do
, U" G3 a7 n5 ~  L+ Y9 j2 T        Lan := rootfolder.Internal.Tools.AOLlanguage;
5 s1 Y( b5 F  Y. _9 _# A7 S        if current = @.Destination -- else return( N/ |) y. o* v; y0 r3 p
        then. a  X) B1 i0 r% b1 k
                @.Destination := void;+ d: R3 X+ ]& r/ F% X
                if @.occupied then
3 Z( V8 Z3 i3 w) ~/ g8 \                        part := @.cont;
2 [* X5 m' _8 ^. }9 `1 r                        @.transpOrder := void;+ H5 A+ a- S; Y3 s
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1," n! b' ?$ C0 _4 `. R& U
                                @,root.eventcontroller.simTime);
4 q' ^, Z; j1 t9 A, I  I                        @.HasOrder := false;
) `2 k8 r7 g$ E3 w2 c7 i                        @.DrivingHome := true;) J/ V! p. V( U% [/ F
                        rgManager.tryToStartTransOrder;
, N. i- ~. [  z' @" D2 e                        if @.Destination = void/ Q5 Q9 a, M4 B8 `# \( X5 `
                        then -- no transport order for vehicle @
4 ~) w: [% ^* P, U                                @.Destination :=4 P5 d# r- j& @. ]4 F3 ]( L
                                rgManager.nearestFreeStation(@,track.~);! B3 F, q( p& V7 s& a: g( K: z: X
                                newDirection(@);   
/ y' r+ j# B& Q: ^& Q, c+ i                                if @.Destination /= void then
" ?  s0 x' \, p; F( V9 d9 W- e: W$ P: Z                                        @.Destination.NumReservation :=
( y* f, `3 D* }" x                                        @.Destination.NumReservation + 1;; t8 M6 D5 y: L8 X2 C( J% A
                                end;
  I3 E) ~1 Q5 P8 t; h7 {  k1 q; ~                                @.CurrIcon := "drivingHome";$ L  P3 P. P- ?/ U% O9 E
                                @.DrivingHome := true;8 C3 ~4 Z0 n/ A/ u/ |
                        end;
7 ~$ n2 x  ]0 ~1 T( }3 S# h$ V& N                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
! A3 X0 ~  A% ?1 P% S. x  I# Y" y                        part := @.transpOrder;
. ^- c6 p% a# K1 y2 B                        part.move(@);-- load part
4 {: Y7 i3 ]4 `                        @.CurrIcon := "load";. Z$ _) p% I1 j1 L0 g& x
                        GlobalDistObj := part.globDestination;
+ i7 P& a% ?0 V" ?                        assignLObj := rgmanager.rgAssignL;
% _! ^* h) C1 o0 a                        row := assignLObj.getRowNo(GlobalDistObj);3 _$ j2 a# K3 T2 h: s& J& I
                        if Row = -1 then -- since 704 \3 \& z: s; W& ~5 s
                                if lan=1 then
. {$ u3 w5 C6 P5 Z0 Y: ?- x( t5 v( d                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),; S5 e# S, u6 p& t
                                                to_str("in der Andockstation: \"",?.~.name,"\""));  X* `& t- X0 o5 B; Q5 @
                                else
; D' o0 x0 y$ o* q* M' g                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),* j2 k. G  h9 w+ H  l
                                                to_str("in docking station: \"",?.~.name,"\""));                                % {% C1 Y2 H- C1 e( o) q
                                end;
" u  N; f1 R0 H" E                        else& |0 S+ T4 Y/ f/ d, b9 E# c3 Z6 L# ?
                                @.Destination := assignLObj[1,row];* z+ Q/ x2 h1 ~( I9 K" B3 T
                        end;                       
* G# ]- B( T) C* G                        newDirection(@);
4 w6 e0 [; \" @6 ?0 ?; J* T6 P                        @.HasOrder := true;& S% s/ u6 L! H
                end;
9 c& b1 Y" ^6 E" }5 M        end;
# F0 v: t% u! ^$ q8 g! H0 xend;        -- of the method" S  O1 [3 ?; k5 u; Q5 G" {. ]9 _
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 4 q0 {/ [3 k  g( m+ O
; C0 [% [4 y3 n: V7 N
这是AGV_putin中arrive的method。
  L5 u0 v4 d1 p/ t! Z( L7 m# g- T+ T) j2 z  l2 I
当到达物料速度越高时,这个报警更多,% _# Y6 E5 d9 d& d4 g  G3 P$ r5 J
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
' \/ S5 b6 [6 N4 ^- D/ p程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?- u* v2 i/ @/ E0 z3 [
( b5 w! @( A$ d" }: ?$ n
另外一个小建议,就是move,所有的move都可以这样4 q. R2 q# a8 W: U) x4 t2 W9 W2 n
if not move() then debug end% J$ {. L1 X5 f5 |, f- y
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。  f* A  t4 h. y" c) u% X
plant simulation中的free libraries有AGV模板,
8 H; ?% Q* h! L$ b0 G1 ~5 {. l里面也有案例。; O; T/ F, s" E7 b: Z8 Q
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。: C/ V2 @0 b8 s' P8 `$ z# L5 r% w
9 `4 \- f6 M' c$ {$ @$ ~
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 5 b0 c  e" s( T9 H) i' U
1 Z) S! F6 q$ i9 j
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
1 Z0 r4 k0 V* b% O( W这是AGV_putin中arrive的method。
# U7 s. i$ A8 w$ s: U; A
+ A4 c& p, v( w! {; M8 n) \, V当到达物料速度越高时,这个报警更多,
0 ~+ u* Q, |" [2 b
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-3 12:08 , Processed in 0.018364 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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