设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9848|回复: 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'  {5 {( Z/ K  [. D# N
*/1 Y, O# d2 f1 u4 p( A# Q, n
is9 ^! u3 P* h, ^# [& K& ^
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;! }- E; ^2 [; `) V. x
do
4 B4 o' I# C4 N1 ~        Lan := rootfolder.Internal.Tools.AOLlanguage;! x( m) D# l( _
        if current = @.Destination -- else return: u. E- ^4 j9 y0 B
        then& k2 f- f) O3 |; T
                @.Destination := void;5 ?5 k  r1 C" T. Q+ B0 N4 S
                if @.occupied then$ j+ R: a. ]2 T/ a8 \
                        part := @.cont;  G0 {8 x3 K2 X/ L9 y' d
                        @.transpOrder := void;
) d* J* ^$ e( v5 O1 U  q% g                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
# M& f- R' ]6 ^* H/ p2 A1 l                                @,root.eventcontroller.simTime);
$ |' ^7 m3 H% {  V0 r. T                        @.HasOrder := false;
- A. B3 N& Y' R( ^, O# K                        @.DrivingHome := true;
4 J  n/ ~& w  b$ v; z                        rgManager.tryToStartTransOrder;
' F, }- n* [, K; l1 F                        if @.Destination = void, L9 z# f. b: Z
                        then -- no transport order for vehicle @+ n0 ~0 V* n% r/ w% u
                                @.Destination :=  {: S2 d0 @. p) \9 g
                                rgManager.nearestFreeStation(@,track.~);7 q( x- ]+ x0 p
                                newDirection(@);   + H9 v! f% g: M! T0 e+ w: U
                                if @.Destination /= void then+ Q; a0 n  {2 \6 S, W
                                        @.Destination.NumReservation :=7 p4 u7 a2 U. u* e1 v- B& }" |
                                        @.Destination.NumReservation + 1;# M/ q) L& j: {; W% F" q3 F8 A
                                end;
1 o+ N8 I, X/ C9 t6 g, q8 [                                @.CurrIcon := "drivingHome";
; P0 p$ f1 `& Z; t2 x9 ^                                @.DrivingHome := true;
8 H$ g* W; E/ l5 y                        end;
9 G, t5 ^/ q  v8 `1 s& o: y4 K                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
* C% \. ^" c" S' @* Z. h) C4 A                        part := @.transpOrder;' U9 e5 Z9 a1 X3 o* Z
                        part.move(@);-- load part
/ e. l4 c: o7 t  Q                        @.CurrIcon := "load";/ t5 Y+ g$ x5 O3 O+ q$ m
                        GlobalDistObj := part.globDestination;
, ~; \  R, x; D' g2 [8 c                        assignLObj := rgmanager.rgAssignL;* S( U. h- O9 H: [6 }3 q
                        row := assignLObj.getRowNo(GlobalDistObj);
  M" V8 B: Y7 F+ ~                        if Row = -1 then -- since 70
. s6 @! \: \+ S                                if lan=1 then! S  ~8 o# |3 H2 I+ ~
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),+ T% F6 v+ ^4 t
                                                to_str("in der Andockstation: \"",?.~.name,"\""));; Y; c; z$ b1 V. @& T3 I
                                else
& b$ k! V4 E0 `- K9 t                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),6 h1 e# c% F7 s
                                                to_str("in docking station: \"",?.~.name,"\""));                                : r% a; u  z: ]# ^3 J
                                end;, s7 _- a+ K# |
                        else6 V0 R, ?! q) l6 [/ Z3 r
                                @.Destination := assignLObj[1,row];
6 M+ E9 a1 S$ ^! ^                        end;                       
# d+ o6 y% z, V1 Q                        newDirection(@);
* I, [4 O0 z, z$ ^                        @.HasOrder := true;8 U  B/ [1 _. w
                end;
4 i1 H5 l9 b! N6 {        end;
/ F- C8 f( i5 x" G/ k5 D  Lend;        -- of the method: e) |# v) L. G9 A$ G
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
, I0 n% L- \" V4 B# w3 |6 v# b( C" j& O6 l  H1 c1 h0 J
这是AGV_putin中arrive的method。* d4 f8 h3 K( d7 ]/ @" ^

" Y8 N$ J9 J. `, f, |% S+ ^当到达物料速度越高时,这个报警更多,! ^2 g' Q1 D" y3 W3 q
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
% P# J6 x6 H9 c程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
- M. Y8 s8 _  P  b$ i
+ _) v5 U; e2 d另外一个小建议,就是move,所有的move都可以这样3 R7 r" f% L/ U! i# b6 E' f% Q4 t
if not move() then debug end# [3 v3 ^9 A1 s7 u
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。: c  W- e7 w% R% _: {/ A: t
plant simulation中的free libraries有AGV模板,
. ^6 D5 f0 L/ `; Z6 I  m里面也有案例。# X) D- X/ ]0 f8 J( \, X
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。$ G( K3 h+ `, r( o1 m! [

3 R0 V6 v5 ?" }- K1 e  V我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
! a! m: ~+ {* T* g0 `6 }2 B- W8 r% t/ ~# U7 T( H* Q4 M6 S( @
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 + g9 F5 a4 Q1 @4 K7 O
这是AGV_putin中arrive的method。2 J$ b) A1 [7 T1 g8 h$ v3 C

$ r' s7 G$ t1 b7 F7 J( w( U" ^当到达物料速度越高时,这个报警更多,
" ]# Z: C3 n1 F- V/ f, r* k
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-29 02:40 , Processed in 0.019152 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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