设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6316|回复: 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'
- [1 f' y( D" H& ~, l*/
1 |; o/ E) K( F" j! Mis
. w! `5 p! W6 T( M8 |/ ]. T        part, GlobalDistObj, assignLObj:object;row,Lan:integer;+ ^" m$ d2 }1 S: Q
do8 M7 t) O; ^7 g  }7 p! R+ A
        Lan := rootfolder.Internal.Tools.AOLlanguage;! k8 K+ e7 z  w1 O# `) l, B5 _
        if current = @.Destination -- else return' j; F1 |4 I/ M3 d( v
        then$ Z( S2 @: P- @5 ~$ v
                @.Destination := void;) t: r$ g, {0 I5 r/ s) v7 o5 ]
                if @.occupied then
9 K/ N' t- o" L- a5 c. J! B2 i( s                        part := @.cont;
8 l; A7 d. ]" h! S0 `) @8 g& q$ a                        @.transpOrder := void;# T( t) b! V! X. ?( f* m* o/ D: A
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
2 g( s* G8 d! c# c                                @,root.eventcontroller.simTime);7 {2 O) V3 @0 @0 Q  s! r  P
                        @.HasOrder := false;0 }0 l4 b. O( ]2 @$ X
                        @.DrivingHome := true;
! D1 ~8 f9 O9 |# @, m                        rgManager.tryToStartTransOrder;% o% @; z6 l2 Y1 a" m
                        if @.Destination = void2 c% A) A( G" t0 Z
                        then -- no transport order for vehicle @
( R; K1 j' \+ I8 a                                @.Destination :=
1 U6 K5 t; O% p$ Z' ~6 `7 q0 u                                rgManager.nearestFreeStation(@,track.~);4 i) Y8 C4 u+ Q1 y: @. U
                                newDirection(@);   3 r7 L& Q; G9 S  ?# q
                                if @.Destination /= void then% A' d# A- M& f/ L3 [$ v. r/ K
                                        @.Destination.NumReservation :=. u' e* W4 \$ g: [+ E) b
                                        @.Destination.NumReservation + 1;0 z# V$ m7 q, T! [
                                end;
4 Z2 b* f3 D# {% u                                @.CurrIcon := "drivingHome";$ a* E. \* p2 D. {, I4 Q
                                @.DrivingHome := true;1 Z4 |: j: }, \
                        end;! w' b6 H% Z3 T& I1 |+ ]2 r) F
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station6 O6 P3 z/ [) y
                        part := @.transpOrder;
* ?! C2 i0 C$ F- C. j8 F                        part.move(@);-- load part
1 Z. R+ o- d" u, X! ?/ {                        @.CurrIcon := "load";
, l8 g2 J; p* m2 z" P8 s- ~                        GlobalDistObj := part.globDestination;
/ b, n( z. e; K. Z- b2 A                        assignLObj := rgmanager.rgAssignL;, m" g3 @, j1 \
                        row := assignLObj.getRowNo(GlobalDistObj);  U( J0 q8 w/ f
                        if Row = -1 then -- since 70" u2 ]1 u" {: q
                                if lan=1 then. A! N4 r+ Q" D  o
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
7 h2 F2 i4 `% l9 J/ z8 B$ H                                                to_str("in der Andockstation: \"",?.~.name,"\""));+ A0 O2 {% \5 w
                                else1 L; i/ V1 n$ W7 D3 C! v3 \
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),# T9 R. Z3 u& E# x+ F6 c$ J0 G) A
                                                to_str("in docking station: \"",?.~.name,"\""));                               
) q# D+ g: H8 B, T1 z7 m' n                                end;% g2 n- N7 f' q5 V' Y& t7 }
                        else# y* A( w. @8 Z1 n$ I* z6 a
                                @.Destination := assignLObj[1,row];
" ~8 Z' a% u7 T# B4 ]                        end;                        1 R0 J8 g- Z7 c; ?
                        newDirection(@);
  T0 T$ H( ~3 c) t0 @4 u. t2 E                        @.HasOrder := true;
. r" ~) {2 Z+ c  l+ f                end;
: J% k3 K! n5 k+ O* V( b        end;4 l( U$ |7 O* [/ [' T  r
end;        -- of the method
! A( c8 ~7 o5 f& U) \8 k
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
* @/ T/ \1 |& a4 ^7 j8 y' v
2 r# \! f8 k" x" Q这是AGV_putin中arrive的method。+ X! y% p2 e# ~2 F. u
, ~% M, a8 L9 x7 ]3 V7 \& B: ]
当到达物料速度越高时,这个报警更多,. D: x( ~; W" c- ?* Y
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
. z; {. u* d4 B9 J, }  ]$ X; o0 w程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
- p! s, F% s. A% r3 ]. T1 p
; p. [8 x' |0 n, m% A* o! H另外一个小建议,就是move,所有的move都可以这样: z% z* ?) T% [! A7 y$ P
if not move() then debug end. [$ V; f" ?. W, u. h4 S) O
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
  L: W- ^9 v8 [4 d/ aplant simulation中的free libraries有AGV模板,8 O5 e% [& |5 s  H; T; Y- P; z
里面也有案例。7 ]% d2 a4 H" z3 C
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。) W# C  i  O! ~. Z9 H
) I4 T/ c0 I$ m4 s) K
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 " G% ~' b& F8 m1 Y. e! ~
% V' m7 p3 E' g3 {. ?
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 % J. N4 d: ]/ L7 R) A! H
这是AGV_putin中arrive的method。
- o' h, u( @- |5 B) N1 e9 O; C& G, F
当到达物料速度越高时,这个报警更多,

6 {! _( {6 B( S# h/ J* Y另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-30 12:40 , Processed in 0.023274 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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