设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10155|回复: 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'
. l3 e& B3 O3 B" |+ k/ s*// {3 X- ?) ~% L- M1 `  l
is0 U+ _& D$ l7 D# S% x) V& y4 o
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
. d$ i$ ?; R: U4 l1 r3 pdo( O1 I' `+ k: q
        Lan := rootfolder.Internal.Tools.AOLlanguage;5 E4 E  e# F" ]/ V1 v* C# O
        if current = @.Destination -- else return
. b& L% [4 Q6 a* P5 m2 n1 N        then
- X( a9 Y1 u1 r( l; l                @.Destination := void;
: _: z) j  Y# M                if @.occupied then+ S  Z. ^8 i% t: H6 U+ W8 N6 k
                        part := @.cont;2 [; ]4 h/ U: ^! l  Y; B7 }0 ]$ f
                        @.transpOrder := void;
! p/ i9 r4 J5 k& Y! H                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
0 l8 n3 C; N: Z9 |                                @,root.eventcontroller.simTime);
/ {1 E: j# l: x                        @.HasOrder := false;& L% U, E, u+ \+ G2 Y+ j3 [
                        @.DrivingHome := true;6 Q5 z( L# |; x% ]7 N
                        rgManager.tryToStartTransOrder;
# c/ u: B. D$ E, A3 `) A                        if @.Destination = void
0 H- K. P6 Z4 e0 h                        then -- no transport order for vehicle @
9 G8 j% Q, J9 f% N3 I                                @.Destination :=. ]* \! S& y9 V6 e; h/ w/ B$ F( M: C
                                rgManager.nearestFreeStation(@,track.~);" B" Z* L# V2 f3 _
                                newDirection(@);   , s5 \* [) V2 ^; p% F
                                if @.Destination /= void then% [! P* j" f/ j7 T& k; g
                                        @.Destination.NumReservation :=
0 p! A$ @- T' O+ ~5 W                                        @.Destination.NumReservation + 1;% q- X1 i) i- w+ W; L. z& |, K6 ?
                                end;
/ e8 ~  z# {( {: @4 V7 R$ L( U& r                                @.CurrIcon := "drivingHome";
) t: z* C) f9 ^2 Y1 f$ ^                                @.DrivingHome := true;- ]  s2 f+ {0 Q2 o& G
                        end;4 F0 K$ R1 M( S8 t
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
+ X0 w  ^  S# V( M8 N( f                        part := @.transpOrder;
( k9 C- L" y1 m7 t) M# d& e                        part.move(@);-- load part) I- d+ Q- B( M2 }
                        @.CurrIcon := "load";' o9 d2 O. P2 {4 e, w
                        GlobalDistObj := part.globDestination;, A+ z9 G6 K3 k% K* t; l
                        assignLObj := rgmanager.rgAssignL;
4 `& C  [5 y" R" A                        row := assignLObj.getRowNo(GlobalDistObj);
/ w, \- o7 f; O. ]$ t+ b8 I                        if Row = -1 then -- since 70* n7 y+ u1 g' i+ O1 j" r5 E; V
                                if lan=1 then
& S; I& I* d8 Q, E                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),! Q6 P. H+ K! y
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
! _# h5 u2 E+ Y2 V6 b( b# [# G                                else+ j2 X! Y  t; {' H" w$ n
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),5 U1 j: j1 I; o$ o
                                                to_str("in docking station: \"",?.~.name,"\""));                               
* }9 w# i% A) u) f  |& D3 ~4 Y                                end;
3 S% B9 T" H$ L& N* @' I                        else7 d4 a: M% j% q* ~5 H# }
                                @.Destination := assignLObj[1,row];
  n# ^: P* t: j* h& w+ [$ U' B                        end;                        3 X8 I- a7 D# M3 V6 n& r! H% ]! V" K
                        newDirection(@);/ w4 p2 {, R! Q& _3 {
                        @.HasOrder := true;4 V) i' J# z% `! b5 g' y
                end;  T! l# |& h8 V
        end;
+ W9 k6 n9 c" Q4 n! `end;        -- of the method
4 ]7 [! b, |6 ]; J7 }
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
( O9 ~- K# ]3 o+ Y: Q4 z2 _$ ~4 K2 _* \
这是AGV_putin中arrive的method。9 ]" ?+ @' t8 b4 q9 T6 n/ H  r

0 x# ^, b! J7 d, q- N当到达物料速度越高时,这个报警更多,
7 R$ @1 \' F7 o6 l6 N可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
  S+ Z; T3 Y! y2 @- C; e程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?! Q- P! U# g6 e9 R' t
9 L! W8 k, ?- L$ b0 K
另外一个小建议,就是move,所有的move都可以这样1 @7 }* ~  J; c; `
if not move() then debug end. c8 B" d/ s+ G9 C! W. w) }
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。; s3 K& {5 z3 N; @
plant simulation中的free libraries有AGV模板,) g, z5 g# j4 r0 P) M
里面也有案例。
& k2 F  H* f8 A我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
6 [4 E( C& h  C9 n
6 Z4 {/ t9 r7 B6 P4 }5 ~我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ' Q' [& X3 l! I2 p( V
  `; H7 I2 u- {% p( E- n' k3 v
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
. c; o, v' W4 H" G, E+ A, S! I; }这是AGV_putin中arrive的method。0 W% N- _* @# [4 K5 S; o

! M7 ^+ |, x, J% A( Q当到达物料速度越高时,这个报警更多,

; B2 j/ V4 c0 a另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-16 21:59 , Processed in 0.017435 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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