设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5589|回复: 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'
4 I3 f/ z% D& i# U2 K+ k. r*/! r: ]' `, g) m2 f% F
is
+ M( x$ U" F/ j# ^5 J# L. Q0 O        part, GlobalDistObj, assignLObj:object;row,Lan:integer;' P4 o  w. e! q, N' h: }7 E' L. g
do) F! N& i' f5 C' L' X0 s
        Lan := rootfolder.Internal.Tools.AOLlanguage;
/ |+ A  W  s' z- x9 y; f+ M9 B        if current = @.Destination -- else return
& w- [7 A' B1 y" [        then, z; \3 ]* F3 `
                @.Destination := void;3 l: H+ g8 Z0 t. g  [+ h
                if @.occupied then
2 [- o* p6 C/ S! ?7 W                        part := @.cont;
9 F, z# n9 ~( p6 Z+ ~                        @.transpOrder := void;- a4 s; t  m+ S# v
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
: r/ J$ m: S4 z+ _( B. N                                @,root.eventcontroller.simTime);
/ ]/ z# O9 D$ D# g9 V4 P4 c                        @.HasOrder := false;
# I" {1 L$ [5 I1 Z                        @.DrivingHome := true;
) Z/ q$ q. Q8 c                        rgManager.tryToStartTransOrder;
$ I8 ]5 i* ?- l6 Z2 ^                        if @.Destination = void  J. ]9 N) w+ k6 j
                        then -- no transport order for vehicle @
9 x/ Z7 D+ ?. g. @( H* t; }' |% X                                @.Destination :=- L- x" `- T/ O2 v
                                rgManager.nearestFreeStation(@,track.~);
& F7 r) r4 K3 b* B                                newDirection(@);   5 U( M- q/ V* B, {' @' h
                                if @.Destination /= void then. g  M. s2 l$ k, {
                                        @.Destination.NumReservation :=
+ g5 q# w" d$ L                                        @.Destination.NumReservation + 1;! c9 u8 ^- \& q) q/ v  k8 f
                                end;
3 v2 ]' K" t+ o. D1 N' M: i                                @.CurrIcon := "drivingHome";. v$ R/ Q; s! ]. l
                                @.DrivingHome := true;
% ]4 y: x$ K& g" a+ _9 S                        end;. n. ~# G- g3 }! a4 j% I& `, Q( l. K
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station/ W& A5 v6 ?  P( ?7 j- m
                        part := @.transpOrder;
, d: y  i! A; o                        part.move(@);-- load part1 e: B# [# y. z; q$ G7 V( c' C
                        @.CurrIcon := "load";
: Y2 H7 f! }4 x! ?4 v* v/ v% j                        GlobalDistObj := part.globDestination;" B2 y$ g! D3 b4 Q3 c+ v' Z: T
                        assignLObj := rgmanager.rgAssignL;, l( L& ~! {( ?
                        row := assignLObj.getRowNo(GlobalDistObj);
- ?6 x& {+ R* i3 x1 u* }2 U  {* D                        if Row = -1 then -- since 70" _6 q! O8 }9 [
                                if lan=1 then
. g# g# H1 k1 a8 W7 ], Z                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
2 C* j$ R4 ^: E# D                                                to_str("in der Andockstation: \"",?.~.name,"\""));
5 n3 v( @8 x0 h# s0 N; A% F+ R) _                                else0 S. I' S- M5 \' p& T: m
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
+ t. u4 |: g; e! o4 C# A                                                to_str("in docking station: \"",?.~.name,"\""));                                9 g& @9 y# ^, z/ I
                                end;
- W' t0 p- s4 w% e' Y- V4 t% C                        else
, R' L+ _8 [# N$ ^  c% g/ O+ N                                @.Destination := assignLObj[1,row];
! ^+ \5 T  _6 _# d4 ^/ s                        end;                       
  h+ `; d) k7 A5 d                        newDirection(@);! T+ I& u$ A2 j
                        @.HasOrder := true;
8 x- j, k1 l) S! M& M) k                end;2 T6 |% {" c* C& [3 o- A: h, q
        end;1 D' b6 L; f2 D/ E: \; n
end;        -- of the method
  v, D2 V& M  q
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 $ x  L2 ^$ \, j8 K

9 L3 D$ M* r% u) y" n% ~' K: ~这是AGV_putin中arrive的method。$ s* `: W! @+ B8 e; c

# I$ o' z0 d0 H  F+ C当到达物料速度越高时,这个报警更多,
: z! M8 h2 s; v' m. w: ]0 ]可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
  y$ [; y5 K9 Q' }% T: u程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?  p! i1 u( y2 d4 ^3 z2 {) v# O" d( s

# u) j8 s' m8 A$ I/ E另外一个小建议,就是move,所有的move都可以这样
: B" S! E8 N+ q, y$ `8 S0 M& bif not move() then debug end
  D( U! t/ T  L% Z* a4 B. L  `这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
; x+ {' O3 r! B7 j% \* O0 nplant simulation中的free libraries有AGV模板,' j& F5 ~) Y" d; |" r5 D& r
里面也有案例。
/ X- j, V/ l. J5 k8 _9 k% W  R我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
: P0 P! t- E6 E5 g
  t$ }+ X* _, X  q$ P; V我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 7 N# S: b9 o0 l2 O% ~' c! o& p' a

# b" v$ s. w! @' X3 O那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ; ^8 A6 G5 p% e- a2 W$ g  L
这是AGV_putin中arrive的method。% `' s4 g; R! ?' e4 A2 c  i
1 x& @4 t1 R8 k2 R) [; b2 |" Y
当到达物料速度越高时,这个报警更多,

1 l+ Y; L; h- j( ]+ b另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-7 15:02 , Processed in 0.020792 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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