设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5683|回复: 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'
; S) ?, `6 c$ q*/
1 O6 v2 Y1 q' ?2 e4 R  O1 R  gis
# ]: H% Z# @5 n- y        part, GlobalDistObj, assignLObj:object;row,Lan:integer;5 U1 x' t8 T* G$ g+ M
do! U+ e3 R& F6 ^" X1 p3 \6 W
        Lan := rootfolder.Internal.Tools.AOLlanguage;& A& |- u+ P8 Y3 X6 ]6 ~! s+ I
        if current = @.Destination -- else return
, m4 H- Q5 t8 L        then& R- r( x  H/ ]: Y8 s! f1 _$ O7 ~. f+ c
                @.Destination := void;
- {" V$ X( e+ {                if @.occupied then* c- J' g6 W% P
                        part := @.cont;
1 M& Q5 \2 ^7 M7 ^. |$ c% z6 G" N                        @.transpOrder := void;
6 R2 o( i: D4 D2 S6 i                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
- p0 ~$ n  }7 T                                @,root.eventcontroller.simTime);0 j& G1 S' v4 D" w
                        @.HasOrder := false;; r1 v7 V) _3 Y8 I% Y3 l2 V7 N) U
                        @.DrivingHome := true;
9 D" p, R4 F+ z4 B8 x, T% a- X                        rgManager.tryToStartTransOrder;
  s2 b- K; W2 I6 G" m                        if @.Destination = void
) C/ e% @' y7 g$ G% t8 O                        then -- no transport order for vehicle @
5 n) X* b" O5 U  {. C3 x                                @.Destination :=
! Y/ O' p  ?: @2 l                                rgManager.nearestFreeStation(@,track.~);
: `6 S) m& ]- V" s9 X                                newDirection(@);   , q5 R4 t# Q5 H
                                if @.Destination /= void then
4 _" J4 H9 b( P                                        @.Destination.NumReservation :=5 t" n# L2 n$ @0 N; Y& L2 [
                                        @.Destination.NumReservation + 1;
3 b. M% W; p) p                                end;8 a$ @6 h0 @9 ^* D+ M* ?
                                @.CurrIcon := "drivingHome";- Z( h3 ]* Y$ ]8 q
                                @.DrivingHome := true;
0 W. X7 v- N: C' z                        end;6 t- ~& r9 d( u/ q1 l; |1 e% R
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station4 N. l0 C/ w3 x( s& E
                        part := @.transpOrder;& J$ z1 y$ E1 k6 K
                        part.move(@);-- load part+ X5 L& ^, @1 @" I: C) j9 ^
                        @.CurrIcon := "load";# F% p2 x4 r0 ^% a, f2 k& m! v. M
                        GlobalDistObj := part.globDestination;, f! _: b' L, {, I
                        assignLObj := rgmanager.rgAssignL;* X" c; u  ^3 ~5 U: K# T9 R' P3 m
                        row := assignLObj.getRowNo(GlobalDistObj);) }' d1 p8 w$ t
                        if Row = -1 then -- since 70
+ x5 h3 q. j  m& t  h                                if lan=1 then5 ~( h/ ?" _8 P& [# d0 x
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
. ^1 J  y2 `8 S  G. M8 U. P                                                to_str("in der Andockstation: \"",?.~.name,"\""));
' M# ^3 |  v: E' M6 I. B                                else& b( z9 o. b4 c
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
4 j0 z, G2 c' |2 o! [                                                to_str("in docking station: \"",?.~.name,"\""));                               
+ W0 {3 D6 Y/ J% Z0 s                                end;; t% ?5 b7 s, }' y7 [3 [) L
                        else5 y! C& s% Z# C
                                @.Destination := assignLObj[1,row];
; x- f3 _- q& X, f' H, U5 {                        end;                        ; Q% j; u; R) x2 Q6 Z
                        newDirection(@);/ R7 T7 H5 Q5 l0 f
                        @.HasOrder := true;
2 \; q& d2 {; b: e: b                end;
3 V. k9 W+ b1 z6 z  N8 F3 u- s* V2 Y        end;( h1 F5 Q$ Z3 r( ^
end;        -- of the method
* @2 ?; ~" a$ F/ Z3 i
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
+ \' h( m! ], k9 `: `8 {. ~
$ c4 z. O1 ~0 ~6 q$ r这是AGV_putin中arrive的method。
4 T9 d" A% V1 `( u  F, d
( J5 p  f9 f0 U( ^4 u9 H当到达物料速度越高时,这个报警更多,+ l3 v3 _& D' Y( r3 X. v1 i/ K5 o
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
2 U: Z4 G, U  g0 `2 U& N2 d3 g程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?  s, w6 }% {! n( ^- @$ w: g
  R  N, P: I( w; W" f9 j+ Z
另外一个小建议,就是move,所有的move都可以这样$ G% w: E2 w5 R8 h7 c1 t7 ^
if not move() then debug end& }1 W7 }) D9 u1 S1 T& H
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
3 H9 k; a4 E7 T1 ~! U0 zplant simulation中的free libraries有AGV模板,
  |$ M6 i% ^- {里面也有案例。
5 n. k' i* |7 i7 W( F; }我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。  y3 x4 j& Z: Z1 z2 h$ U
: l0 H1 ]/ `. e6 m% V
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
1 C) E5 j' D# ?8 ~9 J* R' m* r( Y% Y! ?3 m- k+ G' [
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
  j& s( j/ O* h9 g7 t! z这是AGV_putin中arrive的method。9 ^1 N" q9 H# G5 o0 F: @% O

) Q1 F% e8 l$ B2 {9 B当到达物料速度越高时,这个报警更多,
0 Y/ `* S" T/ R% j$ ~" b3 A
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-14 06:31 , Processed in 0.022887 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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