设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7035|回复: 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'
4 [+ H0 |# k7 L, v. k* |& z" ^, {; U*/# J/ l- ^  W5 a) {
is
  I% \7 S: P, {6 E6 T& O/ {        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
! [. ]! ~: D; O) X  `. Udo
4 V/ e8 y2 \2 ^/ a$ Q7 C        Lan := rootfolder.Internal.Tools.AOLlanguage;
1 V. v( p4 ?) f        if current = @.Destination -- else return$ c2 u4 {$ F& H. F% O
        then) H1 ~* k6 w- n* k* m' t1 g) N
                @.Destination := void;0 d% G- A" F1 I& U' J4 D; ^  J' U0 c
                if @.occupied then6 Y0 N  ?# c1 u# r3 ~" }0 u- v
                        part := @.cont;
5 S4 Y1 m; M2 L/ g                        @.transpOrder := void;4 X7 o( O9 K5 h$ J* X
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,5 n. N- z( L5 Y3 ^
                                @,root.eventcontroller.simTime);
1 u( T3 ?: j$ a" g                        @.HasOrder := false;3 s; ?( q- ~* t7 e( F! _
                        @.DrivingHome := true;" Q9 V9 _8 @( A3 I' r
                        rgManager.tryToStartTransOrder;" `( J, x. E$ L1 M' H7 K
                        if @.Destination = void8 Q, E, n8 m5 {9 U% x: d
                        then -- no transport order for vehicle @3 F, e( k7 b+ g; t/ I6 r
                                @.Destination :=4 r" \  a" T6 Q" s
                                rgManager.nearestFreeStation(@,track.~);  V$ R. c8 N* E/ m9 H. b8 N
                                newDirection(@);   
; U6 G$ b# u& m! N7 o% @/ P& b7 P9 t                                if @.Destination /= void then
# I1 v- t$ O  C* V; ]; Y                                        @.Destination.NumReservation :=4 A. |3 `6 i! j3 Z
                                        @.Destination.NumReservation + 1;8 K' |- H* u1 I2 P
                                end;$ b- U9 [8 J  s# S) c$ Q1 |0 `
                                @.CurrIcon := "drivingHome";! K5 t( S8 V* E8 T! P5 v! o
                                @.DrivingHome := true;
$ V9 v5 n5 M9 @3 l  _2 v% n9 |                        end;4 C, `3 H( R0 u+ Y
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
/ W& d- o2 u* ?3 S# z. F                        part := @.transpOrder;& N' `: [! e8 H1 W, ^
                        part.move(@);-- load part8 r- c1 s& {! W/ A! ]6 z$ P6 t
                        @.CurrIcon := "load";9 Z- e2 U1 {0 o
                        GlobalDistObj := part.globDestination;+ o" G* b: m7 N7 ]' V( Q
                        assignLObj := rgmanager.rgAssignL;
3 m# N9 _( d' ]                        row := assignLObj.getRowNo(GlobalDistObj);
4 E) V5 b3 R/ C( Q- ]# i                        if Row = -1 then -- since 70
; r$ b( }" w- K                                if lan=1 then& I3 u" V5 m7 i0 w3 T: Q, d
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
3 `2 ~" y7 `) n/ y9 M4 R                                                to_str("in der Andockstation: \"",?.~.name,"\""));
2 r. d% A# j! H, ]                                else
8 Z7 W$ ?( Q- b                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
8 b8 ]+ X4 e3 v  X; ]- K. J                                                to_str("in docking station: \"",?.~.name,"\""));                               
0 g! Z5 L9 U% g) G  D: y. N! X                                end;6 S  {$ E' Y/ U( q. x8 v3 E& Z
                        else" s+ Q- h" z4 e1 X3 r7 ?3 X/ g
                                @.Destination := assignLObj[1,row];
3 I+ d* w6 q" z$ e% T                        end;                       
* G" q$ t7 Q& K) [  M2 i" ^                        newDirection(@);
% F6 r9 F1 z' ?. I7 a* @- ]) m                        @.HasOrder := true;% Z: T( p3 d+ M% b( G) m9 z) y' k9 W
                end;
: x4 U' C. ^) z        end;
: D/ ^& @+ k+ vend;        -- of the method
. i% @: r6 y( S$ D4 [7 S. u
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 0 F2 E" S; {1 o. c1 h

, s0 L# |8 o0 W' f3 c# ]9 w: }这是AGV_putin中arrive的method。7 q7 s3 n& u4 N

: Q7 k+ F& P! L4 r: |当到达物料速度越高时,这个报警更多,$ M& u4 N5 \0 V! U7 }! D9 I2 ^' k
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
0 U% u* {7 S6 [+ \2 l% [' [程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
5 O% N) Q' q6 F1 x! t* x% ]  Y7 A$ J4 Y/ D7 I
另外一个小建议,就是move,所有的move都可以这样4 I: A# }9 V( b7 Q" N& l3 h, e
if not move() then debug end
. G4 m- _% r8 s) s7 g0 ]8 g# E2 k这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。, p3 V" n0 X3 W
plant simulation中的free libraries有AGV模板,
5 p, l8 r* P, V6 a1 |里面也有案例。6 }6 T# R& y2 {9 D  e
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。& h& G7 v6 n" U8 n. s

0 [- o8 [! N# P1 j我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 * t' l7 S  F, W% W1 v! j! A& L( z# ~; [

  f6 r. M. k: ]那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
: E# c2 e( n- a3 _, V. R" p这是AGV_putin中arrive的method。
/ `3 J& X" K# f% ], o/ T! J$ n0 J8 B1 P
当到达物料速度越高时,这个报警更多,

% _4 E* f: h+ o5 @3 N9 v( g另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-12 12:57 , Processed in 0.016067 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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