设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7920|回复: 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 L* }. {7 f7 b# U" ?*/9 }& l/ g7 Y5 Q) m& ~( T% S
is
6 o3 _2 `! t& K' n/ ?        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
  {2 B/ `* d6 Xdo# Y6 ]1 C3 L! E7 B
        Lan := rootfolder.Internal.Tools.AOLlanguage;9 L4 d0 U" D$ S3 d, a3 h
        if current = @.Destination -- else return
( N' q( C8 ^  r, R6 V+ F: V) M' l        then# t% K" I; y8 h/ c; g4 k
                @.Destination := void;
4 g) K4 U" U4 x! S0 |' x                if @.occupied then
5 g+ F  ^& b1 Z- B1 G                        part := @.cont;
* l& G9 e( i: X9 P8 B; f- s0 S0 H% i                        @.transpOrder := void;" E. [( M  \. S4 |. D& d* @
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,. T5 t: q8 Y* {& p% M
                                @,root.eventcontroller.simTime);/ |' h+ d; u0 P3 Z! A9 q0 E1 d
                        @.HasOrder := false;! ]% {4 @6 N2 |& a: Z* T
                        @.DrivingHome := true;- L0 j+ Y0 o- @( n! ?! Q8 A: {
                        rgManager.tryToStartTransOrder;
' S! e' N  A. D" C: P2 q% C5 m( q                        if @.Destination = void  @% _) X: e( p7 y1 C# l* h% P% k
                        then -- no transport order for vehicle @
( J) @* V7 m5 j                                @.Destination :=5 E0 ?- h% |8 J! {, c! m
                                rgManager.nearestFreeStation(@,track.~);
1 U  l: d. ^( `7 B                                newDirection(@);   
/ N+ p; X7 ?( B+ G$ }                                if @.Destination /= void then5 C' @- Z5 R9 h; K) e- c( _
                                        @.Destination.NumReservation :=
. z' ?! d" A8 W( R9 P- {                                        @.Destination.NumReservation + 1;- E3 i4 Y3 J% O  F4 @. V1 E
                                end;
7 F' p; i4 I7 M& @$ O! k6 s2 s, L                                @.CurrIcon := "drivingHome";- `2 y, i- |# e0 l0 f
                                @.DrivingHome := true;
; ]2 u0 X# q* k                        end;
) y0 _2 S! h! d% H                else -- the vehicle @ is empty, both vehicle and part are in the same dock station% `2 v% C6 q: I. H1 }+ s) n# X
                        part := @.transpOrder;  @) S  h5 a7 z
                        part.move(@);-- load part4 O! n9 @. S. p  k: ]6 W* g
                        @.CurrIcon := "load";
1 Z6 t- Q$ U7 j: h0 E& p0 y& `                        GlobalDistObj := part.globDestination;( U9 k& X. ~, i& r& X; m" m0 r8 {6 Y/ v
                        assignLObj := rgmanager.rgAssignL;
+ D* W3 D' N0 S1 y  P) X                        row := assignLObj.getRowNo(GlobalDistObj);
! f$ d+ X/ e$ E7 J' S                        if Row = -1 then -- since 70+ Q5 ^  _* W- q0 Z; h5 d
                                if lan=1 then
  T4 l$ i. M# e1 ~) U+ |' u+ m2 ]                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
  r& N6 c1 O8 p4 A6 n                                                to_str("in der Andockstation: \"",?.~.name,"\""));
/ c- U0 `* [) u. A4 E                                else
  j  r$ N8 h2 l# S& o3 j, [4 O                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),. o9 p: X: i& K5 x
                                                to_str("in docking station: \"",?.~.name,"\""));                                * @. j; _5 B3 F1 b: g; J" {0 D
                                end;
) ~) h' d9 x7 y1 c3 {/ p( r4 \                        else
8 Z) X. _+ ~1 P6 e7 g( p+ o0 B" p                                @.Destination := assignLObj[1,row];
' B1 L3 j+ R2 H" I3 p' [. ]                        end;                        6 j! n8 T9 Q& S6 R' E/ I
                        newDirection(@);2 u  B9 Z7 ]2 T1 x+ {, v3 \
                        @.HasOrder := true;
4 J. n- Q$ B, t- `7 q8 }5 X* I                end;
) N$ f' H$ U% F        end;  H+ {# B6 E# }6 u
end;        -- of the method
6 e# f/ P, S# i9 a& o) w5 i
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
/ v: T6 N6 o6 h" ]4 E# W6 D% ~5 R0 X+ X: T( k
这是AGV_putin中arrive的method。3 k. P: T/ C# R0 Q& ?

% f( z; w! z- i3 J6 y当到达物料速度越高时,这个报警更多,6 w- }5 M/ a' K4 [3 s
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
; }* ^$ u/ c6 _: G程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?  [5 ^& L* I0 C3 L) x- m
. F# m8 f4 [; v, `# Q% m
另外一个小建议,就是move,所有的move都可以这样
! E% x0 i5 I3 P0 D5 vif not move() then debug end0 y. k( r" u! Q8 P: d
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
4 _& F. ^, l, T- r  i& Iplant simulation中的free libraries有AGV模板,+ T* [+ n1 c4 ^/ |( j
里面也有案例。
- _& R3 L8 I# j5 @: i( I我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
% T$ X: a. D- v; W! p7 E  N
1 R$ _3 V! z+ I* ~# D/ [我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
8 g0 j/ L& G3 f# O
9 x6 R5 k! W- [- ^那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
' P1 E( d% Q5 u. r1 i这是AGV_putin中arrive的method。
- S" \" ~/ {8 k9 \7 R& E* j, K" v9 N  N6 \
当到达物料速度越高时,这个报警更多,
- ^& W9 _6 I$ w% \; m# `9 b$ i
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-5 18:38 , Processed in 0.018395 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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