设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8199|回复: 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'3 {3 p$ g) l* I4 p4 }  r
*/1 R' W' l* C0 ?9 d* M8 S  K
is
, j+ A) j# p4 h% k+ @        part, GlobalDistObj, assignLObj:object;row,Lan:integer;2 S  P: h6 \/ I* B9 n, n' ^
do
& s4 F$ {9 n) j6 x5 i0 F9 e        Lan := rootfolder.Internal.Tools.AOLlanguage;. L' E( _' B' L! f2 p6 ]- ]/ }6 p3 g  L
        if current = @.Destination -- else return8 o0 y) o# g- w- q; F; l
        then
+ J( u! l5 @8 z/ G                @.Destination := void;
) {% p! S" }/ c* K. x% u                if @.occupied then" w5 O0 M7 D2 z# U# N
                        part := @.cont;& P/ s# s; P+ k/ A6 _
                        @.transpOrder := void;
% A  [" y; L( X3 P$ ]                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
7 V7 o) L& t; Z9 R6 |                                @,root.eventcontroller.simTime);; y2 p! Z1 a! B
                        @.HasOrder := false;
2 e# Y5 w) v# R                        @.DrivingHome := true;
" A- Y4 G' [- e; Y. E( }                        rgManager.tryToStartTransOrder;
% ?! U: G. C5 }. g, ^7 f/ }                        if @.Destination = void
8 _% A, o$ n; `$ c  y                        then -- no transport order for vehicle @' i# O1 m% K7 v) w% w% U
                                @.Destination :=
) Z3 t  m7 P$ ^+ `1 \5 B                                rgManager.nearestFreeStation(@,track.~);+ P& N: P: ?2 [1 o- R% C4 f: ?
                                newDirection(@);   
  @$ D4 x) w( X; s1 ^3 G3 x                                if @.Destination /= void then( b1 J* Y# S+ U( S" K
                                        @.Destination.NumReservation :=
4 S, u" {2 L7 `5 }* o: ^                                        @.Destination.NumReservation + 1;, w$ z4 Y7 u' T$ h% J
                                end;
3 s# A9 y# l4 p                                @.CurrIcon := "drivingHome";( a3 d/ [$ O* B. K1 Z! x
                                @.DrivingHome := true;2 p: F' i8 d3 l. T
                        end;
# ~5 |& B# o  ~5 H# N/ R; f3 J                else -- the vehicle @ is empty, both vehicle and part are in the same dock station. W+ r% f. v; Z# y4 k
                        part := @.transpOrder;
  _& \2 i+ `: s% J) G  [* ^                        part.move(@);-- load part
# z  u+ y% O( ?; Y" H# N. B                        @.CurrIcon := "load";( l" x' K9 F; b$ g5 z  J
                        GlobalDistObj := part.globDestination;
4 }- v/ o8 s0 y                        assignLObj := rgmanager.rgAssignL;
* F, V" f) M9 G4 X* T8 c                        row := assignLObj.getRowNo(GlobalDistObj);
  N  i0 |6 n) ^8 G6 B/ K                        if Row = -1 then -- since 70
- z2 N3 e: _- p' Q5 w; v5 }                                if lan=1 then
. o+ k2 X& @8 ^1 @4 [* C                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\"")," n. r( V# _9 y( f& Q1 r; ^
                                                to_str("in der Andockstation: \"",?.~.name,"\""));! a! o7 I6 Q4 E& }& P- n
                                else
0 q/ E  m& q/ b! b  P) a0 e# }6 n                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),9 k1 [' U+ Y- d. G* }: v2 \. N. ?
                                                to_str("in docking station: \"",?.~.name,"\""));                                ) _8 n; M& e  ]- z, C
                                end;
8 k- B7 d# E6 f! S4 ]7 U$ {. G7 Y, K                        else5 q+ P/ e$ u6 n% [; h6 y+ n1 _
                                @.Destination := assignLObj[1,row];4 d) b# Q$ `3 e
                        end;                        : B$ Z; |1 ]  a; U. h' r( o& y) f
                        newDirection(@);
( U! U1 b1 m$ x, v                        @.HasOrder := true;
8 e) `; N8 t: g$ z0 n                end;! q; K  g$ ?( b; A8 J8 }
        end;
8 ~2 R* K% J. q! P& ]. V9 Fend;        -- of the method
: L. E8 R6 y( _5 Q- Z7 H
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
: i2 H0 H) R! \, T+ c, s9 E8 A4 z. E; r* F2 W
这是AGV_putin中arrive的method。
" r3 G  g7 K: |
7 y1 M, A- N2 x- w  v当到达物料速度越高时,这个报警更多,+ p& l( A2 [$ B: y
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。( B2 f4 A6 u! x# d# P
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?9 j( J2 e  x( h  r- }4 S3 o

4 @1 N+ v. t' P: H# E4 K: T% Q另外一个小建议,就是move,所有的move都可以这样
! h; D. |0 O( a# N0 p2 y0 {. ~8 o$ {if not move() then debug end( w! Z. d# K3 `  D% R3 m8 L
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。4 G: c/ U- i+ t/ M; U1 |. n4 D
plant simulation中的free libraries有AGV模板,+ V# Q# a) D- V! J6 }
里面也有案例。
/ ^5 M, g1 I2 y, E! K. X5 J+ E6 ~' D& E我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
8 g& l/ S8 Y! _* q( J- v* f4 L# ^
0 P) p* K  d8 F2 n  @我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
! k. [2 F& `' q0 o. _% d9 W" w* K& U2 d; w- T  }0 k
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
( [8 a$ G7 @) Q1 R' v9 w7 Y这是AGV_putin中arrive的method。4 |' n: e& b% s+ ^# P+ }2 M( l
- T2 r9 z$ O/ j( M- x8 Y
当到达物料速度越高时,这个报警更多,

' J+ n- `; }: p8 s2 Q另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-20 10:24 , Processed in 0.021460 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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