设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8281|回复: 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'
/ |8 {/ `0 t8 [; T*/
3 [) j7 F5 l7 _) \is
0 W5 h& x: Q1 b" g" K+ K        part, GlobalDistObj, assignLObj:object;row,Lan:integer;2 l- ^, S- M! T( M$ l1 X/ K3 t
do2 o9 L" p& H% I* c* V  I' I/ F
        Lan := rootfolder.Internal.Tools.AOLlanguage;
/ G+ h5 I. x! Y        if current = @.Destination -- else return2 v& g- b* c3 }
        then
- J' L* g& h& i                @.Destination := void;
  @/ k5 O; h0 m0 Y1 `! b0 O" w6 D                if @.occupied then8 e5 m& f: T* p$ `# F! c. q
                        part := @.cont;
( ]9 e8 w9 P  C3 X                        @.transpOrder := void;
! d9 k7 _& s$ [# ]+ S                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
* Y+ [* x  E  k, }* h. {                                @,root.eventcontroller.simTime);7 d& u% W) u) f; |; o& r
                        @.HasOrder := false;
# J7 I/ B1 t/ X# z, Z                        @.DrivingHome := true;$ r% u: F# ]$ h+ ^0 b
                        rgManager.tryToStartTransOrder;% C0 A- T/ X( u  z# P; z$ N
                        if @.Destination = void$ T3 O( K7 d- ?6 {( O& A! H; q: W
                        then -- no transport order for vehicle @
) J9 r& I' I, m0 G& p                                @.Destination :=" r2 L3 O+ a2 z  L. S" \
                                rgManager.nearestFreeStation(@,track.~);
5 D9 r5 @0 `: G0 Y) Z9 E8 B2 u1 _4 u                                newDirection(@);   4 r$ B1 d- z, \7 f% X% k9 F7 g  x
                                if @.Destination /= void then
, d: K2 T; j& ]& _/ M                                        @.Destination.NumReservation :=# y2 C5 k- u9 m
                                        @.Destination.NumReservation + 1;: [$ u9 [  Q3 N/ ?, K
                                end;' l/ x- G$ p; f0 E
                                @.CurrIcon := "drivingHome";
0 G3 @+ E! n  v2 J) l0 a  |                                @.DrivingHome := true;
$ n# e7 \5 X2 b$ J- e                        end;6 Z: W$ k6 X' h: A0 E/ n
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
  ?" W- d" @* U: C                        part := @.transpOrder;
5 Q" W0 }$ T( x4 o3 {" q/ J                        part.move(@);-- load part/ I5 v, R1 Z( f. W) V
                        @.CurrIcon := "load";/ m- R8 P4 ?1 l( R( A& M9 {" f
                        GlobalDistObj := part.globDestination;
7 l2 M: [7 ]9 m4 [                        assignLObj := rgmanager.rgAssignL;- Q: K6 y& m: d/ s, Z
                        row := assignLObj.getRowNo(GlobalDistObj);1 q2 Z* z; g! P+ }
                        if Row = -1 then -- since 70
$ B$ d  e* p! j) B) W. k                                if lan=1 then; {7 p8 ?0 v2 i: `; h
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
, G+ ?# t/ ^5 ~1 M6 Q+ Z6 `9 _* o                                                to_str("in der Andockstation: \"",?.~.name,"\""));- \( \( c. g7 j4 c$ X2 J
                                else* I4 T( v0 X; y- [2 {3 y9 [
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),4 ]. I# f- L) y1 o5 [
                                                to_str("in docking station: \"",?.~.name,"\""));                                1 O3 q/ M6 W) Q
                                end;7 ~! l' [. p6 b; G; P/ ?
                        else
, u0 x$ W4 o" R1 k+ L" i: H                                @.Destination := assignLObj[1,row];
& |  w/ [0 {7 l' [+ _5 d                        end;                       
- G! R3 v" G8 X# T# g                        newDirection(@);
$ D9 q  B3 J7 [7 ?; W                        @.HasOrder := true;
) v1 J; W0 B. B6 u+ k* H: ^                end;
& D* \" b6 a) J6 R, k        end;
8 W" i( C, ]# J9 L' x1 x7 @# p% u7 Pend;        -- of the method) e. k: l; v+ A" L$ l
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
/ {# }4 c. e6 q* {9 Y+ Q1 o1 \" R  l) Y& m" ]* |. ?: z4 C3 z
这是AGV_putin中arrive的method。
* z/ F' O0 K7 p7 m; x/ c% w( Q& A' I/ R
当到达物料速度越高时,这个报警更多,
" v) d+ `9 m; I" a! e可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。" i& d) l1 F; Z4 f* T. Z
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
; n5 a' l) k) s; q& L! `0 f- j9 e! e7 b7 j8 c, V/ T3 l
另外一个小建议,就是move,所有的move都可以这样
  y/ H+ u/ p8 ]6 \5 C# wif not move() then debug end
; k6 t0 s# W( j% i! d1 {: V* W. F# O& {这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。! b5 J: G; x5 A. T2 t
plant simulation中的free libraries有AGV模板,
7 a- d+ s) X4 r: m里面也有案例。" r- v2 \% N2 ?4 H2 j9 r
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
1 z" M, M# b7 E. k+ t1 x( j  u# C. f1 x( }5 _$ X5 Y2 V
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 $ m) B4 n! N4 b4 S
9 C' L/ P7 ?$ k; B
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 8 W7 `' D) v& X
这是AGV_putin中arrive的method。- O$ T$ k! |2 ~, V7 B, D9 G
- j' C) ~% h; q# ?( \0 Y- }
当到达物料速度越高时,这个报警更多,

& i  X% s; V" p另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-25 03:04 , Processed in 0.021090 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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