设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5501|回复: 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'
$ L) S# N6 d, G*/
' x7 ^  v  E1 q& X! Mis
% W& i8 X+ I: n& q6 m" x. Z: R- g: }        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
# Z( X9 z" z5 ]+ ^/ ]7 v/ edo
: n6 |! ]9 A$ C5 T! u; U: F        Lan := rootfolder.Internal.Tools.AOLlanguage;' }% |+ a& Y! D, e: n8 L
        if current = @.Destination -- else return# I3 |  n( b5 i  F% B9 a
        then
# a5 Q& x2 m0 s8 A! B" ]) t' D                @.Destination := void;4 b) z/ H0 @. k& A0 r6 `/ u3 q, F
                if @.occupied then
% e* C0 Z% ?" V  N, U/ x$ a                        part := @.cont;
0 U6 @4 H/ B9 d1 k( z. Q1 q& @                        @.transpOrder := void;
! O5 v8 s" s: s. Z+ |0 a                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,; \5 h( [) b# {; q
                                @,root.eventcontroller.simTime);  P* t& B) B. G# t  T7 I
                        @.HasOrder := false;5 s4 z, W: I$ [; w
                        @.DrivingHome := true;
- c5 {' x1 c1 |! t4 v9 H  b, Y                        rgManager.tryToStartTransOrder;
) Z! R% O& ]6 e/ U& p4 L* q. l                        if @.Destination = void
3 t  V5 [9 Q1 b! s$ I2 Q                        then -- no transport order for vehicle @0 `- k( {. p  _$ c7 H
                                @.Destination :=
" a6 ~1 y% H0 \4 {. S7 Q" N, t                                rgManager.nearestFreeStation(@,track.~);
) {* q2 v/ E0 i' [                                newDirection(@);   # Q  _7 ?3 d1 a/ A
                                if @.Destination /= void then
4 A: [( k, T6 ?: q5 N                                        @.Destination.NumReservation :=5 ^1 B( X% _! x# r$ ]
                                        @.Destination.NumReservation + 1;3 d9 ?& I$ A6 H* W$ s2 U
                                end;5 N$ W' \3 T, y$ j
                                @.CurrIcon := "drivingHome";
# E% @$ }" ?8 Q; ^                                @.DrivingHome := true;
' l% t% C3 D% q  K$ L                        end;  o, R, \) L- B+ R
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
- ]5 |0 Q- c6 S8 n/ P4 W                        part := @.transpOrder;
- S4 k/ Y2 c) E  y6 E& S" T' c                        part.move(@);-- load part4 D7 W3 R2 Q  W2 ]1 G  v
                        @.CurrIcon := "load";
& m2 k( ^  z: U& R+ m                        GlobalDistObj := part.globDestination;' t# V( i/ ~7 @8 S+ ?
                        assignLObj := rgmanager.rgAssignL;
6 e8 G# L5 Q1 T; a( t- F/ K+ _/ k) |' j                        row := assignLObj.getRowNo(GlobalDistObj);3 y% n+ l+ A' `$ b4 `* y
                        if Row = -1 then -- since 70
' Z  i% T1 i9 g! z) r6 |* }                                if lan=1 then
6 J5 U+ R7 T9 N6 X: K/ ]0 R                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
  c0 Y; G: i$ P9 `& W" A( P                                                to_str("in der Andockstation: \"",?.~.name,"\""));' D2 J4 P4 [$ G) L& ~/ h. m
                                else+ l3 S; a4 D: p+ z9 `+ L& q
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),/ j* {- R/ c$ u4 E6 \
                                                to_str("in docking station: \"",?.~.name,"\""));                               
: E$ }( j% Y1 @$ Z, X, V                                end;
" n! r. i+ G7 u% m9 @6 Q/ q8 I                        else, A9 D' _5 Y( j- ]& K  l: [5 C5 V
                                @.Destination := assignLObj[1,row];; m7 `: m& H: ~. y
                        end;                        * ~4 z6 L$ Z3 g# j) t( V4 @) F+ M
                        newDirection(@);
6 `9 b7 S: b' z                        @.HasOrder := true;3 K! `2 X6 o- u* }0 V7 J% r
                end;
' `# t, y7 m) h5 z' {        end;
- P7 E- c% `) g' o% P. nend;        -- of the method
0 K7 L  e- U8 k: \0 L+ P1 k  W
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
& F4 ]7 T2 e1 D9 i& J$ w8 o# Z
7 T9 W5 N$ w0 u0 m8 {/ K, h  |这是AGV_putin中arrive的method。) Z6 }# Y# ^( n% g6 |
/ z$ K: `9 _* Y: u2 Y9 ]
当到达物料速度越高时,这个报警更多,
4 o. z& h$ b4 v0 e: {可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。7 o2 t, O! }6 v9 {- U, K; a
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?1 q# ?7 M: [( \
/ r9 {# k8 U2 ]3 _
另外一个小建议,就是move,所有的move都可以这样
* J7 a, ]/ E7 @9 _4 Kif not move() then debug end
+ _+ J" P, C, P& h# Z! [0 g这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
1 ]9 @, `" @/ I$ e2 jplant simulation中的free libraries有AGV模板,
6 n; b9 f8 ]% T% z+ G& O% J里面也有案例。
/ i' v+ c" H. R' J2 U我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。; S) I9 {: x( ?

+ D# ~+ C* y# M$ b' U) D0 ?我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
$ c6 U* v+ ^2 [7 w. h) p' E  g; s- d9 P
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ( p  ?1 j* H9 D- Z! G
这是AGV_putin中arrive的method。
% x. }! V5 D, x7 J& W; [; x+ `2 Z$ B  u. {
当到达物料速度越高时,这个报警更多,
- ^( r" G0 l9 M1 [6 N4 D1 C
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-28 11:52 , Processed in 0.024060 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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