设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6687|回复: 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'
+ A9 ~4 `5 T" E# U% i*/' j) j# Y+ W( w) |; a2 P
is
/ v8 S# N9 i) {4 \/ o$ d. S        part, GlobalDistObj, assignLObj:object;row,Lan:integer;% E2 c/ ^# h4 Q! o: Q. `$ V
do- g6 u5 f* S7 z- p) d  @
        Lan := rootfolder.Internal.Tools.AOLlanguage;
! k1 T' P+ @0 }- F( z        if current = @.Destination -- else return/ w+ V2 H+ k% a# I/ n
        then
! b0 \1 m9 G6 m7 k                @.Destination := void;
, I+ l# ?9 z; J3 }                if @.occupied then
6 Y5 v6 m; E& I7 Y                        part := @.cont;$ u. O1 R; e4 S9 }1 u. z
                        @.transpOrder := void;
) Q9 R8 |4 o' V+ Y* J) G' |0 m                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
4 V, P9 C- L1 }) v6 j# i# W                                @,root.eventcontroller.simTime);9 Y5 i  {; a. E, k& E$ ~# G2 w& E0 H
                        @.HasOrder := false;
9 i8 I! Q, V! n. W                        @.DrivingHome := true;
* r0 K4 v, j( K+ j                        rgManager.tryToStartTransOrder;8 d* s+ \( ~! [' J8 Q
                        if @.Destination = void
# U1 d5 `0 c7 t4 \                        then -- no transport order for vehicle @
: ?. Z+ r# Q# L8 @: W; Z2 a" Y                                @.Destination :=
2 V, M" t# K3 j( u, I6 |- @                                rgManager.nearestFreeStation(@,track.~);
2 W0 g9 @; D' \0 U                                newDirection(@);   " L2 t* }' p! F. v0 `* [- w
                                if @.Destination /= void then  }# d7 C( I0 R5 o) W9 t' X
                                        @.Destination.NumReservation :=$ e- `$ {6 ]  P: @! A' \0 n' P+ `, @. v
                                        @.Destination.NumReservation + 1;
, Z8 ]0 l4 ]4 W) |% t                                end;! L2 F1 D/ W* h+ @
                                @.CurrIcon := "drivingHome";0 v. [+ U) c5 R0 l  B: ^
                                @.DrivingHome := true;) |4 f) Z6 `5 x  }
                        end;8 O; |/ F. o# X
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
) G0 U: U; q+ [# n                        part := @.transpOrder;
8 g4 {: y' `  \" _2 D/ @                        part.move(@);-- load part
2 x; U% t, d  C( Y. j                        @.CurrIcon := "load";
0 Q; w3 V0 T) k                        GlobalDistObj := part.globDestination;
! e# V+ l8 r; `  y4 G5 R/ h, H& Y; q                        assignLObj := rgmanager.rgAssignL;1 o! d  ^- W- L+ j8 q( g
                        row := assignLObj.getRowNo(GlobalDistObj);; g  ]3 j) `/ k0 j# b+ M7 K  ]
                        if Row = -1 then -- since 70; v5 z) y' z2 f, Y
                                if lan=1 then
; J9 c3 k$ e4 l  m: n! V# O                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
  D7 f# v. M  j4 u                                                to_str("in der Andockstation: \"",?.~.name,"\""));
- `2 Q) |! P- U. R( }  A                                else1 T5 Q8 N2 A$ Z0 G: o* d
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),8 Y' D7 r+ N* x* p% ~1 G4 T; Y
                                                to_str("in docking station: \"",?.~.name,"\""));                               
4 @$ u- y  ?$ Q* n0 K# G                                end;1 \+ C( x  }7 _
                        else1 t' q6 Y; m* s, ^4 A
                                @.Destination := assignLObj[1,row];- u8 s6 {8 U' b& r# z2 \
                        end;                        ) a* w/ A9 U& W3 V9 I% d/ s5 [2 d1 D
                        newDirection(@);
8 N% }# \4 b' g  s1 l, t                        @.HasOrder := true;) y3 j% T; C- _* }
                end;- W; @3 k" k& ~  s
        end;. f2 x! _8 l" C4 i. S0 v
end;        -- of the method2 L4 P* P+ i7 `3 x! y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
3 k" P! U4 r% G/ U" d  E# N* O! x
4 b1 M9 Q2 O9 g8 ~4 M这是AGV_putin中arrive的method。
, I' r! J. q: P& z
- b* ]# D( J' D# x' |, ^当到达物料速度越高时,这个报警更多,
9 ~7 E7 j1 L2 A( W" N( @. \可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
) {" q1 D7 z+ b4 O( f; G$ O, A# q程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?' s, V# [8 ^% ~) z

5 s% `+ G* y& d3 @* T另外一个小建议,就是move,所有的move都可以这样
* n+ O* H2 Q' M( J) [3 x0 C4 k) ?if not move() then debug end
; l3 f# a- K* ?8 w8 u. M这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。* V- g% U- i( `. l; `" X
plant simulation中的free libraries有AGV模板,
* M- x; }  |7 j里面也有案例。" f5 p, w6 T$ L; k2 p2 {
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
) k9 t4 g+ w9 a+ V1 n5 I: y2 G( _7 J$ u% w4 h
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 1 R6 ]3 z& `, h7 z! k( U, P

: [9 B; e% C/ m& K6 g( k3 g那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
4 v# x. e0 K' m$ m4 G% a$ g这是AGV_putin中arrive的method。( q8 d  V; V7 F' q4 a/ g

/ D8 w0 t* G; d' ~$ L9 n2 s3 I当到达物料速度越高时,这个报警更多,

* ~+ e8 I) n( o! U" B+ a* }+ Y% A另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-21 00:54 , Processed in 0.022239 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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