设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7910|回复: 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'
+ R6 F9 D1 |% I4 ~$ n* q7 H*/
& d, C4 t1 N0 d! j2 Eis, K% e7 Z% a; E% H" G* H
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
) o/ q4 a0 q" i7 r+ C3 N. fdo
9 K$ K! h/ ^& e) b" [        Lan := rootfolder.Internal.Tools.AOLlanguage;
0 k( o* \" k. Z3 _& }. I: w        if current = @.Destination -- else return9 p/ F3 o- {7 }  Y- i. ?5 e6 k
        then/ V4 I% `  f5 P0 v1 Z% G8 o
                @.Destination := void;
1 A9 n  f* Z6 k; |9 u6 m7 i& C                if @.occupied then
( @! [4 f( X# ]* [+ D% R                        part := @.cont;* z/ f* I1 {1 S
                        @.transpOrder := void;
9 W* Q" n8 X" M                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
0 Y. b1 ]- `2 |                                @,root.eventcontroller.simTime);7 Q& ]; T5 h+ Q3 C
                        @.HasOrder := false;0 N  ~% `+ d8 a8 M8 v& j6 X
                        @.DrivingHome := true;
# p% @0 v7 r/ Z                        rgManager.tryToStartTransOrder;
0 x) V, E, ~0 N4 p6 r! U: ]                        if @.Destination = void
' V8 R/ B9 i5 F  ]% e/ v2 g% }                        then -- no transport order for vehicle @6 u# Y4 W2 [4 c+ `# m
                                @.Destination :=
6 G6 |" a1 [& t, [                                rgManager.nearestFreeStation(@,track.~);4 `6 R" d0 e6 K; [; J! `
                                newDirection(@);   
1 o! G$ v3 h0 s                                if @.Destination /= void then6 q: C6 @4 ^+ Q3 b* U
                                        @.Destination.NumReservation :=
( [& h. @2 A( ^3 e: \) ^5 x, z! Y3 \                                        @.Destination.NumReservation + 1;8 V( H' y7 Y1 Q$ u. g
                                end;
0 e+ Q7 k. _! W                                @.CurrIcon := "drivingHome";
0 {2 h% j( y0 {                                @.DrivingHome := true;
: f6 _, p" F0 O" {" e' w                        end;1 R# g  Y3 Y3 U( x: i& B9 i/ ?
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
5 V; ~( R* Y( e6 g' a                        part := @.transpOrder;5 E( `4 t' T% r5 A8 R2 A
                        part.move(@);-- load part; K5 t/ m, G' Y2 ]
                        @.CurrIcon := "load";
' Z2 `2 G; \; b" q7 n/ n4 [. H/ n                        GlobalDistObj := part.globDestination;
/ K5 Z+ X$ l! c4 r" n3 y: p                        assignLObj := rgmanager.rgAssignL;9 ?( n9 J9 d, T
                        row := assignLObj.getRowNo(GlobalDistObj);
1 l8 P5 C* c& j. k" u& F3 C6 X                        if Row = -1 then -- since 70
* D; x9 Z% C0 N7 A+ d- r! |! S                                if lan=1 then
" i& j+ D- q- M: d                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
; U0 h6 l0 q, ?6 r/ V                                                to_str("in der Andockstation: \"",?.~.name,"\""));
! j+ `, F1 @: F+ X" q* y; a; D                                else! i  ^; |  m9 s
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),/ T8 Q. f" E2 f9 H
                                                to_str("in docking station: \"",?.~.name,"\""));                               
, W! _& T" h' _/ S                                end;/ k* T( {3 x/ j- L! q. g
                        else" q( b  n/ ]7 O7 a
                                @.Destination := assignLObj[1,row];
0 p4 `/ F- h6 s% e3 k                        end;                        6 M, \2 r' F- i. S2 D! {
                        newDirection(@);8 I6 Q, u) L2 n2 r$ i
                        @.HasOrder := true;
# Z# d1 I$ z6 T8 z                end;6 b: r1 }: M# T/ v7 j8 f. m
        end;7 p  f6 |( F4 f$ W# n. A; X
end;        -- of the method
( J! Y( h9 o1 J% U; }+ p) u5 @8 l
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
; E3 g1 w! d* X+ f2 |3 S
% U6 K6 I0 q/ ]7 q7 `这是AGV_putin中arrive的method。
! _, V& P$ q2 X! ]$ _! N( t& \% ~' _( u
当到达物料速度越高时,这个报警更多,) l- u4 x3 s/ j! x/ F
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
+ k9 K: N; ~4 H  \6 M程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?) {7 E! f+ L4 ?. i1 c' |4 T6 `# G' B
. o4 U4 K8 C. [) u5 G  I
另外一个小建议,就是move,所有的move都可以这样5 ]5 x. W" X( ~; u6 q2 k# j- ]' g
if not move() then debug end) }# Q- L0 n: P+ L" C( ?' S
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
' l, Y/ Z# {, }% F. D+ {plant simulation中的free libraries有AGV模板," N! R' \, e5 [: r9 s
里面也有案例。
$ }& v2 P  P( O  u我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
% [4 T8 E, M9 t8 _! I- A' B
3 z+ _' e; `! L% d" f# z4 U3 O3 V我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 - w! z/ ?8 Z/ k# j$ H4 w! q0 _$ T4 U
2 J/ g1 U: l2 \8 ~: _- p& F
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 2 `* D& l0 x0 B7 @# R
这是AGV_putin中arrive的method。, S+ X' P; R# _% S8 k1 {

/ h8 D: Q* ~$ b) D0 k当到达物料速度越高时,这个报警更多,
( I! @* V( H. I$ d0 @5 O3 W
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-4 22:44 , Processed in 0.022123 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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