设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8493|回复: 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 o1 R; ~6 G( J( n) H; Z*/  A; c; I% q( R2 b7 ~6 b+ o
is+ |3 ]0 e; S0 U. |7 O% b6 L
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
0 Q' Z: e* C) b& N. fdo( p, @! S. e3 L0 ?) }( t" A
        Lan := rootfolder.Internal.Tools.AOLlanguage;  c/ V! I2 T, `( @9 e; w
        if current = @.Destination -- else return
+ x) _/ k5 M- U! e9 O1 M4 l2 u        then
, c( i8 E. K6 c0 a: T% y                @.Destination := void;
# s  c' ~0 q+ G0 q' m                if @.occupied then
) e/ r% f  z3 H. x                        part := @.cont;
4 H9 M2 {4 e# y) }                        @.transpOrder := void;
, J+ M1 h- U: C. b3 D3 K                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,- u  h; k; w' ?/ ?1 u
                                @,root.eventcontroller.simTime);! H9 h* g+ k$ e) a
                        @.HasOrder := false;. W+ _( t+ L4 }! S/ x
                        @.DrivingHome := true;
/ S/ V$ T! s# F8 [7 d! L  @; H                        rgManager.tryToStartTransOrder;2 K. K- _4 X" h5 u
                        if @.Destination = void
* l. v$ j3 t- p" Z1 \                        then -- no transport order for vehicle @
& ]2 m! z! Z& e# v                                @.Destination :=
5 p' C$ ~2 K0 G2 z                                rgManager.nearestFreeStation(@,track.~);7 `& p$ N( ~# D9 w
                                newDirection(@);   
# m! W, ~0 S$ y                                if @.Destination /= void then! }, L0 V4 Q% P: L& [3 j
                                        @.Destination.NumReservation :=; P+ ^% H' W7 D
                                        @.Destination.NumReservation + 1;
5 ]; H) S$ R1 K6 t% v5 K4 \                                end;5 l# o2 d0 w: q% X& [8 V
                                @.CurrIcon := "drivingHome";0 Y2 H* V) s, F
                                @.DrivingHome := true;0 N5 R+ N/ W: W" _  a) a# @) z
                        end;
. _+ e" o  I" p% C                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
9 S$ C! n- u" Z                        part := @.transpOrder;" c7 a0 d4 Q, S7 ~6 V
                        part.move(@);-- load part
) j; s0 f% Y, ?9 F                        @.CurrIcon := "load";
4 ?: f' i0 g/ W5 c+ l9 R$ z                        GlobalDistObj := part.globDestination;
; s/ @" e8 R- H3 b2 X+ D: D                        assignLObj := rgmanager.rgAssignL;
/ D  q; |% l& I; W' s                        row := assignLObj.getRowNo(GlobalDistObj);( s3 A7 w; r% \# [  t
                        if Row = -1 then -- since 70
6 d8 c4 p8 X& N/ y' U5 v                                if lan=1 then' R% p( f8 [. y7 Y' @5 ?: `1 B
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\"")," |6 @) ~5 c: \
                                                to_str("in der Andockstation: \"",?.~.name,"\""));  w% J7 I1 R; h; y% N! Q
                                else) i4 V+ q6 V# O" w% k
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
, X0 _8 c# s2 ?0 x4 {. b; u; B                                                to_str("in docking station: \"",?.~.name,"\""));                               
. O, U+ `% H1 L) x5 B$ v9 p                                end;
* l! k3 l  u; [' j6 n8 l                        else( O3 r* m6 O1 ^" z
                                @.Destination := assignLObj[1,row];
- X" c6 b! |& h. J* J4 L8 m0 G6 r                        end;                       
+ W! S) h/ S; c# r4 |7 s                        newDirection(@);0 j* x# T3 N& a0 ?% S7 l+ d& u4 T
                        @.HasOrder := true;+ T% F5 H3 `% T7 Q5 y; ]
                end;5 \0 {0 w7 h8 F9 Y
        end;
9 N0 O% K$ {- H& g! K- H$ cend;        -- of the method$ C. W! E4 T; _) g) p! ?
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
' p: A  Q3 B/ \6 v' a* ^. t4 [7 ]. f. X0 O0 n; G  A; x; `
这是AGV_putin中arrive的method。2 b8 |6 g) H* _! ?
8 X% x1 H! O! g, f: n7 b
当到达物料速度越高时,这个报警更多,+ l, H3 N! l' h+ s' ~
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。% o; Z, L* Y" \
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
0 H/ n9 m: d. ]. _. Q- M- J! m: ?$ v+ s) }2 r# W
另外一个小建议,就是move,所有的move都可以这样
  n$ }2 z3 C$ L5 t9 m5 |# T- v3 Lif not move() then debug end! q2 `9 p5 g4 h4 M$ c% Q& n  r
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
/ y4 g% Z  ?' ^- I4 x8 wplant simulation中的free libraries有AGV模板,1 N  Z; ~) S9 h; d1 q: d
里面也有案例。, _! L6 P8 G# u! {# D
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
; T. X5 d6 H3 i% i$ h. r* L$ p
+ Z6 C2 s* g  a0 W4 }我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 + [: }/ k, m4 n, D7 K

2 n  a3 i0 F- n" T! g2 |那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 : M. O% H' j2 v6 d" D
这是AGV_putin中arrive的method。
! F" x3 X1 ~! _& c& z
  b' }8 d0 j% O( T& P0 @当到达物料速度越高时,这个报警更多,

- M+ ?3 ^* W  `" Z- S另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-7 09:41 , Processed in 0.014465 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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