设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7625|回复: 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'
/ q% v; [5 d* I8 A*/- e# {+ \: L2 h1 L8 a0 P
is9 k1 M0 R7 o0 O! @
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
6 [9 c% Z4 {6 ^9 e- w5 c% B5 T, Ydo
0 s2 X; j7 X) i& w# ?4 g        Lan := rootfolder.Internal.Tools.AOLlanguage;" F% G/ t4 X! V5 i6 `7 K; [
        if current = @.Destination -- else return0 k* T! n. v$ D' N- @
        then
# A+ \8 p  t& q+ c, G* Y4 J                @.Destination := void;* C$ V7 p- q8 b+ c6 B: f4 F. R- i6 e
                if @.occupied then
/ J% {' _1 f. J9 I' n                        part := @.cont;- W' F9 B. x& |6 [: U" C
                        @.transpOrder := void;
/ u) `! n# e5 @1 f, w/ k2 w: {                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,) W/ Q; J9 f3 u8 i) ~$ F' m- ^- \
                                @,root.eventcontroller.simTime);. ~* @* q+ c0 v! |( R6 `) L
                        @.HasOrder := false;
% b" B6 L4 @+ H1 j- h) Y                        @.DrivingHome := true;- x  z$ }; ^" I4 u( c" n
                        rgManager.tryToStartTransOrder;( k5 Q) L) X. k- l8 x
                        if @.Destination = void8 X" u% a3 i( s4 f" H
                        then -- no transport order for vehicle @1 s! h$ [# k( Z2 V$ F
                                @.Destination :=" y' `7 _6 x2 M/ o. ~& b2 {: o
                                rgManager.nearestFreeStation(@,track.~);" h, [& W$ g* W% R9 n# P
                                newDirection(@);   6 C8 A: f" ?( ]) N2 M
                                if @.Destination /= void then
' N0 f* Z) @' Y8 m4 U, W1 P' c( b                                        @.Destination.NumReservation :=
% g; p. T2 r" \6 g5 y1 O% w                                        @.Destination.NumReservation + 1;
- Z  b& ^7 K- E* N3 [                                end;
4 R* c1 p) ^% h, `7 S                                @.CurrIcon := "drivingHome";
8 N4 r4 g4 N+ o6 b8 T0 F$ i* ^$ ]                                @.DrivingHome := true;
- U. V' }" j9 D4 Q1 _* {/ l                        end;6 ~5 |; t/ y% k+ c
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
0 Q$ L2 `/ q/ a4 U$ v, ]  f                        part := @.transpOrder;+ a' x6 l4 i. ^$ g1 G& B
                        part.move(@);-- load part  T2 Z( _! f9 S+ I, ^# Y- f! Y; m
                        @.CurrIcon := "load";- c8 m4 S9 g& I' p: Y
                        GlobalDistObj := part.globDestination;4 h* S' G% O: R% E& H
                        assignLObj := rgmanager.rgAssignL;
/ U5 J7 ?8 P  t9 E' o2 q                        row := assignLObj.getRowNo(GlobalDistObj);
$ E, ?, }$ X5 @$ G                        if Row = -1 then -- since 70; J  C  t6 T- w. U9 Y" K
                                if lan=1 then- @& N% }- p3 F2 b2 H
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),) z% W$ v; v; S7 Y: s: O
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
& v1 q/ m0 r$ \2 n( u: H  }                                else9 F8 K/ k) A4 C# G2 {
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
( z# k# u8 _# k% L5 b                                                to_str("in docking station: \"",?.~.name,"\""));                                4 [. t, O# J6 u3 J+ E, ?7 M! ^
                                end;
4 D4 i) k5 i" U) |, w                        else% Z3 g; ?( d: ~4 u2 F) [
                                @.Destination := assignLObj[1,row];) c8 S7 {" X& C7 k: P/ I7 J6 U
                        end;                       
7 d+ A( J0 o: a) x6 U2 r0 B                        newDirection(@);
+ w$ u" a/ K' |6 G, N0 V) I, _                        @.HasOrder := true;6 n" F7 ^5 C3 {1 h3 [+ e6 E! g, U8 J
                end;. Z/ G5 ?) q# {9 }9 X- }. l
        end;
7 R8 U$ g4 ?; v! c* J. hend;        -- of the method
+ m- G% u& }' z2 R1 D( H
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
8 X: A) ~- K; [0 G' M5 F- W- V/ d/ T- ^# }: Y
这是AGV_putin中arrive的method。. ^1 f: D1 U. m( J* A
" A) \3 G( ?9 K
当到达物料速度越高时,这个报警更多,
: I# Z% V! S0 X/ ~9 C6 k2 [可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
) P- S7 t/ e; }: y8 N% ]! d程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
$ s4 M% {* Z4 @& H& j" q2 j" U" Q7 X
另外一个小建议,就是move,所有的move都可以这样
' Y, |$ ^% j" Vif not move() then debug end2 y5 ~- `) N: }% m2 r
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
2 c4 _. }" g$ N7 L8 jplant simulation中的free libraries有AGV模板,* d0 d- f3 t: w& G( i3 X
里面也有案例。1 h) Q  n8 d+ o( E! ?% a5 p. V( l
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
) G. i. E- V9 E- U2 r, g! l7 _. M3 M2 R0 p  f
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 7 a: u" n. P! J+ G9 C" E
/ Z0 Z% ]. F' Q6 K* m& H8 |  y
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
+ q) F( V! s, v8 A5 |这是AGV_putin中arrive的method。( t9 D& [) k" N- s$ l) M2 b
, h# T1 D7 u* Q6 ~, Z
当到达物料速度越高时,这个报警更多,

; _0 N: M4 f& P; O; k另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-20 21:39 , Processed in 0.022077 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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