设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6615|回复: 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'
; ~5 k  M2 |9 w2 a. k( }*/
9 z; m; v" O$ R) Vis
, y# C1 ~# u) H) U  a        part, GlobalDistObj, assignLObj:object;row,Lan:integer;' N' r% E. @" o+ q8 o; W/ ]) |4 f* H: r
do7 V5 T- h6 C4 L+ t0 r5 H, t7 A
        Lan := rootfolder.Internal.Tools.AOLlanguage;
) y/ u# T% w0 b2 o8 M' P0 F6 [/ G        if current = @.Destination -- else return  ?# F0 q! t9 _
        then+ R0 {2 a; }: x. K
                @.Destination := void;+ `/ @$ E! M* m- k- ^
                if @.occupied then4 L4 ]) D; |/ Z- q2 `* G
                        part := @.cont;3 f/ S* S" V! |4 A& P
                        @.transpOrder := void;1 P, A' X7 T$ a$ u  K( r
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
$ W1 O) `4 V, T4 i  U' E                                @,root.eventcontroller.simTime);
4 d! S! O! X6 u7 D; [3 m7 L                        @.HasOrder := false;
, K, S6 Q4 M3 \( m                        @.DrivingHome := true;
, @' D9 N7 ?5 H                        rgManager.tryToStartTransOrder;& e. n. G" W, g! X* R
                        if @.Destination = void
1 f0 I  V3 I; j4 A% \- T! |* S                        then -- no transport order for vehicle @9 W' s& `! A% k3 Q
                                @.Destination :=7 b2 ^" n) d! i) S* y/ H
                                rgManager.nearestFreeStation(@,track.~);9 B' I9 B" `* C+ w: d- Z2 T2 n- \
                                newDirection(@);   
8 U" b, p, h$ t$ y& J                                if @.Destination /= void then
& V  w2 Q& A+ q' _8 Z0 O1 Z" [                                        @.Destination.NumReservation :=
4 _; R7 V0 ]5 R  @5 T6 U, ~0 i! D                                        @.Destination.NumReservation + 1;, s9 f. x3 X* i4 ~# T
                                end;3 Q' I2 v! |' G: p7 e" }7 Q3 X
                                @.CurrIcon := "drivingHome";. [( f4 c  Y, H, w+ G- L
                                @.DrivingHome := true;8 _9 \3 p0 k* \- C! r% e
                        end;
3 h' K. p, K" U$ Q5 Q3 b                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
( T+ h7 o- s9 O, I' V                        part := @.transpOrder;6 B/ y8 d) N2 \
                        part.move(@);-- load part0 ~2 }9 K/ c& [2 [, G
                        @.CurrIcon := "load";4 P  M3 v8 a1 r, E% y& e1 [, t
                        GlobalDistObj := part.globDestination;3 P$ K$ f) Q2 S: X( p7 j
                        assignLObj := rgmanager.rgAssignL;$ G& d% D9 l* E+ u7 F8 d% n- [
                        row := assignLObj.getRowNo(GlobalDistObj);
! n* L+ |: J$ D: k$ Y+ `) h+ T  x                        if Row = -1 then -- since 70& w; G& ]4 @3 B" L: f3 _+ _4 N' z4 t
                                if lan=1 then
( B* E8 _$ X- Y                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),* ~# J+ X# B- M  f
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
6 C$ P# o8 d. i                                else
; [* g1 s: J4 A; {8 P2 [                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
" m/ ~- ~; v6 v: ~' j                                                to_str("in docking station: \"",?.~.name,"\""));                                . c  N! N; o2 V; f: J8 {3 g
                                end;
1 P7 y% p; `4 q' D                        else
7 R5 l$ u$ Z! M. G! A. Y                                @.Destination := assignLObj[1,row];" _% c4 T  D; e
                        end;                       
; D: i# O* G( J                        newDirection(@);5 s& I) k2 @/ ?5 W$ W: h$ |
                        @.HasOrder := true;5 P( }! N, t4 c4 y2 d
                end;
6 A' z- |# ~# w% N. ^  h        end;& A( N) c1 Q! |" V' O/ ^
end;        -- of the method
: D) J9 |# f  {- ]
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
  v! L! Q$ j7 i
/ K0 p" O( n. O6 C! C5 `这是AGV_putin中arrive的method。( n4 r' @5 z* ]# G

/ q) C' v# Q4 Q% y' X7 M* e当到达物料速度越高时,这个报警更多,
2 p* I. N4 `/ ]% K' N; {' O可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。) k' [7 S: E0 F# _
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
' K7 W; l6 q! Q0 Q
! {1 v* W* f  o1 a另外一个小建议,就是move,所有的move都可以这样2 j$ j! F. C3 g0 K
if not move() then debug end
" M, W. q7 `7 Y: K. P! v+ z这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。* J, H; H) S& D- s" ?& d
plant simulation中的free libraries有AGV模板,
7 W- c8 k# ^" k. J- i: d4 R' U里面也有案例。
5 t/ @* h1 s5 c8 m) j; P: J  R4 e7 }我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。  z. v3 G  K9 a: s, D

2 o# D# ]1 D+ I$ U2 m- f  a我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
! x7 q1 R: ~' x) }* r# x/ @2 R7 m* _+ X: Q1 J( j' D/ i) Z
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
+ F. V" \6 v9 g! L, _: O这是AGV_putin中arrive的method。
( l# q3 v5 d# y4 R( B, j3 C2 P, r# l; [9 t" M
当到达物料速度越高时,这个报警更多,

% ^; j2 ?- x% \( \5 v/ E另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-16 10:37 , Processed in 0.025354 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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