设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8874|回复: 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'
6 e8 h% o; M3 `) u  |*/; n% [# C7 R% E! Z3 B" P
is9 D) |( N/ j5 }$ m9 f* S
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
% w: e8 t. Z# u. u* o% Udo' V7 o- u5 h1 L' A4 @
        Lan := rootfolder.Internal.Tools.AOLlanguage;
* l; T6 F+ z/ Y3 h2 w/ E. B        if current = @.Destination -- else return: A) _% r# o* j0 X0 l0 J
        then: a% Y3 r1 i2 d* }4 |
                @.Destination := void;
+ `! C4 N8 ~( a) n6 G6 ~                if @.occupied then
$ [- i4 I2 z) w# w                        part := @.cont;
" d$ y# N" p2 _                        @.transpOrder := void;4 d; z+ i; l- l/ m+ U" V8 ]7 Q
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
$ e8 T1 B& s! `3 X* S1 ~1 N                                @,root.eventcontroller.simTime);: S8 V4 v6 v+ T# g; g' _4 X
                        @.HasOrder := false;% H+ i; a3 J3 L* A0 Q) O: ]* t3 v
                        @.DrivingHome := true;8 n( c  i2 S7 l! j& G7 z& o
                        rgManager.tryToStartTransOrder;
) W1 M) d3 O9 p* @' ?1 _                        if @.Destination = void5 h, {$ E& v: k
                        then -- no transport order for vehicle @
0 a  L4 {3 N6 r. o# V                                @.Destination :=* }1 P$ l! o' {) E  @3 V! L1 T$ P
                                rgManager.nearestFreeStation(@,track.~);
3 {1 S! [% K4 I9 y                                newDirection(@);   6 n% P( h1 w# T
                                if @.Destination /= void then
. r. J% ]9 I, f0 H                                        @.Destination.NumReservation :=
/ o; @& p0 {2 b                                        @.Destination.NumReservation + 1;
4 x. @9 n7 D/ C) k+ E5 ?6 }                                end;
% p! I' \$ w3 N3 A                                @.CurrIcon := "drivingHome";
& W" x0 e2 v" ~8 R: |! Z                                @.DrivingHome := true;* ?- ^3 i1 P+ j/ {2 N  j  `7 A. T
                        end;
  u, q' }# R1 ?0 D1 c' R                else -- the vehicle @ is empty, both vehicle and part are in the same dock station7 H' P) p. h$ H& J6 G" J/ h( t
                        part := @.transpOrder;" x! J  K& B6 k
                        part.move(@);-- load part; d( [, x8 n8 c0 R
                        @.CurrIcon := "load";2 a! D+ W7 ]* T. k( K
                        GlobalDistObj := part.globDestination;/ S. O  r/ I" n( M
                        assignLObj := rgmanager.rgAssignL;0 r8 {) n6 z& H/ d
                        row := assignLObj.getRowNo(GlobalDistObj);6 w) W; q" f$ ~# p7 G* N5 L
                        if Row = -1 then -- since 70) O4 D% y6 m3 t: `; _  x( y
                                if lan=1 then4 `. p1 N4 o" F! K2 p4 v
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
: ?  g" q3 r: r8 G                                                to_str("in der Andockstation: \"",?.~.name,"\""));; v# ]$ L8 g: V
                                else4 {8 U- F7 |! |) j2 j
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
. s5 N8 d  Z5 M                                                to_str("in docking station: \"",?.~.name,"\""));                               
( E$ Q; G; k, u% Z                                end;' E/ Q9 u' Z) J) M6 ?
                        else6 j! h% n8 A4 L
                                @.Destination := assignLObj[1,row];
1 V- X" X+ D6 Y& I: h' p) }( w                        end;                        + y0 q1 ?( x) C+ D0 W& m
                        newDirection(@);: _( I8 ]6 ^1 V
                        @.HasOrder := true;
. Z* }" c" A: I6 M0 n                end;
& Y' o2 n5 }* `2 a# g1 l        end;
+ n- A# N( f9 ?7 W8 Xend;        -- of the method: F# Y: t  D  j3 _; h' L5 R$ _4 G
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 & W; {+ y' }/ d* E% S% ~
# Q( e* j9 H" I1 b+ ^
这是AGV_putin中arrive的method。$ ?" h4 c/ P& B9 m1 b- t, B* B

: I) Q2 z3 t% B% W, ]5 d当到达物料速度越高时,这个报警更多,
8 `/ m) A) }2 i- ^9 ~可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。: X3 r3 p, E8 X6 J$ R0 W/ f- z
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
) z, s  _' e8 A6 i: G1 K5 P" h
0 J( |5 t% H. ]( f; t另外一个小建议,就是move,所有的move都可以这样& p5 A1 `! o! ]' c$ l
if not move() then debug end
/ N( z" V2 @( a2 [) I这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
) N# W3 P8 k& N7 ?4 y9 hplant simulation中的free libraries有AGV模板,
% B! H9 v9 G+ z( N0 N2 f; s里面也有案例。
, R4 n0 Y, g$ U/ l; K0 ?  B0 O我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
( f8 q7 E- |- S4 g( w$ V" `4 g
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 8 m" o* u# u) O7 C& W

2 h$ p7 T- {$ u4 l* m. g( L; C那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 " X- ?. Q; S5 Z! R- @
这是AGV_putin中arrive的method。
6 T" `7 \+ ?. `4 G+ y( p& R' T* X$ V) G( R  D  ^" r# s
当到达物料速度越高时,这个报警更多,
0 V+ ?! @7 Q# X) Z3 ]7 a
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-1 18:21 , Processed in 0.019453 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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