设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6339|回复: 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'
) y' \% O4 ]: j*/7 x2 }: C" g! @: E  E' E% w
is8 T# N. g3 r  F- o( v
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;3 P1 N  O$ |- N# i* M' H, t2 X
do2 D9 y: t- }7 B! r3 E
        Lan := rootfolder.Internal.Tools.AOLlanguage;
+ ^5 f% h" |' L( ~6 R) x/ c1 _        if current = @.Destination -- else return
  @) |- @% f/ q% L% w        then
4 O7 h/ ]0 f8 B0 V: L* w: g; n                @.Destination := void;6 s/ [) l" m* E; e! v: H0 L
                if @.occupied then/ I9 e' Q! h$ G5 Z, t, {2 ~# t  p
                        part := @.cont;
. M" `& O7 I7 T/ D0 l2 d                        @.transpOrder := void;
4 W7 u- z6 s4 D& l, u; A                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
! v7 O1 D) o7 C                                @,root.eventcontroller.simTime);
; R/ s' E' P' x1 q+ P6 ^9 J                        @.HasOrder := false;7 q, L! ]  [. E& r
                        @.DrivingHome := true;
' ^! d) f) W% l- _" p8 N) W                        rgManager.tryToStartTransOrder;( L, y3 J% i' S' x; ^% Y  I+ Y( j
                        if @.Destination = void
. ]& L3 [% l1 Z3 N                        then -- no transport order for vehicle @' [$ @7 v1 F( `1 s7 X
                                @.Destination :=: R+ F- l( f+ Y3 m
                                rgManager.nearestFreeStation(@,track.~);6 X* R* |  ?( |# F# _
                                newDirection(@);   2 I6 q* i4 F# B( d$ y  c! w7 V$ N
                                if @.Destination /= void then
+ h8 Y0 o7 Q- b3 ~, X                                        @.Destination.NumReservation :=
# Y3 Z0 E1 z7 Y* O5 r8 P' |                                        @.Destination.NumReservation + 1;$ W3 Z" C# l% k4 k3 v4 y# s
                                end;
% t( `! g8 c, \: I; f                                @.CurrIcon := "drivingHome";
4 e" S2 c8 N0 |! R3 b& ?( l  N                                @.DrivingHome := true;7 E' k0 `6 u6 W
                        end;8 ^! Q1 a& u3 Y; }2 T' O
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
1 g& m: ?( W5 @$ N                        part := @.transpOrder;
7 j. N5 X. s# H5 {+ t" t                        part.move(@);-- load part
2 V, W" c. b( }" O5 S( v$ ~+ s* a                        @.CurrIcon := "load";
2 ~$ e  r. C+ K$ @                        GlobalDistObj := part.globDestination;: i; i4 [- }' k- N( g
                        assignLObj := rgmanager.rgAssignL;$ r& f# s4 V# `6 ?
                        row := assignLObj.getRowNo(GlobalDistObj);
+ u- c4 Z" g. S- o( j                        if Row = -1 then -- since 70
- T$ N# \1 @1 _" `9 ~3 W                                if lan=1 then, l( m; Z" U" w0 x8 j
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
, K0 R0 p0 v8 H                                                to_str("in der Andockstation: \"",?.~.name,"\""));2 X& T7 _% k" A8 @" I1 O
                                else
4 q( J" X6 [$ F6 N4 i2 {                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
9 j, F- O- V5 z1 q; l0 M                                                to_str("in docking station: \"",?.~.name,"\""));                               
- {( i2 P9 p: |+ |                                end;
4 ^% v+ `/ U; I) u                        else
& h( H! k* i! }, H, F6 W7 a: H                                @.Destination := assignLObj[1,row];1 ~% I2 _; D$ f
                        end;                       
: n3 @  U, Z/ O* T! b                        newDirection(@);' m0 _+ c$ C7 w/ B$ i% z- {: m! t* b
                        @.HasOrder := true;
, [: s& [% m( N+ Q- z                end;
' J0 s3 \5 {; H        end;
5 `& U( t+ }# n* Vend;        -- of the method* [0 j; {6 s' ?1 v* Z0 I
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
! \) ]7 u9 z, ~& i4 v3 X  X& Y
( f4 f/ j! g2 p# I1 G2 t9 y: H这是AGV_putin中arrive的method。4 T9 X5 y+ j' u0 F
6 |; g0 w9 R3 P8 x. ?0 H
当到达物料速度越高时,这个报警更多,
" e2 S) o( g+ f% H可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
% Y) c" T$ ]8 y% `2 O8 e程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?8 G! ^. p: I+ W

- E# p3 Z, P6 X5 e3 n3 W8 I' b另外一个小建议,就是move,所有的move都可以这样
" D, ~/ [* _7 W% L& G, xif not move() then debug end
6 c/ F. j8 h+ F8 g) [( `这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
: u) b3 A/ K0 A( jplant simulation中的free libraries有AGV模板,
( e  |' x( c6 x里面也有案例。
  e/ k8 C, Z9 g' G我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。$ f; L0 y# |* c  z9 K. m

! w* i9 X( b( Y# w5 Z5 F我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
# |4 |$ P* N$ e. j8 C
* T& C3 y: C) x/ [( N& t( f/ ^  n" x- o那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 * H0 X! R# V5 A$ ~0 w
这是AGV_putin中arrive的method。7 f5 B5 c" ]! n% D

. {- l8 @% J2 t6 C& p: d0 a2 D当到达物料速度越高时,这个报警更多,
& P* |+ x) F3 g" ?
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-31 14:48 , Processed in 0.019119 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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