设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8807|回复: 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'
; H4 j3 ]" B" x* u# K: t*/8 k( B) E6 ~# ]% X. M
is/ \% x' D* g$ D! L5 F2 e1 z
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
# K( F, Y+ r! g5 J; Z0 U5 Wdo
  e0 i: H. s4 r; ~9 _9 V# r& C; M( ?9 e6 f        Lan := rootfolder.Internal.Tools.AOLlanguage;4 v. ]6 P. L" ]4 H2 X) a
        if current = @.Destination -- else return
( Z: b, O% ^* P        then* r" D8 ^0 b8 S/ O7 I( Y; f. N
                @.Destination := void;
% T" D/ X$ z# ~/ g  I$ i- A                if @.occupied then# \, e3 u1 n& @8 \
                        part := @.cont;
2 K+ M$ G' }  ]+ Z                        @.transpOrder := void;
- W5 q; P- K: _' ]                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
+ A' ?0 {# W: ~" A0 t! z# B8 s" B                                @,root.eventcontroller.simTime);$ A% S  G" V2 R5 ?( M
                        @.HasOrder := false;
4 P1 v5 s9 o) d0 ^                        @.DrivingHome := true;$ L& e3 v0 E' _' A% u' Q0 P! s
                        rgManager.tryToStartTransOrder;
3 `5 m# n$ I$ q2 n- F! d' g                        if @.Destination = void' a2 E) M% v1 K0 p1 L& o& h1 {2 S1 b! C
                        then -- no transport order for vehicle @5 e, A' R; \' S; c, U
                                @.Destination :=
9 o( G8 q0 i" y6 N0 P$ A                                rgManager.nearestFreeStation(@,track.~);
0 X$ H$ V2 n% r) }6 W. D/ G3 M                                newDirection(@);   * w& z# e2 k5 F) D
                                if @.Destination /= void then
: q6 n; |) L  }% O3 @                                        @.Destination.NumReservation :=  K. a7 X' ]3 w5 \
                                        @.Destination.NumReservation + 1;
. l8 j' t4 F( V4 s5 d                                end;
  M( Q2 i/ _1 H8 Y                                @.CurrIcon := "drivingHome";; k7 r: R/ C2 u0 t/ n
                                @.DrivingHome := true;
# @9 {) o8 J, ]) M* T3 K- m                        end;
" m; `& O/ S9 ]: Y& u0 Y                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
2 N( S( K& p3 Y/ T                        part := @.transpOrder;
- ~  Y8 D! m3 L( O8 S' ^                        part.move(@);-- load part
2 j8 a: c3 F6 k9 R                        @.CurrIcon := "load";; D! [* C7 D' H: o$ i' R
                        GlobalDistObj := part.globDestination;  L+ a) K1 @" \, W" G
                        assignLObj := rgmanager.rgAssignL;
# d2 t8 r8 V  w9 M                        row := assignLObj.getRowNo(GlobalDistObj);
8 |2 r' Y2 H" a4 ~                        if Row = -1 then -- since 70
! j8 R! r8 Q0 a4 I9 I                                if lan=1 then
0 t$ A# A# e6 m( C                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
2 d% m( L# L5 b: O- o/ U                                                to_str("in der Andockstation: \"",?.~.name,"\""));
4 Y* {  y1 T5 [4 F; m! }                                else
6 Y' j: N2 n1 x- j% f3 ]                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
5 }% o. ]7 T, L  X& y                                                to_str("in docking station: \"",?.~.name,"\""));                               
2 ]8 u7 X" }3 b! V3 I                                end;
1 ^3 p: F9 o, }5 l! F                        else
$ P5 T' I  I7 o                                @.Destination := assignLObj[1,row];
( P) A$ R9 {7 p                        end;                       
; z" }4 o6 _, t5 t- V0 I                        newDirection(@);: D: ]2 b4 F% K* X
                        @.HasOrder := true;. B% ^. A- u( d7 i7 J
                end;! C* x6 N* d$ e# B( o% r" s
        end;4 ?0 \( V/ Z/ ~9 t
end;        -- of the method
: m( \" Q, e- m. |9 a& k
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
) a( t7 C9 J+ G+ t8 f+ P% ]; K5 k( d: e/ s4 U
这是AGV_putin中arrive的method。
0 O/ `, |/ t6 f" C& H) A5 Q, j0 X9 e0 m# ]
当到达物料速度越高时,这个报警更多,
1 Z3 ?4 D5 w# v可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。, y! S  B" P/ W- w$ j6 M
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
! `& t0 g" @2 z% l* C# W' M0 g' ~, @& J9 Q) ]
另外一个小建议,就是move,所有的move都可以这样
* J. X+ c4 V$ p& |2 e4 U5 Wif not move() then debug end; e& Q! |# p' S
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
3 ~; d3 ~1 c" N; ?plant simulation中的free libraries有AGV模板,. p+ L6 J3 D4 B: c
里面也有案例。/ T% s: p- i( h. p
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。! F3 G  M- B) t9 D; X; o
1 l/ E/ w0 O- Y- ?9 z3 K
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
% ~' ~+ R/ Z% U! E! S* O; C4 j6 }. n, Q3 o9 e& P5 D# q+ L
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
0 d* J: f& C' Q这是AGV_putin中arrive的method。
% T! E% O0 t4 B- i$ n9 L
# o1 L9 B0 @$ k5 M当到达物料速度越高时,这个报警更多,

) M+ A' z$ v: W" O  H2 v另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-27 10:14 , Processed in 0.022254 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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