设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9300|回复: 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'
2 E5 R# R# d3 z( A8 K0 K1 u*/( N# N8 r6 z; y! I- W: d" c
is
5 w& H4 u! r3 Q/ i% G* i- E$ w% y4 x        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
( v# V2 d# t% `do- S- L7 h$ b6 _, I" w
        Lan := rootfolder.Internal.Tools.AOLlanguage;. G$ u. H- ?" y( G  x- h: A) K# T
        if current = @.Destination -- else return
' ]0 H% G" s# j* g* p        then
/ K( Z+ A1 d+ J( B" U& |                @.Destination := void;# Y: ?) F$ a) B& ^- b
                if @.occupied then
% b9 ^% k; n+ z- n5 l                        part := @.cont;6 D- s4 K% C6 {; f2 N# [
                        @.transpOrder := void;
  l3 X% R1 S+ D: }                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,, m. A$ k2 k+ |3 c) x4 [/ [& J
                                @,root.eventcontroller.simTime);- e/ h' l4 V8 d2 u
                        @.HasOrder := false;, Z( @" Z( x) s3 \& q" O5 E& o! i
                        @.DrivingHome := true;
: Z: C- u( R, F0 N+ t8 V                        rgManager.tryToStartTransOrder;* d. L9 P+ p4 c$ l, j) g* c4 \( P
                        if @.Destination = void2 k9 b. H; c7 X1 d
                        then -- no transport order for vehicle @
. L+ t. h1 U/ g" m2 X                                @.Destination :=
( G- ?" P& Y* X. W, D4 A& X                                rgManager.nearestFreeStation(@,track.~);
# v& U) f2 J: K8 E                                newDirection(@);   
: O7 `( ^. A8 q; y% ?. g' `( `# ]8 ?                                if @.Destination /= void then+ ?, d& f, B  B
                                        @.Destination.NumReservation :=
' O: V! y8 s& @                                        @.Destination.NumReservation + 1;
$ m# q9 ]- k3 [                                end;0 M9 [# {( [. C" Y& x
                                @.CurrIcon := "drivingHome";  Q6 x2 v7 o/ D6 d
                                @.DrivingHome := true;
9 O% W9 P: y0 i. i2 J; v3 e7 z                        end;
' T/ A7 M6 w" w- Z3 k  }  z                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
% c" ]3 m1 s0 x                        part := @.transpOrder;' x9 M5 p3 f( P7 T% v
                        part.move(@);-- load part
; E7 b) l0 Y$ ^                        @.CurrIcon := "load";$ ?" a# V1 |  p- t- J+ ~" W2 w& _  P
                        GlobalDistObj := part.globDestination;* m+ f. }1 I9 w' ~# y
                        assignLObj := rgmanager.rgAssignL;
* G* W1 _  _+ r6 R                        row := assignLObj.getRowNo(GlobalDistObj);9 F" ?4 Q# k4 N- B
                        if Row = -1 then -- since 70
: b4 W$ l# T1 L% I6 s$ e                                if lan=1 then& G- u1 O. L5 f1 B" [; v% u
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),1 o+ o- }6 T. F8 F0 x! {( F
                                                to_str("in der Andockstation: \"",?.~.name,"\""));6 H4 s% d1 s/ m8 u4 K
                                else; D! v: b$ ?9 o" [$ h
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
1 @. a' G. _5 u7 R% G                                                to_str("in docking station: \"",?.~.name,"\""));                               
" w9 V) ?2 [1 ?+ j& f6 V% w! n                                end;
8 L6 z& T0 s7 ~+ [( [% v4 v, }                        else' p6 b4 E; u' t! e; w2 m
                                @.Destination := assignLObj[1,row];' j+ R+ ~) t. U4 \& C! |, s. w( D+ L5 ~. n
                        end;                        4 B6 _/ D8 |9 e& p: S
                        newDirection(@);' Q: b/ t/ M4 p! L- _
                        @.HasOrder := true;
8 h6 j- y. q) J6 X# S* a+ ^* X1 {                end;6 h5 Q, r  n( S  G  w5 ?  ^; f
        end;/ ~1 M; ?3 g* g; x. i- R& I
end;        -- of the method( K1 I1 @& |& v2 ~" ~) E
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
. _+ U/ p. g6 g2 J; G! r) f. m$ X! {) M# J
这是AGV_putin中arrive的method。
8 q+ k( B0 \* B
$ S" e3 B& x  L$ ^! A5 g当到达物料速度越高时,这个报警更多,
( P; n/ T/ F1 Q2 F1 A' W可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。# |& E& X$ O/ _* v# G* L
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?9 A. q, q6 }: b4 S

* v6 V9 R& P7 ~3 v6 V/ o* Y8 P+ @另外一个小建议,就是move,所有的move都可以这样$ w5 q) l: S1 g3 z! E9 e5 B
if not move() then debug end1 J1 d2 M6 a* {. v( b. `9 R4 w1 h* K
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。: t6 p6 z8 ]5 d
plant simulation中的free libraries有AGV模板,$ a" l; b; r" s
里面也有案例。
- Y$ [% ^# z6 a$ Q0 S2 \9 f我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。4 q1 s) M' h" {. J  F: p! {

, `9 O7 L; a  W' l我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 5 w5 [! m. J5 P: F2 c7 }
8 _! V" S, I6 {+ E' e: E6 z6 l
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
9 D: t, K6 ?9 k4 s2 Q8 ]  O这是AGV_putin中arrive的method。3 y" L0 h' i. _  B) g5 _) C3 b
. r; Y) t1 ?' n! ~6 [* c# V! z2 c
当到达物料速度越高时,这个报警更多,
- j' z" V. V2 k% y( r2 z. W+ O
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-23 22:50 , Processed in 1.561835 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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