设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9853|回复: 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'
7 l) C' T6 N# E0 s7 n# g% a! D*/
. X+ U8 H( w8 s! N) Pis
2 w! f: x1 d8 a, M; C        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
' O7 i, q6 z* _* s* F* vdo
( P. e. Z7 I9 A2 b9 M& E1 E$ P        Lan := rootfolder.Internal.Tools.AOLlanguage;
& _. f* a' F2 ?% U% q        if current = @.Destination -- else return
: ]! o. \9 V- F+ X5 x' t        then
1 e) x) P' Y% b' J6 D: Y                @.Destination := void;' V0 ~* Y3 v* K, r" t/ I
                if @.occupied then
7 g% j$ @) ~1 Z- s                        part := @.cont;% v2 o& q$ j! K( [- m
                        @.transpOrder := void;$ E  F& r5 S; y% H! R" g
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,$ O7 r/ K* s( r8 N/ Y8 v1 U9 g
                                @,root.eventcontroller.simTime);
4 n- v% [( M; E) d: d$ k1 a                        @.HasOrder := false;& f6 Y6 N2 s- R. y
                        @.DrivingHome := true;! r& Q0 x1 T9 C" r
                        rgManager.tryToStartTransOrder;
+ m3 A! |1 D: S$ S4 Q( r; Q" Y                        if @.Destination = void
$ d" k% v2 [$ ?% F) v                        then -- no transport order for vehicle @- K$ }. P: K- F( [# m! }
                                @.Destination :=
" [2 q. \* I* o- b( S5 C! D, ]* i0 n                                rgManager.nearestFreeStation(@,track.~);: z1 D% r/ _& x4 L- }8 a0 o: ?* k
                                newDirection(@);   
3 N) X4 b8 K) J- }! u3 z6 g  v                                if @.Destination /= void then4 t/ k" \& o( i2 _8 X
                                        @.Destination.NumReservation :=4 y: d6 \4 R! b5 T
                                        @.Destination.NumReservation + 1;
2 G2 B% L3 n. [$ ?                                end;& w+ d( v, \" @4 W4 O# Q% c
                                @.CurrIcon := "drivingHome";
1 o/ [" }3 C; \; K  R" \+ E1 \' g                                @.DrivingHome := true;
- C  `" M' ]8 U4 @6 \                        end;, Y/ @6 P. S! L4 ]" y6 W- \1 I
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station$ `, `* }' B* @
                        part := @.transpOrder;" L$ r5 y: i( j; q7 `
                        part.move(@);-- load part; o8 T/ ]/ r1 d$ y+ Z3 a
                        @.CurrIcon := "load";: G: |9 O* r2 S8 |+ Y
                        GlobalDistObj := part.globDestination;9 H. p; c- p& n2 S: Y
                        assignLObj := rgmanager.rgAssignL;
% j0 z# f, t' ^- x9 i% ~                        row := assignLObj.getRowNo(GlobalDistObj);
  E/ D- T. w+ t4 f$ Z                        if Row = -1 then -- since 70& W8 A, a7 m7 i; g( k" W% x! l
                                if lan=1 then
& U  x* B2 Y2 M) j+ ~4 z                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),$ s, U( n' G. Z8 T2 r  H
                                                to_str("in der Andockstation: \"",?.~.name,"\""));  T/ q7 a8 v2 n6 y
                                else
8 p& ?1 x$ }; _; q! d; b                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
  }, Q' I$ N0 @3 H5 E3 l: A- h: M2 J+ `                                                to_str("in docking station: \"",?.~.name,"\""));                                ' @8 T4 A/ U' ?" H3 h" D
                                end;4 U; K7 v) J4 r3 ]
                        else
" M. y( G2 w! [1 }; }                                @.Destination := assignLObj[1,row];% A% a% K% x8 k. n% _' t3 `
                        end;                        , y' R9 W! ~+ D- `3 s  l9 y
                        newDirection(@);$ @5 _: u/ z' f2 J  k6 Y! ]2 s$ N) B
                        @.HasOrder := true;
% o. n1 }; N* M6 r                end;  _7 \4 H0 N+ X' x3 H( t0 F4 @
        end;
; z' |& p- J0 z0 {( J# d: @end;        -- of the method
1 M0 |4 g# |. X
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
" R* c/ m6 S7 ?# t0 J0 a7 B
1 w" X# B- a- I/ P& n% A. q* ]这是AGV_putin中arrive的method。1 Q0 y- O. R6 V* x7 U

2 `2 b7 E: O( x% k当到达物料速度越高时,这个报警更多,
7 T/ v: K2 e* L' b/ v6 o2 }3 h可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。  B! f8 [6 ?$ v( c% h/ |
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?9 o! w( T  I, m. E4 J9 _

/ z. P/ I& E9 m% s7 ]. @, h另外一个小建议,就是move,所有的move都可以这样
5 ^/ z; R/ x8 k  l/ D8 L5 [- @if not move() then debug end
! t. {6 _8 f5 V3 m这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。* Z5 Q8 c& E5 p; d
plant simulation中的free libraries有AGV模板,) m# Z4 y" b. l4 I7 u6 k5 u0 Q
里面也有案例。4 U; R" X1 k; ]* q
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
6 n8 ^6 Q& F% j5 S+ O$ E  c1 O( V* G4 N9 @7 J5 o4 \- s7 A
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
* h- ^: u: q) Z- X) b# d
6 u8 N/ h  Z: S6 a: B; Z那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
. }  n# t6 m5 V9 \, q' G3 {这是AGV_putin中arrive的method。9 _+ Z) y0 Y# Z0 f& {/ h0 g5 G
4 `& \- D$ ?( [* ?3 S$ Z! C% _
当到达物料速度越高时,这个报警更多,

. a1 E$ W9 P3 B1 F, J" h另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-29 12:21 , Processed in 0.018656 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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