设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9962|回复: 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'$ M" f* L! K3 s7 ~4 p- g0 [
*/2 I/ x, K. S' s7 ]! }
is
1 F0 x! Z0 U8 Q) @& W        part, GlobalDistObj, assignLObj:object;row,Lan:integer;7 ~) i6 {6 F& k0 {: g1 c6 E
do
' p% n* H/ N- R/ S2 n) ?2 H3 _9 q        Lan := rootfolder.Internal.Tools.AOLlanguage;
( i2 N% A4 E/ \/ x9 Y' \        if current = @.Destination -- else return
3 t5 w* n9 ]7 X2 r$ ?        then( {- c+ k, t% n, z% }* \
                @.Destination := void;! U5 e6 G8 E% ~6 `. ~, Y
                if @.occupied then$ g2 a* i- a4 N
                        part := @.cont;8 X# |: a7 R2 j" U. x
                        @.transpOrder := void;
0 ^9 x: c( d" A) C                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,0 ?6 g1 I4 ~) b
                                @,root.eventcontroller.simTime);
2 E# m" I# c# M% [9 v" V! U                        @.HasOrder := false;3 u5 Y, N$ O' N! x) i4 @" t
                        @.DrivingHome := true;& l, @$ i/ r2 t+ q7 f
                        rgManager.tryToStartTransOrder;
; V3 M$ X. \" o7 T                        if @.Destination = void
& E9 R3 O! ~! l  G+ M& k                        then -- no transport order for vehicle @( B- e1 I- ^. L% f
                                @.Destination :=! I6 G5 M4 O" }" G; |# K5 w: E. W
                                rgManager.nearestFreeStation(@,track.~);+ l; W% @# F8 P: o" k4 c! }
                                newDirection(@);   9 P- r. k0 W2 h5 G0 @" ~
                                if @.Destination /= void then/ G5 y9 g$ D2 y7 Z
                                        @.Destination.NumReservation :=
# w) W: v' h% |  I; A0 ^+ f                                        @.Destination.NumReservation + 1;* |: G5 P3 J* @8 A0 y/ f. h% z) |
                                end;9 n& K" T/ Q  k" r0 t6 M
                                @.CurrIcon := "drivingHome";
! V& V- p+ u6 p$ A7 s$ y                                @.DrivingHome := true;
& W+ _* U) r4 e; T2 `) H3 |( a                        end;
5 J' R) ?3 w; C5 w/ P                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
1 L+ q( j6 n% p/ |) s, r9 K2 O                        part := @.transpOrder;
& e6 c0 k3 j* g/ p. O                        part.move(@);-- load part
0 @1 C3 ~! u' ]3 R9 {  J" m                        @.CurrIcon := "load";
, G# Z: Y& f- R2 D( e5 ]                        GlobalDistObj := part.globDestination;
4 m9 f6 S* ]' j2 n                        assignLObj := rgmanager.rgAssignL;
7 _5 V* p1 H9 N2 i# ]6 C7 ]                        row := assignLObj.getRowNo(GlobalDistObj);& b2 _, K; v  l! E
                        if Row = -1 then -- since 70
$ R; u( _0 Q" G' u+ T. C                                if lan=1 then
/ ?& |, m! W- A! s2 @7 i                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),# D. I! U* h2 D3 K
                                                to_str("in der Andockstation: \"",?.~.name,"\""));" O/ ?8 x/ N/ j+ r$ I/ Z
                                else+ J7 I) X6 f: Q2 O% `
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
0 q+ q: `" Q& b+ W                                                to_str("in docking station: \"",?.~.name,"\""));                                9 {8 X6 s) A6 ]: C+ [9 ?" Z
                                end;- y- X, W8 O* G/ I7 k
                        else; ]1 O8 ]# `4 h4 \' }' i
                                @.Destination := assignLObj[1,row];0 U0 v" L/ \# {# E8 q
                        end;                        ' Z6 L6 e1 X3 p; a* t
                        newDirection(@);
9 A5 q9 R# p, r5 P$ P1 K                        @.HasOrder := true;
1 }  U6 W  z9 k; u2 _9 D                end;
; W9 y3 I* }! ^$ [2 |- P        end;; {  k" S) E7 `
end;        -- of the method  s- k" @( m4 c( @5 M: u* m
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 0 D" L1 i) f$ V1 Z8 J8 m
, R- B5 |( a  b
这是AGV_putin中arrive的method。0 W! c- U6 J. O9 }. u/ a- e3 X! M

4 W5 U7 e6 s1 m. U  N7 D" v当到达物料速度越高时,这个报警更多,+ G4 r: ^! `0 m
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。, `2 D6 P# [7 d/ L, ]
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?: L+ p( W9 `9 m  k4 a5 y$ I

3 E. w; g, g6 k; T, S! b' m& E1 T0 ~另外一个小建议,就是move,所有的move都可以这样
7 s0 s- {- [1 W$ x, N' c5 Sif not move() then debug end
5 o8 P: {( L1 ~. u  x. p这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
9 i  a) m: _+ v9 Jplant simulation中的free libraries有AGV模板,
: G" a! E' I2 R/ y5 O' B里面也有案例。3 }+ q4 A4 z' A8 w9 f4 a/ N  H
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
" K- R6 H0 z" B
2 ^3 x+ {9 F" D; r9 A我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
( Y+ I5 J, r; p0 k  O( N8 z, r& I# d$ M+ [+ e$ R
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
5 d( p, ~$ Z2 E这是AGV_putin中arrive的method。
- Z) L/ [: {) I: ^% L7 b5 a: T, M: J8 K. F+ K0 W7 H- S
当到达物料速度越高时,这个报警更多,
2 O+ e8 c* e& v4 c$ ~# a9 e
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-4 20:46 , Processed in 0.033768 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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