设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6014|回复: 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'. l2 k1 o# L1 H0 Y  E6 U
*/8 i0 |/ T/ D4 R' z: O- t5 @+ ?* |
is' K1 t; y" T$ N7 F2 q: t
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;/ V! `& U+ V6 s" l" i/ L) a3 A
do9 I4 Y; A9 c& ~+ l- M
        Lan := rootfolder.Internal.Tools.AOLlanguage;
! C8 m) r) g& w5 H+ r5 P) M        if current = @.Destination -- else return
: j0 M: u8 N6 r0 p& t7 C        then
& ~8 E1 \4 I& }' p                @.Destination := void;
9 _$ ?) }& E! W9 {) c7 K                if @.occupied then' G) W- V- E5 V
                        part := @.cont;
7 f3 z  L3 c9 r                        @.transpOrder := void;: G/ {1 b2 Y6 Q! m
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
- l$ `* y* n* g. y9 |                                @,root.eventcontroller.simTime);
8 y1 D+ Q  U; H5 O& S) M, U( u                        @.HasOrder := false;
& M, p0 n8 u3 s8 s9 X* m                        @.DrivingHome := true;
8 @5 C; ~$ O- r  |5 _8 z                        rgManager.tryToStartTransOrder;0 @, ~1 U0 x1 {/ m! v) n
                        if @.Destination = void: C9 x" q1 m% K/ n
                        then -- no transport order for vehicle @
! R$ u# a5 v% K4 e5 e* F                                @.Destination :=/ c# v. u( q. E: T; j: h
                                rgManager.nearestFreeStation(@,track.~);" H7 N' [( \$ T; G. F
                                newDirection(@);   8 G+ f/ I# V) p7 J
                                if @.Destination /= void then  w  A+ X: D2 _% |, ?$ X6 e8 N9 i
                                        @.Destination.NumReservation :=3 @" c" p5 O2 Q2 i3 Z5 e: A; z: F) ]
                                        @.Destination.NumReservation + 1;. [. i- O5 J, J2 _
                                end;  q* s. q: R7 W5 h" p: U
                                @.CurrIcon := "drivingHome";/ U% T* ]& u1 B" X# p  |
                                @.DrivingHome := true;/ L" \& C& r  m6 S4 B% Y2 e+ D
                        end;1 h& K: a% n) J3 O
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station. d2 f* q  _' B0 ]7 O; ^. |; n
                        part := @.transpOrder;7 f8 r0 p: z: G6 z, {; L" \
                        part.move(@);-- load part
& [$ w- ^4 v5 ?; `                        @.CurrIcon := "load";
; W# l8 o" x! ]$ u- \" A# \8 {                        GlobalDistObj := part.globDestination;: c- X% C* r) D8 Y' ^$ V
                        assignLObj := rgmanager.rgAssignL;  y6 O; h+ k/ n) r+ J0 E
                        row := assignLObj.getRowNo(GlobalDistObj);
& P' q& k6 w" l' t2 G+ f/ B" u3 j                        if Row = -1 then -- since 70
- Y. u3 e# X, p! D6 i$ m                                if lan=1 then  b5 J# ?) p7 o# x" b
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
: H: E  S/ |* u$ n' u& a                                                to_str("in der Andockstation: \"",?.~.name,"\""));
! w) k! p* Q7 j) k4 B                                else  W1 l+ ]2 @- l/ q# C# Q5 y
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
6 \, u. {% v$ y$ |% [/ }                                                to_str("in docking station: \"",?.~.name,"\""));                                6 k' E: y. |' h* o2 J, }$ O
                                end;* b4 I. l* U" V" s6 J9 @/ Q
                        else
' k' v: ?  i" V2 T1 n                                @.Destination := assignLObj[1,row];, o9 f0 |/ Z! m0 |" G
                        end;                        + d3 u3 `0 |8 q( E% b" U
                        newDirection(@);
/ E3 O/ k  i# L8 Z8 }* Y                        @.HasOrder := true;
! W# [) k% a8 `) ^" s* ~# m                end;" C+ C! L0 x# u: p$ H0 n( O
        end;
) m8 E- l9 Z0 {. J4 T$ f: G  Aend;        -- of the method8 M6 h  R% J7 D$ U
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 # `! c4 [( O+ u  n5 H" J

& h  o0 X" v2 r3 d; F! \- ?这是AGV_putin中arrive的method。. _: w- \" v4 d6 q" e
% V  x- @8 ]0 J
当到达物料速度越高时,这个报警更多,
6 P# S. D0 G, J/ W$ l5 J6 I1 V可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
$ }3 M3 g, p( l4 v: B7 ^8 T' a2 n# q程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
5 H. ?& f/ e  K) \  o9 ~6 z3 K  t2 f& I3 c  L  N" [, N+ A. g3 E
另外一个小建议,就是move,所有的move都可以这样
+ _1 ?# n/ O# L! v# k8 S9 z/ Mif not move() then debug end
6 {1 z. F) }* ]& \& ?. F2 a8 N# O这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
, E& d6 W3 ~% T$ N. B. splant simulation中的free libraries有AGV模板,
9 f& T. b; N" p6 w- g里面也有案例。
; N! ^6 N+ A2 B; a我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
6 ?) Q+ z$ |) \, Q( q2 ?& l* b
- l0 x( g% `- b7 K3 Y7 s我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
, p& T8 I. Y3 f' ~$ b, y0 ~  E( E' O, Y
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 * P# }: o# S6 ]% t$ V; Q6 G
这是AGV_putin中arrive的method。
  z1 v9 C( k5 j! a4 ?: m9 q2 p) ?6 W1 \6 K' J/ r
当到达物料速度越高时,这个报警更多,

$ J1 D: ]1 o5 }5 M+ F另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-12 22:10 , Processed in 0.019370 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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