设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9240|回复: 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'
+ z3 ?8 u& l. a+ r) Q3 D1 |*/
- S0 q( `8 f5 wis1 D" A3 M. f5 ]  j* o, b5 n
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;  \, F* g0 g# O- U- K8 J6 H
do) ?, V8 r" @1 p
        Lan := rootfolder.Internal.Tools.AOLlanguage;+ E4 D) ^2 q# I7 L
        if current = @.Destination -- else return
* R- @- ^* w& z2 A        then
. Y% y' a" K! p$ i" ~                @.Destination := void;
5 @0 O9 R5 }0 m5 L( [                if @.occupied then' I' W2 d; F) O5 k, _* V: _
                        part := @.cont;  g* s) v2 ^' I0 S8 i
                        @.transpOrder := void;2 G  f& p* b4 z1 O4 x9 |  {( S' n
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
1 l3 z  [# T4 B/ A; u* s                                @,root.eventcontroller.simTime);
1 Q5 z+ J" t% e8 N+ I$ \                        @.HasOrder := false;
/ O. |# J0 Y. Y  m0 S! d# a' F3 r                        @.DrivingHome := true;
- x4 L% Y) K% K% l                        rgManager.tryToStartTransOrder;
6 Q7 _8 H  G, p/ o1 K+ T                        if @.Destination = void
4 O% t, _5 I$ {6 y2 }/ w/ x/ z. B                        then -- no transport order for vehicle @* r' {' P  u1 u$ ?7 O
                                @.Destination :=5 y/ a8 O' ~5 _& K; P
                                rgManager.nearestFreeStation(@,track.~);7 E$ I. S' T+ _4 C( x+ ^# E  W0 V
                                newDirection(@);   
9 X  ]' _0 X8 k( Z: K5 S                                if @.Destination /= void then
$ O. ?  j9 |' q! `) o9 S$ R9 I" v  ~                                        @.Destination.NumReservation :=3 f; i1 Y8 R7 v1 l6 C5 F! @3 x
                                        @.Destination.NumReservation + 1;( f9 C+ E- K+ i0 I+ n7 `0 L
                                end;9 q4 U% _6 O% v- [- P& a/ Z3 H( q
                                @.CurrIcon := "drivingHome";
1 h, M3 y5 S7 Y7 K" m                                @.DrivingHome := true;
; c  T) r3 Z  o" j                        end;
9 T( N2 h& e8 N, d$ `                else -- the vehicle @ is empty, both vehicle and part are in the same dock station& h! O& Z! s: V! i0 J
                        part := @.transpOrder;
( t" ^7 a0 J6 f5 E6 e* ^9 F8 z                        part.move(@);-- load part
" a/ T# q# y$ h+ A9 L, w5 y                        @.CurrIcon := "load";
2 w" N4 a- |0 q7 x8 a                        GlobalDistObj := part.globDestination;  Q5 X$ Z7 K) e, H) t8 d
                        assignLObj := rgmanager.rgAssignL;3 o  z- M7 i* w! B
                        row := assignLObj.getRowNo(GlobalDistObj);
4 |) u& R" y9 n+ H* g1 r                        if Row = -1 then -- since 70/ D$ t" o5 j% Q% C/ y
                                if lan=1 then9 T; r4 e/ b$ u- g
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
: _4 g" g- @1 S( ?. r" Y; G                                                to_str("in der Andockstation: \"",?.~.name,"\""));
6 ~+ f( w3 t& X. G" ~1 M1 O                                else
# U0 r2 v$ z4 F                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
2 c( E4 d& \4 i( |                                                to_str("in docking station: \"",?.~.name,"\""));                               
. F: b" U% V( a1 o3 u( j                                end;0 ]- v+ B+ r% l2 b8 }5 b+ B
                        else
6 O$ ]) V  R( J# J                                @.Destination := assignLObj[1,row];# \+ f; Q; }* o  ^) I- d
                        end;                        2 {$ L8 m! z0 M5 x
                        newDirection(@);
! }2 i6 [7 r. w$ C6 [                        @.HasOrder := true;
( p- e$ {5 ]& x' g& k5 @+ ^8 k                end;1 @  `  J, h9 V5 W0 r4 q" v
        end;9 |: d. J* \+ \5 T) I% D
end;        -- of the method
( m( W- d& B9 M/ D" F! I: M
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 2 e7 O* K. E4 `5 m

- e* \& D# C5 }/ N9 Y这是AGV_putin中arrive的method。& W0 d  C% Q% a$ O% A$ {2 X7 b

& K$ y0 F9 q; x5 F当到达物料速度越高时,这个报警更多,0 [" D* i( x! H2 [
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
1 B2 M$ ]  c# E" S" _) X程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?' O/ F& `5 B7 u5 H& \& p3 Z: u
( A+ L( c2 U$ M. p* x
另外一个小建议,就是move,所有的move都可以这样
" e4 u  c; T! q/ u$ N/ X- Oif not move() then debug end
2 v4 ^; N+ A- }$ [这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
( E% a, i! ^! S) pplant simulation中的free libraries有AGV模板,
9 G4 U' C/ v' J/ X2 N! |9 v里面也有案例。* K! }7 L* _/ o5 Z
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。0 D' l9 r4 V; J3 `/ v. V7 f0 q

; x, n( [; T: T3 b: s* }! x我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 , B1 I6 Z% a  x1 _  X9 w* ?5 _3 V
3 Z9 Y0 y" ~: \: w
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 8 u) y6 O' ?% [, \% O: M0 u; |
这是AGV_putin中arrive的method。, r7 f2 s6 f# f9 R
( J$ a% ?- J3 ?# e9 E4 A$ ^9 u
当到达物料速度越高时,这个报警更多,

, D! Q$ f2 w+ B$ h另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-20 18:45 , Processed in 0.017124 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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