设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9340|回复: 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'$ d  ?# y* B' G* E! M1 d
*/  v2 i0 _7 Q# |" R
is
2 h/ J4 o6 h$ t        part, GlobalDistObj, assignLObj:object;row,Lan:integer;8 y, I* P' b: `! P6 a4 r) q/ R* Z
do+ |6 j: _- K. ^2 _
        Lan := rootfolder.Internal.Tools.AOLlanguage;. x- n; x/ ]) Y7 n2 h0 V5 A4 a
        if current = @.Destination -- else return
7 v& t, h( p9 H  a/ ?        then
7 f' G# R  a7 H4 e                @.Destination := void;
: `4 T% v- z" D2 i8 _$ @                if @.occupied then
9 l$ `5 b: B' X, L, \. h                        part := @.cont;4 a2 P7 j' L# @# E% D6 z
                        @.transpOrder := void;  _2 K; C0 U  t! K. J6 y
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
* g7 s1 M( `4 J, |  U                                @,root.eventcontroller.simTime);% [" E; t7 e+ X3 f& o# R
                        @.HasOrder := false;* |. l0 Y( ]+ Q) r- f* ~
                        @.DrivingHome := true;
& \8 }! E8 F+ x                        rgManager.tryToStartTransOrder;% X) u& g5 P/ X% m+ o
                        if @.Destination = void+ S- S: m- t5 ?8 |
                        then -- no transport order for vehicle @$ O% |3 r! S) ~0 g
                                @.Destination :=
% L, f: U  h6 r4 n$ l( g$ ^1 N5 k5 E                                rgManager.nearestFreeStation(@,track.~);8 o" f9 f& X) S; j/ N
                                newDirection(@);   3 N$ B- j: V2 y" s
                                if @.Destination /= void then0 U8 s/ q. l1 C. u3 t8 R
                                        @.Destination.NumReservation :=
* J! C# @, G- R* D" G# ?6 m                                        @.Destination.NumReservation + 1;
  a; h1 s0 I" V# {6 M% j& K                                end;
1 I% H6 l" m8 [, V/ _9 ~8 H" j9 q6 w                                @.CurrIcon := "drivingHome";; J* A% q& P0 o  Q0 j3 ]0 A
                                @.DrivingHome := true;
5 r) q" |, X+ c2 Z" E                        end;
% V9 x7 G+ y! m* L* D# I1 R                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
9 @, g, q0 l2 e# j3 N                        part := @.transpOrder;
. `4 f( c" x2 _/ e$ T                        part.move(@);-- load part
; D. ^* g7 C& A" l                        @.CurrIcon := "load";7 {9 \3 D4 p/ s, u" D% }0 n. u
                        GlobalDistObj := part.globDestination;' H9 T) L( u+ k; ^& P2 Z) Y
                        assignLObj := rgmanager.rgAssignL;4 B0 a( ^, R* g$ C2 i
                        row := assignLObj.getRowNo(GlobalDistObj);' g, u& R) m4 s: X) I9 \9 j
                        if Row = -1 then -- since 704 E; E8 `( m( O! s2 T
                                if lan=1 then$ ~& }! N( V2 a' G8 `9 H: ^
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
8 s3 ]& V; r2 e! w                                                to_str("in der Andockstation: \"",?.~.name,"\""));
) [/ J7 F. a9 h, M" x. r                                else; V9 X- m9 `9 `, I, N0 t2 z
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),( ]9 ]. T5 k, S* F+ e! {
                                                to_str("in docking station: \"",?.~.name,"\""));                                  M5 k$ N& C! b. g8 D/ @8 C
                                end;
# V: y5 l3 [9 ]; Q                        else# @" i% `. `7 z0 X0 j
                                @.Destination := assignLObj[1,row];9 g3 V9 a! Q% d4 y+ C
                        end;                        . U# U+ F) j0 e9 [1 C1 A
                        newDirection(@);
  V8 l. s1 `6 F8 J) g! G( y                        @.HasOrder := true;
, O+ t- A$ c$ H: {$ e* y1 U  V( v                end;1 ?! L4 m+ \- G6 g  r
        end;
+ y, S' d3 k% p% ~" Xend;        -- of the method
/ G9 [% x) X: o. `9 Z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
0 X' T! K( S; k1 E4 ~; D# J- n
( O. D5 k# c* E. z- }8 U- @1 {. X1 f这是AGV_putin中arrive的method。6 H+ N( k, Z5 h& w# o/ o
6 E8 {7 l; W& e. n) ~0 x9 z, _! n
当到达物料速度越高时,这个报警更多,, f6 |0 G0 ?  `3 j! c
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。5 ^# ~, v2 h7 \7 w# q+ r% ~# |: W8 B
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?7 K! C1 H5 D3 T8 [  ^) V

1 d5 t7 Z6 O3 O' M0 O  z' Z* ~另外一个小建议,就是move,所有的move都可以这样% w  S9 ]: d) W& ?+ R5 e, H- e
if not move() then debug end" u& |6 }0 q3 k" z8 H$ ?
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。  T9 R$ N6 j+ }% m9 ~7 E
plant simulation中的free libraries有AGV模板,
: h: u2 ?& L. N' y里面也有案例。7 B! Z2 c$ K* v1 W- R* q2 a' k+ z
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。. H; G; K7 @6 P. v; D
2 X. Q) T/ U, \* j# q
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 . L- ~# l+ k9 G. Z9 {4 q( O

) g( w- Z! h5 x/ y那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08   b- f% w4 P6 V
这是AGV_putin中arrive的method。
  R+ b; G4 D) ]7 g' @% |
8 T  {$ V' J0 d当到达物料速度越高时,这个报警更多,
, ~) v6 T2 t) v) f& R: \
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-26 10:18 , Processed in 0.015299 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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