设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10159|回复: 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 E) B4 N# @+ p/ A5 C( U' q
*/- q; t1 p6 a& }7 k* Y# l: J  Z0 X
is- s% o. w% S4 ]
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;' q. s( B1 Z( r, R$ Y
do
+ H# ]* y/ L" V! }8 v1 E        Lan := rootfolder.Internal.Tools.AOLlanguage;' \* E5 q! E; o- r+ @
        if current = @.Destination -- else return
0 _' x( J5 p0 y7 d        then: ]& J, T  X) L5 @
                @.Destination := void;7 r" \3 r, Q8 q) f
                if @.occupied then& U5 N/ z! h" y' r8 P6 T; @
                        part := @.cont;
% S" s; C+ S* }( P# S  v7 Y                        @.transpOrder := void;0 M- p+ M2 g: K) C1 p" N0 A
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
( _# A. a( P- E# X! ~                                @,root.eventcontroller.simTime);0 E3 d7 F8 E& N; _7 w
                        @.HasOrder := false;$ B2 W9 z( k  \. {
                        @.DrivingHome := true;. p% x& T0 h  _0 Z  Z
                        rgManager.tryToStartTransOrder;" \& W  {7 L" O1 n& T
                        if @.Destination = void8 a' ]( |" [" o0 X4 ^+ k5 Q
                        then -- no transport order for vehicle @; q, H0 x( ?. [; ?6 `" Z3 C
                                @.Destination :=
9 n, F  w( ~0 u. b5 f' _- W                                rgManager.nearestFreeStation(@,track.~);
! s0 q) g" H3 H) H% L8 ]                                newDirection(@);   
5 ^4 R4 D& I5 L! S4 {                                if @.Destination /= void then, `. ?+ h3 s% o9 {6 T1 U: ^
                                        @.Destination.NumReservation :=0 P1 _5 }, f8 z# Y! ?. t
                                        @.Destination.NumReservation + 1;
, Y8 i6 `* Q8 T" G1 V* }2 F3 i                                end;3 d1 D4 I( ?1 E$ q) X% K% _
                                @.CurrIcon := "drivingHome";$ l' Z5 U: }* ]0 G- y9 c1 `4 r
                                @.DrivingHome := true;
% g5 v0 |0 W2 s                        end;
  H, {% W- E+ H2 ]3 B' O' H1 @8 N                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
! d/ E$ P9 f! R, q                        part := @.transpOrder;
$ a( w8 |1 A8 ]6 G                        part.move(@);-- load part
" S/ m( ~- e- L) W( k5 ?' ~4 \                        @.CurrIcon := "load";& B+ S  h. i; h3 N
                        GlobalDistObj := part.globDestination;0 O7 z" {/ _) V, k$ R6 }
                        assignLObj := rgmanager.rgAssignL;* N$ K5 t) ^$ e' ?& ?
                        row := assignLObj.getRowNo(GlobalDistObj);
( V! R4 w  ~* G5 i8 X5 k5 {' M                        if Row = -1 then -- since 703 @( Q$ s3 b8 _, s6 y0 f1 e! H8 V
                                if lan=1 then, O# ]0 ~' o2 @! y
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),' }0 M6 D- k" l# y
                                                to_str("in der Andockstation: \"",?.~.name,"\""));7 S: T9 t9 l. z6 [$ e7 S
                                else
/ m: s( R( |0 q                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),: X- C# F6 ^  y% C9 F8 R
                                                to_str("in docking station: \"",?.~.name,"\""));                               
! Y% u0 v6 h2 p+ V3 q9 V                                end;
4 r1 q; C6 R8 [! ]% f7 D                        else
2 Q/ A' {) `4 c. O  O5 e                                @.Destination := assignLObj[1,row];, T( D- N0 X$ Z3 a  i$ A- L5 I) M
                        end;                        * W  n' k5 R9 z, O, p- q/ _
                        newDirection(@);
' v: j0 S! x1 f; `( a1 N6 q2 R                        @.HasOrder := true;
1 R2 p! v: e, ?: N9 A9 R                end;1 \7 j' K' T" S. _/ K8 p* |
        end;8 |/ u$ j  b* _8 \$ N, @5 ^7 Z
end;        -- of the method6 w% R( Q$ E$ g1 ^5 J4 }2 x
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ( R4 N0 v  _$ x) n9 B# ^9 `) F
$ _2 P. B  x0 v) r
这是AGV_putin中arrive的method。2 Z+ m* ^# h) B) U" E  O) X2 v

. l6 A3 A/ s! h/ e9 G0 a: R& V当到达物料速度越高时,这个报警更多,
0 R1 m- a1 g3 y" f2 E可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。! [7 U' O" d9 h- M% c
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?, G/ R& A! T/ b( z$ J

5 g. g* i2 A! L6 w' ^% y4 W另外一个小建议,就是move,所有的move都可以这样+ t2 ]& N; l8 i* Y+ M
if not move() then debug end
+ D( ~9 L' T# X) g  k这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
/ T; k$ V  Z7 {. x- N/ c" mplant simulation中的free libraries有AGV模板,  V8 c6 o: U6 p- {
里面也有案例。
9 d# `5 Q( f* X9 K! |5 M+ F4 {1 d我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。3 Z# D$ e9 z& d
) g5 ?' @* M1 F& e; o" P4 t2 Z
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑   g$ B/ \* h: v" ~3 s8 w

# q& {9 I- T# {( y1 Y那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
, Q5 F# _% ~/ v2 C* K1 O! j这是AGV_putin中arrive的method。
4 F% p/ P( G/ M0 ]
& h9 W5 C5 ]" D. @) `4 t4 Z当到达物料速度越高时,这个报警更多,
  g- i+ G) w1 P! F; d3 v$ B
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-17 07:19 , Processed in 0.015871 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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