设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8672|回复: 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'
! ]/ }, ]) G2 K- w% r  H+ u*/
' K4 i/ A: j. X# |$ c5 X. W* Dis
! r1 o  y, L, B3 `/ j. g; x        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
) Z# u) G$ m8 \, B! Ldo
5 x5 Q. F& w, ^7 n: `$ M6 \        Lan := rootfolder.Internal.Tools.AOLlanguage;
* i( _: d/ I1 O( x1 X, H        if current = @.Destination -- else return
/ X4 Z2 N  n# E/ w        then# X2 }+ d/ N- }. o' q0 y
                @.Destination := void;
" e+ E' F# Y" r8 r- ~                if @.occupied then: d; g! X7 E: M+ z. T3 m3 I
                        part := @.cont;
0 b& D! k1 O- }2 u) p9 X0 Q                        @.transpOrder := void;
# h; _' u& Q, a" ^; h                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
3 I& F: O5 N0 C7 L                                @,root.eventcontroller.simTime);+ v, Z6 k8 Y1 f, l4 Z$ n5 ^0 z
                        @.HasOrder := false;+ o6 W: I  w: ]% B
                        @.DrivingHome := true;
" S. y  F! C" o! T                        rgManager.tryToStartTransOrder;5 N2 H; {( X2 B' f
                        if @.Destination = void+ f6 Z. u' w2 Y' g
                        then -- no transport order for vehicle @
5 h  ?# J) ^( ?" B# ?, X' y5 ~                                @.Destination :=, v: \- L) i. K
                                rgManager.nearestFreeStation(@,track.~);! S8 p/ q, d6 E% Z: ]$ |/ }+ Q2 w
                                newDirection(@);   
: x$ I0 b- C& y$ V                                if @.Destination /= void then: z" _+ d" s2 Y$ q6 ?2 D; p( w
                                        @.Destination.NumReservation :=! e7 k7 Z" ~+ W2 j; B: u
                                        @.Destination.NumReservation + 1;3 K7 o  v$ I0 m4 F7 O6 m
                                end;" ~- X+ |, e  `. d
                                @.CurrIcon := "drivingHome";
4 b/ B4 J% h' Y                                @.DrivingHome := true;4 I0 ~/ e; b% _/ x
                        end;* C; e& G- [+ H: {/ [+ ^! \' v8 Y
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station/ D- G8 p+ t9 m" I5 q/ ~
                        part := @.transpOrder;
! F; K- j" j+ x* Y- p                        part.move(@);-- load part
1 A! o' F8 ?$ N5 W3 V% A0 ]                        @.CurrIcon := "load";
6 q1 v5 X* s1 ~                        GlobalDistObj := part.globDestination;
$ c* x3 u. z! ~* K3 G; Q                        assignLObj := rgmanager.rgAssignL;
) h# }# z4 |* W; S7 p4 z                        row := assignLObj.getRowNo(GlobalDistObj);
) ?4 `% V4 m6 T, a                        if Row = -1 then -- since 706 I& f* f; `: U  f3 ^
                                if lan=1 then- z! M% A* g) H! k' ?
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
0 D; G( D/ t1 U9 c; C! t                                                to_str("in der Andockstation: \"",?.~.name,"\""));9 Y8 O6 y1 l3 C. C4 b2 \0 r6 H. I
                                else4 [0 I8 O% @0 l" F" d* H
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),3 e# p0 z% Y/ g5 ~+ ?" a
                                                to_str("in docking station: \"",?.~.name,"\""));                                1 u" k$ r$ E, z' C: e) ]; y
                                end;" A, F( O6 H+ _! P6 q
                        else( S/ O7 _) w9 {
                                @.Destination := assignLObj[1,row];7 V8 o% h2 N5 H# ?) ~$ ?. b# W( g3 B
                        end;                        , ^' ?6 X. p4 c4 h
                        newDirection(@);
6 K- i+ V! E7 Z+ @/ a4 b" o/ {                        @.HasOrder := true;7 |5 o  O7 M9 ]% `2 V# e3 a+ f; j
                end;
+ m! u; o$ [' X' k. J0 m2 {        end;" d) s  u8 W( N+ v' W+ X3 X" z
end;        -- of the method
7 B; {* H2 T+ g. ^8 G! a
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 9 n* y7 R* z; T
+ Q, `/ i2 O9 y3 w* h
这是AGV_putin中arrive的method。) f+ z" J6 t  ?& z0 i$ G0 }

0 h- v0 U8 p$ J8 x) D! D/ d当到达物料速度越高时,这个报警更多," p6 a  M- R0 J+ s
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。6 }9 x6 F/ f+ C4 v4 P
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?( [: S, a' }1 W; H# \$ o
( n% {; `1 i7 M) S% P0 ^, a
另外一个小建议,就是move,所有的move都可以这样
* K. m. n0 A- `# L$ r# P7 Mif not move() then debug end
$ e6 n8 i" S2 Y8 j  Y6 }8 `1 P  Z. H- t+ E这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
* r# {% i! s6 O# e7 `plant simulation中的free libraries有AGV模板,' J4 }+ d. q7 \
里面也有案例。( w! L4 E. c! m" u
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。& e) |, c8 w: B6 B5 l1 |7 {

- B$ _1 s( L5 [0 @; \# C& L1 k! \我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
9 o( g" R5 r* u0 R2 O& I
  D7 `& J& s9 n4 ?, O那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 2 E3 y$ y6 A, b0 G; n5 L
这是AGV_putin中arrive的method。3 a$ m- l* N. g4 A& E# x

& x4 @* K/ K  D* [8 A当到达物料速度越高时,这个报警更多,
! y( i. h$ w4 V  [
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-19 10:29 , Processed in 0.018440 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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