设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6379|回复: 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'
7 K  x: _' z& `' v*// f; S& X& \. e4 |
is0 Y  D5 D6 Z3 P& E' k- w' {/ b; p
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
. ]/ q6 p0 U' u. ~% i5 tdo: @7 `( C5 B6 K* j& ~- ~$ o
        Lan := rootfolder.Internal.Tools.AOLlanguage;
2 I- d, u7 O# P1 r        if current = @.Destination -- else return
* y& z8 ~% z) o+ l" ?        then
. w+ g) {+ Y( y; b0 `                @.Destination := void;
8 d* \+ z: T" N, f                if @.occupied then
. T# P) U* s3 @$ W+ w9 G                        part := @.cont;1 l& b! }. \8 W! `& T
                        @.transpOrder := void;
9 X5 P) G4 z4 R5 R' T$ |# P" ^                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,1 Z* j0 s# e* H$ i% ^) u9 x
                                @,root.eventcontroller.simTime);
3 c5 i& J2 O( @2 B" Z) S* q                        @.HasOrder := false;
  A4 w) |5 U6 ^1 V* Q- f2 q                        @.DrivingHome := true;2 A- r0 G% H4 Q- R1 a, W0 c( E; i
                        rgManager.tryToStartTransOrder;  k( @  p/ T& T- ~/ E' F
                        if @.Destination = void5 x" t3 T" j7 G0 j* X8 U" D
                        then -- no transport order for vehicle @' `, x( T. B, I+ ]
                                @.Destination :=
6 I6 ^# [1 ?- b' V2 f1 |                                rgManager.nearestFreeStation(@,track.~);9 Y% B% r& l% j  i& W3 y+ C
                                newDirection(@);   
) ?: B5 @/ a& L4 H3 J! Q                                if @.Destination /= void then
+ c# }, f/ \" j( W& k                                        @.Destination.NumReservation :=
, `  S; C( d) ?! B                                        @.Destination.NumReservation + 1;
  ?) r- J. z; q, u4 s                                end;, H. Z- p& p" ~( }' Q
                                @.CurrIcon := "drivingHome";  x8 f# J" b: h
                                @.DrivingHome := true;
0 ]$ f2 E, {  V7 r1 C                        end;
2 _3 H+ g0 d4 N. H; w- J  L; L                else -- the vehicle @ is empty, both vehicle and part are in the same dock station; U- C* Y0 m9 Y$ m0 h0 q# b9 @, `
                        part := @.transpOrder;
$ @$ M" }" }% W1 R1 R7 S# s                        part.move(@);-- load part4 `) ]; P+ \) T" `
                        @.CurrIcon := "load";9 m8 k) X* z* g4 |8 ]; z
                        GlobalDistObj := part.globDestination;8 p6 t% s2 m! \, Q
                        assignLObj := rgmanager.rgAssignL;% A+ q. R% Y) Y$ W
                        row := assignLObj.getRowNo(GlobalDistObj);$ W/ _, h8 x" l+ `$ [. f) X
                        if Row = -1 then -- since 70- l4 n& k* I/ R
                                if lan=1 then7 S  M5 k- T9 {; o; d6 J9 R
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),0 a* y) ?. L) r  x& N* N
                                                to_str("in der Andockstation: \"",?.~.name,"\""));3 N- T+ E+ B+ O  {4 @; A  O; b1 H
                                else
) p9 d' t3 v( }) E, }: h                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),/ U$ u/ ?5 b+ N6 H% M
                                                to_str("in docking station: \"",?.~.name,"\""));                                # a1 g' R) m: m' Z
                                end;/ V, B, P& P. x; ~# |: n
                        else5 n8 W; t5 \1 ~% A; B
                                @.Destination := assignLObj[1,row];5 g9 r+ ~- A5 T
                        end;                        1 W0 @3 @  j" d7 A4 ?( u' N, L! n
                        newDirection(@);8 }$ d0 b0 z# J1 _$ p
                        @.HasOrder := true;
/ U' A! U4 n4 S9 A/ t                end;
, [0 r4 [2 n" Z7 a: I. h, a2 q        end;5 F; @9 l+ h) v( H" m/ t( c4 V
end;        -- of the method0 F! Y: j9 J% ~0 t. I4 r
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
2 \& I/ T; E$ E- x) k/ m
& Z! Z- L. m# ~2 v/ W! }- D这是AGV_putin中arrive的method。
# t# ?$ H5 i/ T' z
1 o. R5 `9 d! R+ f4 u+ h/ s8 m3 f当到达物料速度越高时,这个报警更多,
6 E6 S+ k& {2 O3 n. [可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
/ W! s- Z# X5 N+ f5 k/ ~程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?9 f3 m% ]2 |3 I) ^& f' ~
. s) M2 }" A8 H0 g! u% v# ^0 ^
另外一个小建议,就是move,所有的move都可以这样0 z- I. e, h, c1 d, Z
if not move() then debug end
. _1 X- U) d% J这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
# q5 M* T6 c) iplant simulation中的free libraries有AGV模板,
7 r5 h8 H' U3 d5 N8 ^) e里面也有案例。+ z4 f# T5 g1 F! [, M4 M
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。, v. m6 P. n" A6 x" O) H* i  i
# F) i  D* o# v7 ^. T. |
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
/ z6 V; r% j1 u! W& y8 H2 H& H2 b5 I
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ' j6 w/ u/ y1 _& l. K
这是AGV_putin中arrive的method。
! g1 u' i" b) o& X4 B/ }
( ]$ s5 c2 X4 Z( Y3 \当到达物料速度越高时,这个报警更多,

2 G: u0 @4 X9 @3 X* t) l另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-2 20:24 , Processed in 0.022246 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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