设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9641|回复: 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'- S( p2 @7 ^. ]/ }
*/9 }4 K$ ?3 g5 Q! _% p& o6 z3 \& a
is3 U& G7 [1 J: H/ S$ |
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
0 z) U% \7 R' X, V. @do
7 ^8 r/ b' j. h- |, W1 Q6 \        Lan := rootfolder.Internal.Tools.AOLlanguage;# [2 f% d  v& V' N
        if current = @.Destination -- else return- z3 C4 r* X6 |" S
        then
" W/ D* c+ o/ H                @.Destination := void;% ^- t4 Z, K6 B- a  I. T
                if @.occupied then/ V% A. k; k: k$ h7 B
                        part := @.cont;6 c' J" r$ S& d# u
                        @.transpOrder := void;
8 s$ I& X3 ^% r. R5 L) g                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
/ T3 S; Z+ ?0 ?# u. i/ \2 x                                @,root.eventcontroller.simTime);
2 t9 ^3 O  g+ M7 K+ U                        @.HasOrder := false;
; n+ L3 l8 G$ r4 u' s- D. O, ~$ i                        @.DrivingHome := true;; F5 s; w# J1 C" f' @/ w7 i; t
                        rgManager.tryToStartTransOrder;* l5 ^# A1 b' P- M6 V, T% a
                        if @.Destination = void
: K& l6 k0 e3 M/ Z( ^, y5 w                        then -- no transport order for vehicle @# V5 W+ W4 j' d) r6 v
                                @.Destination :=
8 C3 [, l" s$ f0 G) ^3 j, v# e                                rgManager.nearestFreeStation(@,track.~);
- U7 o- j! @/ j                                newDirection(@);   4 O) W0 f2 q# K- A
                                if @.Destination /= void then$ X7 j2 g( n$ e3 j# |5 k& e9 R
                                        @.Destination.NumReservation :=. j8 ^8 E6 Q" D4 o! Q: n! I
                                        @.Destination.NumReservation + 1;% O* F/ G1 g& F$ z
                                end;9 C- |7 L' Q$ T
                                @.CurrIcon := "drivingHome";
" y) t2 X. W9 o' K: x                                @.DrivingHome := true;
1 G' q  G" M" f4 o                        end;/ y: A: |; ]2 \8 e' j
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station8 d, L  n( b9 z, ?2 Y4 L
                        part := @.transpOrder;5 p) p# F0 @/ q. q/ w$ r# F
                        part.move(@);-- load part
# ?6 u! V6 P" c/ _1 m( C+ G/ k  T                        @.CurrIcon := "load";
8 ~4 Q$ L2 V4 b8 p# D" n1 ~" x9 B                        GlobalDistObj := part.globDestination;
8 S1 N, H( X: f                        assignLObj := rgmanager.rgAssignL;% F' [  i+ ~- Q! E
                        row := assignLObj.getRowNo(GlobalDistObj);0 W4 x" n2 s& {
                        if Row = -1 then -- since 70- D- b: t+ ]: q! g3 J+ U0 V3 L4 b
                                if lan=1 then5 {( w$ g& \7 \$ v# S9 ^: e8 D0 d: G
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),0 M0 A, S! ~9 U% o& u/ k( s
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
" a5 P- q- O5 c% Y! T0 I0 P' r9 I                                else
. j4 z9 i* I. F/ Q) r                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),' R* |. H/ U9 |
                                                to_str("in docking station: \"",?.~.name,"\""));                               
+ O5 W/ r+ {) ~$ o( e                                end;
" I8 v9 Q+ a5 g7 @! m3 g  E0 _                        else
# E$ A! v3 V, ~' N/ Q4 E                                @.Destination := assignLObj[1,row];
* k7 W4 P* U. i4 E' a; ~                        end;                       
; H& ~8 \) b# z# ]; m3 D" r                        newDirection(@);" t! J) J1 }5 B# E- R3 G
                        @.HasOrder := true;
) ]' X6 r" X3 n( l: f1 G                end;
9 a( s( L. p! s+ U2 v' t        end;
- u: ~9 m  N  v. v9 B7 Qend;        -- of the method6 @3 f( O/ m, y( @7 l/ Z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
8 s7 ?- Y6 N% ?+ {5 W6 `( z; A
9 X7 m* b7 g. [6 X+ k1 u7 e) i3 `1 ]这是AGV_putin中arrive的method。! p1 k  Q3 Z3 ?3 O# {

8 M7 k2 r' F- ]3 _5 m2 V+ ~# j当到达物料速度越高时,这个报警更多,7 _6 S  ~2 b* A& N' ?( }) x0 f
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。! E) H. g+ T! s7 p7 Q9 s
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?8 U" k& D! [: y; D& C) g+ a2 i
1 A# c$ q% @5 I3 _- K
另外一个小建议,就是move,所有的move都可以这样( E- N% H$ ]8 z4 T6 Y
if not move() then debug end& ^0 O/ R! `/ o6 N8 |6 Z; @" a
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。& m5 b% n& D9 U8 _
plant simulation中的free libraries有AGV模板,
. d. n0 r/ H# t里面也有案例。; W  N% |. F7 f6 [
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
4 K: d4 A  g: r) Z  E' j4 Q- Y
: L" f8 ^# i' u7 R" q0 D我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
8 B( t( c1 A' t1 T& m8 u' l+ d$ a2 @' Z4 a
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 & v* N0 j1 }1 |, l1 |* O  K
这是AGV_putin中arrive的method。
8 E8 E6 a% ?1 T" n+ P1 n7 G9 G
2 o, q4 ?3 `( Z/ F* M& d! k当到达物料速度越高时,这个报警更多,
( v1 Y' k/ Z3 F3 P
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-14 00:16 , Processed in 0.020563 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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