设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6756|回复: 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') m1 Y! k" K/ t4 N
*/
2 O6 i9 l0 e6 [is# n0 l  O' n- S( U; |- H* a! G
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
  X9 K* y& y8 ~8 n( [) o$ Ddo( f. d5 s* b- b! Z" _5 |( r
        Lan := rootfolder.Internal.Tools.AOLlanguage;# j; M" h/ i1 n$ H  Z5 g
        if current = @.Destination -- else return
4 r9 O" S# x6 o        then+ W% L8 w6 l4 t8 k) ~; M" Q
                @.Destination := void;" S1 j% w& ]  U* ~7 V9 g
                if @.occupied then2 O: |7 K5 F6 [# \4 _
                        part := @.cont;
0 t4 I; D. A% K! C4 O$ K                        @.transpOrder := void;% X% o$ M/ X+ z1 ?8 \0 R* i
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
+ z" w$ ]; v! m8 C9 M& k! K                                @,root.eventcontroller.simTime);
7 w% ?+ }6 R0 I, B) O+ C' H6 J                        @.HasOrder := false;  u. z- A1 C# L, m  o& x8 Q
                        @.DrivingHome := true;
* [% W$ J' j" A3 p" z; T% o4 n                        rgManager.tryToStartTransOrder;: J( c, K' ]+ T( l6 I& g0 \
                        if @.Destination = void) M$ ~' V0 t$ j+ f* E" D
                        then -- no transport order for vehicle @
- m$ d0 G1 |" S/ ]                                @.Destination :=0 h- x- c8 `4 g+ a+ m2 ^" p
                                rgManager.nearestFreeStation(@,track.~);
( y* Y! `8 M# f8 f6 X                                newDirection(@);   9 A% k. y# _; H# F$ V+ U
                                if @.Destination /= void then
" e4 Q, M8 b# v2 v6 ?                                        @.Destination.NumReservation :=
3 x: T5 a9 i$ }! c/ S% ^                                        @.Destination.NumReservation + 1;
: k1 g, b5 B) T. a0 w1 k                                end;2 q; \9 I5 q" t. [6 t0 b
                                @.CurrIcon := "drivingHome";1 k6 D; K. v0 ~
                                @.DrivingHome := true;
3 A$ V+ Y* x  m0 ]1 m                        end;
: o" h* G  u- [! x0 I, \% s+ w) c9 V                else -- the vehicle @ is empty, both vehicle and part are in the same dock station9 |' j  E6 Y: [" _8 [
                        part := @.transpOrder;: `4 Z2 u) _" F
                        part.move(@);-- load part% i" n% |( {1 }
                        @.CurrIcon := "load";9 @$ C" y( R$ _3 p
                        GlobalDistObj := part.globDestination;4 w/ b, M8 k( D" b
                        assignLObj := rgmanager.rgAssignL;' J1 B5 c& z/ }* j$ K( \2 T3 D
                        row := assignLObj.getRowNo(GlobalDistObj);
" y( i$ X0 B& E                        if Row = -1 then -- since 70
  p8 D4 z2 \1 [6 h7 @                                if lan=1 then# u# D/ i- C7 }7 ^6 N
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),5 C4 v3 l+ e% n. N1 u
                                                to_str("in der Andockstation: \"",?.~.name,"\""));  B& l' W$ K+ q/ e/ _
                                else
7 D. j1 \* n" d                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),$ Z( O2 x& ~9 ~
                                                to_str("in docking station: \"",?.~.name,"\""));                                8 w& L9 N% Q$ a
                                end;
3 ~9 m0 R" a2 \, _) G1 `: o                        else
2 w- @5 m0 z0 e4 ^                                @.Destination := assignLObj[1,row];
* h5 V0 m  x  [  r                        end;                       
, y% m$ I: c0 R0 C                        newDirection(@);
! W: Y( {  {) G% t                        @.HasOrder := true;  W2 G: Q8 G( ^: f$ T
                end;; R" z" \+ B7 _0 q9 z/ @' L
        end;
' a# Q5 M# p) A" K2 p! Pend;        -- of the method+ W' f; \  V1 d+ _0 V" A# v% u. A
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 : u# ~- N, H0 F3 Y

! r# K6 _0 S5 M+ @4 C. x& \/ k# s这是AGV_putin中arrive的method。
8 ]$ W" n+ E+ R5 ^& Y- ]( n! ~- ~# u; i$ L. M
当到达物料速度越高时,这个报警更多,
2 ]  d$ O# P4 S可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。6 d0 \' \# K* A4 j4 e# L5 J; s
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?& d5 F' Y0 B! E, M: k  Q4 ]& [
7 A. D7 I& u" [  Z' z
另外一个小建议,就是move,所有的move都可以这样3 D. r( v# x$ j6 ~$ @8 {& S
if not move() then debug end* g5 S! X5 X0 e
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。0 L# ^" Y* e1 Y5 K, A  d, C
plant simulation中的free libraries有AGV模板,# @& N) f8 Y+ p! M% f6 q! {
里面也有案例。$ Z4 Q- J3 p7 D3 o9 A; q% o
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。/ R% G0 y$ D+ s

) B! Y5 V- h( ~8 L. M. U我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
% F4 a* ^* A% I; H0 p5 F3 \( \" C' E2 T3 P: R0 X
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
9 }5 P0 `3 o. a: p- v这是AGV_putin中arrive的method。
% j9 L# `7 h8 V  N; I$ j: F+ C! [, w* J; [* J2 r
当到达物料速度越高时,这个报警更多,

  G/ [8 Q# i9 @, B: y: H. G另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-24 23:00 , Processed in 0.021524 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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