设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8966|回复: 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'
# v1 Y7 O: O" Z5 r  m*/0 V4 E: ?3 M' Q) [  P
is  f( u' q$ m( j
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
# q, o( b- s! q3 l- ^3 mdo
( Y# f( r2 r9 V$ b& U        Lan := rootfolder.Internal.Tools.AOLlanguage;! m' M5 K. C7 [+ K
        if current = @.Destination -- else return! n0 v, E" v* W+ \
        then) J" {% ~* O6 t; w4 X
                @.Destination := void;
2 t) D/ X; P( G) O8 K4 O                if @.occupied then
# x$ ~9 S( a2 g9 U2 M( Q% i4 D                        part := @.cont;
% B6 o" D. o3 E" c  A$ n                        @.transpOrder := void;
7 O6 w, E8 q. R- |# C6 s; M                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
; x! e: t/ A- b7 K$ d+ u                                @,root.eventcontroller.simTime);
; g- J3 A6 k4 h/ U$ x( {                        @.HasOrder := false;
  m( ~0 f; r( n5 `0 [) B                        @.DrivingHome := true;
) e/ g8 G7 k+ q+ i" S. r& Y$ W                        rgManager.tryToStartTransOrder;
" z" H5 Z2 G" y9 D                        if @.Destination = void! l7 |% r( U/ V; q) {5 J
                        then -- no transport order for vehicle @
/ h" Y& X$ G$ I" x7 U8 A                                @.Destination :=
. L9 |& O2 [& _) |. h                                rgManager.nearestFreeStation(@,track.~);
7 g* w# X5 w, b  S5 `                                newDirection(@);   
5 U7 F1 N" W4 d! p* p1 W; q                                if @.Destination /= void then4 I7 n8 j% J# M6 I+ S
                                        @.Destination.NumReservation :=- x/ \! s" y4 |4 o" M* o
                                        @.Destination.NumReservation + 1;8 D- `. |% A8 _8 R2 e
                                end;  R7 ^) J6 c) X# _. z* o1 m
                                @.CurrIcon := "drivingHome";# T/ b: @" O* J: t* P
                                @.DrivingHome := true;5 ?3 H2 _9 ]# ~1 ~/ O
                        end;/ |  y* |& ]2 A  E# X% X
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
; w  W1 x* M' Z2 d: {                        part := @.transpOrder;( S% D, m( X- E7 x" |# r
                        part.move(@);-- load part/ z  c0 k" G3 K2 v) m
                        @.CurrIcon := "load";  R) p% w! a: J: s3 J
                        GlobalDistObj := part.globDestination;* \3 ?* s' r' f/ ]* W  E9 S4 u6 n
                        assignLObj := rgmanager.rgAssignL;
+ f# z: D4 {$ i. Q3 q0 L, D" G9 }                        row := assignLObj.getRowNo(GlobalDistObj);
* P9 ?5 Q  ~; j) l( x2 c9 M) y                        if Row = -1 then -- since 70! ~& R2 n  k  ?3 L# i, G
                                if lan=1 then
: n: X* v  W* B7 B  k4 t+ T                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),0 j2 m3 F) d; X+ ?$ V. x" @, a
                                                to_str("in der Andockstation: \"",?.~.name,"\""));* p3 r- H  r  y  V2 k5 T  t& P
                                else
1 s0 h! e' D# z                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
/ M1 U1 |% h5 e: F                                                to_str("in docking station: \"",?.~.name,"\""));                               
, [* ?/ v, v# t" o5 Z: Z                                end;
9 h: B+ ~3 b, \5 D                        else) Y9 Z. Y- ~  ~  ^
                                @.Destination := assignLObj[1,row];
$ a8 H2 ?# v! A5 Y/ q3 k" F                        end;                        ( _- j  W0 x- r
                        newDirection(@);
% u1 a! g. I, a$ f, c5 m/ p                        @.HasOrder := true;+ y3 O2 z1 o- P4 W
                end;+ R( {) g3 B% z; ?! A7 @$ }+ _
        end;
: {/ P: T2 e! {& ^  tend;        -- of the method7 p4 {$ {0 c& b- x
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
  @4 Q% a" G5 z4 t& V+ `2 h2 m: j4 L! r8 f1 o4 u+ R
这是AGV_putin中arrive的method。4 @6 L9 r8 l* M. p( j; M) _

; j, h8 s4 Y/ ^* u5 l3 k当到达物料速度越高时,这个报警更多,( Q2 K9 ]  _, C/ W. F# u( Y
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。$ N$ E; H7 g, P/ E) [: Z1 W# K
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
, H# G8 T# U! n/ V; m9 C9 j4 L
- k+ b; Q1 O: r- @另外一个小建议,就是move,所有的move都可以这样/ r5 e" H) U! t7 z6 C6 i
if not move() then debug end% ]# z/ |) m" A& K
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
! I* ^7 T; d, h' [3 L( ]  s) ^plant simulation中的free libraries有AGV模板,& h( K" n# J8 N( M
里面也有案例。! M) X7 d( f$ r+ A8 y4 w- |
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。8 g1 Z' [( D0 v/ K+ c+ M. i

2 f. N" j4 d5 r! `3 z( ~, X, b我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 1 U5 f4 Q) _! t9 }& D% [2 E
( b! n, V; T) R/ }. h- I* n1 S
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
# V3 z! m& y1 F- i* x0 s) z这是AGV_putin中arrive的method。9 W& _8 o6 v& H  e

; O/ t4 u0 M1 k$ f7 }4 u' l当到达物料速度越高时,这个报警更多,

) J! {0 ^1 R$ L* j0 x) Q9 x另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-6 17:32 , Processed in 0.017640 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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