设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6752|回复: 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'
5 S4 [; S3 J! ~9 I* @% [" D*/5 Y4 h: W8 a0 J, S' O/ Z
is" x$ @: m& @. p& @3 Y
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;* ^) {2 v3 ]8 |* [6 k
do
7 C/ F: j6 Y1 \5 {5 _        Lan := rootfolder.Internal.Tools.AOLlanguage;) E6 c' {1 J! w! Z
        if current = @.Destination -- else return) x& `" _. L% u; c1 G
        then
4 t8 `! ]# P+ Y$ ^. g                @.Destination := void;9 g6 E. B" I8 p/ T: e
                if @.occupied then/ C$ K! ?+ @: M( f9 ^# z9 n
                        part := @.cont;# R- H9 x3 p) A( m* y- }
                        @.transpOrder := void;
, m# }' ]& @) V7 T                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,, D, G! E/ y( x/ |
                                @,root.eventcontroller.simTime);
7 n0 N: w5 ?" r% D" ^; v                        @.HasOrder := false;
$ K/ q; I" \2 M) \                        @.DrivingHome := true;
5 m  d% L) W& R                        rgManager.tryToStartTransOrder;) [" u9 E2 E7 c/ {5 z0 V+ d. C
                        if @.Destination = void2 M4 D$ @: e7 Y+ ]$ U( g7 {
                        then -- no transport order for vehicle @: g  d4 S) K3 i1 g8 ?. p
                                @.Destination :=0 N! X" V* ^$ v6 {' F2 t  i* q
                                rgManager.nearestFreeStation(@,track.~);# N3 G. ]& {/ n4 `3 \: S5 c
                                newDirection(@);   
# t  l: b+ b" }' Z                                if @.Destination /= void then
. K% d% w8 W. j1 k% d* Z                                        @.Destination.NumReservation :=
" Q! Z+ H. k  W1 t. V; ^$ `! I                                        @.Destination.NumReservation + 1;
1 E4 [+ O7 e. n+ X# E+ c                                end;
( [. i, {7 j4 K                                @.CurrIcon := "drivingHome";0 S" \+ ~  F& e; _; W+ S. n' J
                                @.DrivingHome := true;
% }( N& J9 _8 S) c$ Z                        end;2 k/ A: H) @& t% N2 s( [
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
* C) [* L8 N* @8 [2 }                        part := @.transpOrder;0 s6 e' j4 E9 T0 u2 o
                        part.move(@);-- load part
6 c* j' h4 F* d8 k. _) G                        @.CurrIcon := "load";
5 Q6 u7 y  o* h2 ]                        GlobalDistObj := part.globDestination;5 E# v7 ?, W( {0 J* h' A! @
                        assignLObj := rgmanager.rgAssignL;
8 y( @% d; g) y" b' \                        row := assignLObj.getRowNo(GlobalDistObj);
8 W" e  c. i; I8 m" M# |7 u& X                        if Row = -1 then -- since 70
1 s. B2 v! Z: W# z9 p                                if lan=1 then6 f7 L! \5 o- W+ @, y
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
: `' o& W4 q6 t- \                                                to_str("in der Andockstation: \"",?.~.name,"\""));
1 i/ ?9 ^% C5 T6 d                                else6 _7 E4 o4 h7 T$ H! a: e6 j2 J* G
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
- m/ Q/ y) C4 t3 l4 Q) Y, P                                                to_str("in docking station: \"",?.~.name,"\""));                                & N1 C1 o5 K' S! S* d; S6 O
                                end;
# Q* m, M5 a8 u2 h                        else
- f3 D9 ~) p6 E* K' p+ N/ p$ z( o                                @.Destination := assignLObj[1,row];
: B8 m7 C5 c' A' _: Q8 R                        end;                       
/ j4 H( j9 o3 ]" p                        newDirection(@);
) N- {# \1 F- |7 j0 U* D                        @.HasOrder := true;1 u" Z" u* z7 r, o2 d% Q+ g
                end;+ k& D4 \3 c. H1 |- G3 W
        end;5 r" a9 K+ k' r" \, m3 j
end;        -- of the method, E& ?$ [+ p, [7 x; A  |1 i0 r1 d
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
8 Q) w* D8 F, U8 O+ r4 M& g) `1 q, ^& y: N  B
这是AGV_putin中arrive的method。  Q1 A: i' n7 h: M  A7 S9 o

! ^- e/ M9 Q4 U: M, S当到达物料速度越高时,这个报警更多," ]7 t( N" q4 z$ f6 R& S, F
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
. m0 N7 ~- J+ L6 F$ Q3 j程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?' H0 L7 s- K$ x, l/ b3 Q
. b6 D: c* v: j' g
另外一个小建议,就是move,所有的move都可以这样! I0 |. g6 {8 {
if not move() then debug end% e/ ^3 B3 a% G- X! |1 t+ }! y
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。3 ~3 \4 i5 G) x5 t7 A
plant simulation中的free libraries有AGV模板,
3 o  Y/ p7 G  S. q( c里面也有案例。1 K# _3 y, z' ^' d
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
4 F9 c3 ^! X% D  M" l' S* g0 ?5 ]6 ]: {" [  u! k  ^8 r
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 . Y1 O5 K* U# T! }0 @1 ~# f2 Q& [- e
! r- S5 x, b9 N2 _- y( b: b
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
' f  |5 l% G# y4 ~: F- C这是AGV_putin中arrive的method。
( g8 M9 @9 j. Y* C2 G
7 S$ u7 Z# J; u; U* Q当到达物料速度越高时,这个报警更多,

0 ?( E3 g& B5 w- c. u6 v9 x另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-24 14:39 , Processed in 0.016901 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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