设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6424|回复: 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'* C" M! L9 m7 x+ P4 d7 m. J' z" z( L
*/0 P# p2 q# v2 g+ ^8 a+ e- e
is
) N3 q, d0 c2 O5 f0 w        part, GlobalDistObj, assignLObj:object;row,Lan:integer;6 h$ H- f+ |* _/ f* G
do
0 s) l1 ]  R8 @  d$ {+ Z# ^3 h        Lan := rootfolder.Internal.Tools.AOLlanguage;3 X8 H/ B; ~- O
        if current = @.Destination -- else return
$ z2 P* J3 Q* o% b        then
: Z  G9 _% K/ e2 Q" X, p! p+ u                @.Destination := void;( v* _7 Q# `% Q. s* s! b
                if @.occupied then
3 \7 ~# Y0 u3 m; D9 u                        part := @.cont;. [( S5 P" k6 g  l! O1 n
                        @.transpOrder := void;
, N/ x0 x( l9 p, x/ l) @                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1," S) \2 o5 p. i
                                @,root.eventcontroller.simTime);
. {  ~! Q- Y( w& l$ o! n                        @.HasOrder := false;8 R% x0 _+ E: \1 G2 F8 P" M  }
                        @.DrivingHome := true;
: A0 `: d. a  s  l                        rgManager.tryToStartTransOrder;
: ^5 ~' w. p' s" |' L                        if @.Destination = void
: }) J1 @1 F4 X5 ~, j9 S                        then -- no transport order for vehicle @
/ e, v% ]' J# u/ Z2 S' k                                @.Destination :=
  T7 R% J6 V; w                                rgManager.nearestFreeStation(@,track.~);0 t2 f4 \! I4 g! ?
                                newDirection(@);   # [; M# B* p0 f# [7 D$ G1 q8 U
                                if @.Destination /= void then7 n% P: E: x3 g" H
                                        @.Destination.NumReservation :=  l; [6 q; M- [! B' k
                                        @.Destination.NumReservation + 1;
4 i0 a7 d) z3 ?; y  h* y                                end;' v& A& F  f. G! @: |# N
                                @.CurrIcon := "drivingHome";0 f/ E$ A7 H/ s; `
                                @.DrivingHome := true;( P- {6 j  ~5 t: O2 K3 X! G
                        end;- S$ {- t' ^) h8 L: e* ?
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
" {8 m9 z' N% N8 E6 k% P                        part := @.transpOrder;
! O) K- @1 F) N& R# g' n3 I0 W                        part.move(@);-- load part
% ]: K. s& X+ }" H                        @.CurrIcon := "load";
9 A7 y. T  m3 Y" a& m% N8 [                        GlobalDistObj := part.globDestination;, H. Q  c, k, ~8 a
                        assignLObj := rgmanager.rgAssignL;
' d* n, F+ f, }* Z7 a                        row := assignLObj.getRowNo(GlobalDistObj);
% o' g4 V- E  n+ d- C. u                        if Row = -1 then -- since 705 Q& `. m' c5 J  j
                                if lan=1 then
) G& q7 [* t/ H0 t% p0 Z  ]1 R# G                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),6 G: S0 s: p9 o
                                                to_str("in der Andockstation: \"",?.~.name,"\""));1 W5 s" |! A) Z( h
                                else
* D: [5 ?: u  m2 b3 {6 e6 O                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
9 _% Q) |8 V. V                                                to_str("in docking station: \"",?.~.name,"\""));                               
/ ]- n  @! e# ]; V                                end;6 t! w2 O4 ?1 Y4 Q# R
                        else% C% h$ j+ g" C% u7 R  h
                                @.Destination := assignLObj[1,row];! }: T9 H  b8 X( w' @6 K
                        end;                        8 t3 A% m% a0 p% P
                        newDirection(@);5 x3 _% ?% |' L: K- N0 C
                        @.HasOrder := true;
7 E4 w% X$ G! g+ D# D! r+ K                end;, t# n/ d/ X( }0 o) i3 ^7 d! F
        end;& n9 e5 v% F) _, D; X& h5 g8 d# x
end;        -- of the method8 d% m1 c: j4 @: w
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 - k, T! k3 B( k: {& S9 p, P

; ?) \/ ?, J: e# ?这是AGV_putin中arrive的method。1 a4 P  i6 D0 C) k0 }

' q$ z+ Q/ z7 N0 m2 n% z! I1 N当到达物料速度越高时,这个报警更多,! z0 _0 D6 v5 Q
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。& j) K' k2 S: n9 P* b6 K! B
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?! Y* b' Q5 T; w6 A0 ]. Z5 W

# i0 X( G4 ?. l, R8 D( g另外一个小建议,就是move,所有的move都可以这样! @; L9 W4 G3 q1 Y- J
if not move() then debug end3 z4 w9 @0 ~5 W0 ], _
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
, q! Z# V2 [/ oplant simulation中的free libraries有AGV模板,/ ?$ f* _& O1 q2 F
里面也有案例。
' G! n  S2 Z5 c5 N2 ^9 K& q5 f我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。, ]' f! X) Q# C8 q' b" G
, r+ P1 X( U! ^% N# D% i  |/ a
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
: h. [" j! x2 j& U* Z# O1 E4 h" `4 m0 Q8 B0 H1 D( Y) D. i- J
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
: B3 a  e$ ?) A: J& ?1 a这是AGV_putin中arrive的method。2 ~& u8 `5 i5 n

0 D" @. l$ r. k; S当到达物料速度越高时,这个报警更多,
8 n# d" p6 H6 M
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-5 21:54 , Processed in 0.021479 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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