设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5485|回复: 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 L4 L5 T+ ]4 U4 L' c
*/. @- t; V: ~" Z$ z" j
is: v0 w: ^4 o! ]) Z7 x& P0 b3 q
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;; D" F& Z3 I2 [9 ^+ V4 M
do" v" W' f8 k6 F
        Lan := rootfolder.Internal.Tools.AOLlanguage;
8 H+ i, U' q/ H9 l2 a8 o; H: W        if current = @.Destination -- else return
* n3 d; J0 \* @$ ^4 G, ]        then+ A( h5 t1 L, V3 a9 S7 a
                @.Destination := void;  A9 C/ N/ I; w/ g
                if @.occupied then0 b9 F# b' ^& S- d
                        part := @.cont;) u+ Z) q7 ~: e) n& O8 Y3 W' u# N
                        @.transpOrder := void;
* `  C6 G9 q4 [! o: y  p                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,, T9 _( r7 C& D. h5 L
                                @,root.eventcontroller.simTime);
9 g, e0 T& {  N! i1 R$ {                        @.HasOrder := false;
: M# g: g5 F6 W6 ~0 _                        @.DrivingHome := true;
/ J! o! `; ^& P, l" ?& o. r                        rgManager.tryToStartTransOrder;
  L. z- t& p+ o/ y" a. e                        if @.Destination = void& Z( M, A$ g+ \* b& U% c- }- k
                        then -- no transport order for vehicle @
$ g# @( c& J, K4 u) s: c. y9 ]. b                                @.Destination :=
9 s3 X$ d8 o4 b" W                                rgManager.nearestFreeStation(@,track.~);
3 B/ w/ \: p, u3 f2 E1 m5 j  G                                newDirection(@);   1 X7 q8 Q$ y. N/ I# k; Y' K0 ], z- B
                                if @.Destination /= void then0 b- B2 g. m3 R  |* p- y7 _
                                        @.Destination.NumReservation :=
4 _2 F0 Y5 y" X0 t                                        @.Destination.NumReservation + 1;: p0 {) W* V8 J7 h' ]9 O: {6 D
                                end;
; q; N4 `7 h! H1 k1 d' |+ s2 V* i                                @.CurrIcon := "drivingHome";! i5 \- t- u) f- G' A' b& q6 `
                                @.DrivingHome := true;
2 }& E. [/ S7 |* r2 v  _% x                        end;% R; O- b* J& m% V% ]) A
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
3 u  B0 @& k& W                        part := @.transpOrder;
; O* u9 G$ N! d. Z1 b- P                        part.move(@);-- load part
' s+ T  x1 L& P: f                        @.CurrIcon := "load";" T  A  }2 `5 z' H+ f  N/ v$ y
                        GlobalDistObj := part.globDestination;" L3 d1 Q* K; W& a. P
                        assignLObj := rgmanager.rgAssignL;
) v: K: Z; u/ b  v+ p. I$ e                        row := assignLObj.getRowNo(GlobalDistObj);! I3 _1 N, D, c
                        if Row = -1 then -- since 70
! j6 Q( Q2 B: g+ w8 k6 t' i                                if lan=1 then/ x$ k, J. k) k4 f3 Q$ `: D
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
  I# _( M& f9 ?- e. X8 W6 p                                                to_str("in der Andockstation: \"",?.~.name,"\""));
  m" U" J# G% @% s                                else
1 V6 q$ h3 o. Y  R% Q# W' p4 x% }                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),! l8 [- ?; Z- `+ [
                                                to_str("in docking station: \"",?.~.name,"\""));                               
& _; K4 a' F* H6 A3 T                                end;6 D, ~5 z' ~$ _. C- W. b
                        else
: Q0 b, z- ~( t1 }                                @.Destination := assignLObj[1,row];
6 j+ z8 n8 n' f( K                        end;                       
% k7 S1 K% \, p6 d' m+ G                        newDirection(@);
1 ?- s! n2 G+ G                        @.HasOrder := true;
8 ^0 j0 N$ V4 \2 D+ S* d9 P; B                end;- ?7 _, `6 w7 T( ]
        end;7 R, E' L2 @) C$ ?
end;        -- of the method
' W# |8 n* @* m# N/ Y: ^6 |
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 0 {7 u4 |! ~3 l' v% Z4 d5 U! L
$ F* U9 T) A0 ~) `  ?$ c; j  r7 [
这是AGV_putin中arrive的method。# I7 ?( }* _2 K  R

+ X. N7 P2 b" J$ J/ }当到达物料速度越高时,这个报警更多,
( S+ V! C9 e7 q: i: U可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。; T7 z4 r! m; w, ?& n6 F1 e
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
, C0 C/ U( a) y
" S% \2 e+ Z: K另外一个小建议,就是move,所有的move都可以这样
2 P  d/ j0 g, J6 [4 N) f7 lif not move() then debug end) \( y- v8 C7 `8 D
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。) J; O% z% s2 R: n
plant simulation中的free libraries有AGV模板,
1 i' G; ^! n. x2 i  Y' `" m里面也有案例。' h. L) R% R/ ^9 a5 C
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。  \. `7 M+ B& K1 R" [! T
- p4 X0 h( R5 _1 Y- r3 i
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
) _5 q1 M: R& M# F3 O+ ?# M
. U5 n1 z2 o* k; S& `那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
( ^% c! o: n4 j+ |9 @. t* L6 K这是AGV_putin中arrive的method。3 a% `6 Y9 h4 S6 M1 R: C+ B2 h
8 f: ?: i6 d# z  j1 i, N/ n& ]3 |2 U. l
当到达物料速度越高时,这个报警更多,
' E6 Q' K, g4 M* l% X5 I$ _
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-26 23:18 , Processed in 0.019184 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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