设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8696|回复: 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'0 G3 L5 d$ s" {; q  \/ B
*/! ^- `$ U' }0 Y3 z3 W
is
2 M2 n4 m3 k* C8 j7 J% n2 w7 n        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
+ R" ~1 X$ p$ \+ odo
' R# `. k. k8 h# D- K- d        Lan := rootfolder.Internal.Tools.AOLlanguage;
  _; A* R! p$ h0 k; d, e        if current = @.Destination -- else return
, r, R( s+ [2 k4 G4 Z- d        then) p/ W& F' n. M+ h* t/ L
                @.Destination := void;! T/ N; A; j3 q; V; p
                if @.occupied then4 ]$ C. k% c/ Y
                        part := @.cont;
9 j  L6 v' a  c0 z" P                        @.transpOrder := void;1 n  G' r7 [' k: m) p
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,( j5 B2 m: m! E  c8 g. J
                                @,root.eventcontroller.simTime);
+ K& B9 [/ o' @6 O                        @.HasOrder := false;
' v" i  n  m! G( u4 @                        @.DrivingHome := true;
' I+ U& ^0 F2 |8 Q                        rgManager.tryToStartTransOrder;- F6 T) R, B: b: J& Q. d
                        if @.Destination = void/ p# \! U9 |( W3 R
                        then -- no transport order for vehicle @
2 i2 `3 W9 A: J! x1 Z: {$ Q$ z) Q3 h                                @.Destination :=
9 f$ S9 i* ?- G8 n3 K: j                                rgManager.nearestFreeStation(@,track.~);' r& T! |, c/ w, ^
                                newDirection(@);   
( ~) t3 F: k" I2 V7 Y1 \6 V7 i* ]                                if @.Destination /= void then
) Z( S2 p& K; V4 R                                        @.Destination.NumReservation :=
% T* H& Y& [  f' g* v$ Z% J+ f                                        @.Destination.NumReservation + 1;; E# l$ z0 v1 O* c4 [. n# D
                                end;
, M$ y, s; o0 Q                                @.CurrIcon := "drivingHome";
& z  N0 O7 w' b$ D                                @.DrivingHome := true;6 |2 i1 _# i; T% l* J/ n: T
                        end;* s- c4 a; E$ @6 _' b. a' v1 e
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station4 i: S3 H1 S8 t& T- Q$ \0 W5 U; T6 b
                        part := @.transpOrder;
' W# B4 u% S/ {8 F) Q                        part.move(@);-- load part* c0 A3 D" @) J) D/ h# h; e: O* o# N
                        @.CurrIcon := "load";/ X; [( [! y2 Q9 }4 o/ }& a
                        GlobalDistObj := part.globDestination;3 l) {3 _, K! ~
                        assignLObj := rgmanager.rgAssignL;, ]' r5 H3 ?3 E. ^, P. m8 E
                        row := assignLObj.getRowNo(GlobalDistObj);
7 B1 Z  Y5 X' S9 @3 ]1 H                        if Row = -1 then -- since 70  w3 I& x# {  h7 x4 {8 h
                                if lan=1 then' F, ?$ X, v0 k* P! N1 P5 P
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
: U4 W2 `& n$ n, ^4 H# ~6 X# p                                                to_str("in der Andockstation: \"",?.~.name,"\""));
) ^2 w8 r: K7 y                                else
; w: T4 f& r: _# N2 c                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
$ l" \1 g6 a0 x) e, a                                                to_str("in docking station: \"",?.~.name,"\""));                                1 w2 G& G7 d: O# |) K+ {, U) {
                                end;; t6 D9 r6 T' W" p+ r( m" |7 J
                        else( [9 U, O, _$ U+ L! Y8 z8 f! C
                                @.Destination := assignLObj[1,row];
+ _9 ^: I/ d/ [  q  E5 q                        end;                        " \6 S9 L" Q+ R. C. g- K6 f( W' E
                        newDirection(@);
) j+ b( \. u! Z5 l4 L5 f                        @.HasOrder := true;9 h  }4 ]! q8 @& {. W- k' B
                end;8 u0 J; l$ `* Y+ F  Z; B
        end;% [# s. x+ ^3 q' r" y, [5 Z
end;        -- of the method
1 J3 D! L& f3 d
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 7 |! I" A/ u* o

2 y; x. ^- J( j% O这是AGV_putin中arrive的method。
  S+ o' `6 ^9 M- A. A: e7 C7 T7 |% n9 M" r( r0 k7 x2 [
当到达物料速度越高时,这个报警更多,
1 e" x% I& B6 `+ l8 c可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
6 o, ^! `2 b3 [4 o6 A3 ]9 L程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?: \  c6 B' _* H) L
6 z! P% z2 h" N$ D( n
另外一个小建议,就是move,所有的move都可以这样4 Q8 @& I0 \: C+ Z! W
if not move() then debug end7 N) l+ |% _: n: _
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
7 H% H, y- Y6 H* y) M) a* ]) pplant simulation中的free libraries有AGV模板,
) y* W% b% s/ A# ^9 u3 s里面也有案例。
, `& _6 Y1 J/ n$ p2 ^我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。9 N; s% z/ L9 z" R
$ ]. S( g3 X# ?# f: O9 x
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 . L  g: r5 W' _  c) U- J
8 ~6 Z! s' k) k6 S  z0 q6 A3 D2 r
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
" Y" E2 S. T: S) z5 w# `这是AGV_putin中arrive的method。: v/ t: S# [# B" C" W* `  `
! O$ N2 z7 P% n7 C/ D  A0 K7 d& Q
当到达物料速度越高时,这个报警更多,
% ^- x( S2 A4 L
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-20 23:03 , Processed in 0.016234 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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