设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8794|回复: 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'! ]* Y' @/ M: u& l( K
*// e9 S- U# m: S! @
is
& [5 n; V8 Z1 E) Q+ F$ R& K) R2 j9 @        part, GlobalDistObj, assignLObj:object;row,Lan:integer;) g3 I1 b9 d# Q/ T
do( j7 p' Y* a3 c1 g9 f0 R% L* Y
        Lan := rootfolder.Internal.Tools.AOLlanguage;
: x1 Y* ]) R. @8 W0 r, y6 Y        if current = @.Destination -- else return
1 a% l/ m* N( Y  s& A/ h9 B        then; m1 z" C) w( M5 N/ w
                @.Destination := void;
* U, N/ N# X' l& B                if @.occupied then
3 X" w: }9 b! k, z/ S; s                        part := @.cont;1 [; N; ^$ s* c
                        @.transpOrder := void;7 U, L$ s6 H" S9 X
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,- h2 e! P. |' Q* g% ]# [
                                @,root.eventcontroller.simTime);
  B& g4 K$ l1 ?6 c. x                        @.HasOrder := false;
% u. A( e: \2 O: n- L1 p                        @.DrivingHome := true;
* e; m2 R7 |% V( z$ Y  x                        rgManager.tryToStartTransOrder;! A" A* X! p: E" A" q$ w2 s7 R
                        if @.Destination = void! p4 _* ^  q8 @; w
                        then -- no transport order for vehicle @( D9 S+ G* W7 c8 q
                                @.Destination :=
( _% R1 q. T5 Z7 o: Q                                rgManager.nearestFreeStation(@,track.~);  f1 ^" B# T5 K/ W# o* M- n0 t+ S
                                newDirection(@);   
6 e& S% x3 ~, P                                if @.Destination /= void then
0 B4 g& U! x0 f0 b                                        @.Destination.NumReservation :=' N( A; `8 w+ |) i2 n
                                        @.Destination.NumReservation + 1;
/ [4 c; f3 D/ G2 M; @5 }2 G/ j* P                                end;
- K3 H( _3 E$ K5 S- d: W* u$ v. D                                @.CurrIcon := "drivingHome";. Z( u0 Z. e- B6 K, b3 l
                                @.DrivingHome := true;
1 c* u" E9 ?- X3 J                        end;
- {7 U# \- p: v; N/ w; d                else -- the vehicle @ is empty, both vehicle and part are in the same dock station4 i2 Z4 B/ H. q  R4 A
                        part := @.transpOrder;  ~$ G: m* w- P( i- z
                        part.move(@);-- load part
6 ]1 s9 _. G0 n2 t7 H5 J; ]$ _                        @.CurrIcon := "load";3 L( B8 H- ]9 f" i
                        GlobalDistObj := part.globDestination;
5 c& j4 z) E" N+ J% j                        assignLObj := rgmanager.rgAssignL;
# I5 r4 H% h  b2 t9 w9 N/ L                        row := assignLObj.getRowNo(GlobalDistObj);% O5 s/ G% R7 v
                        if Row = -1 then -- since 709 A+ k6 k7 t% s2 E9 y
                                if lan=1 then, M# X; C/ J2 m9 @& Z' V
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),8 ]4 F6 \( ^* |7 s6 O
                                                to_str("in der Andockstation: \"",?.~.name,"\""));! k# _$ g8 |$ I- y2 J
                                else7 ~& [% l* {) E3 S( F+ e
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),! v3 C0 i* J% {, X( ?( ]: l1 f; {
                                                to_str("in docking station: \"",?.~.name,"\""));                               
2 l  x- y5 a: a                                end;. t# x( _, F* x; X" u, e" n
                        else
7 d3 @( q& N( O+ P  p7 t! k+ [2 E# U                                @.Destination := assignLObj[1,row];' j  }- g/ V) T
                        end;                        9 d! p! f* u' s: l! u
                        newDirection(@);
" r& g* b1 V3 G. U# i                        @.HasOrder := true;5 D% X; K: u1 a( C0 E
                end;
& y( o+ w6 F  c) |7 T8 `  L        end;
) y5 K- u" G7 g/ p  yend;        -- of the method& G$ c, I- u8 }8 E, D9 \1 o4 n/ [( _& x
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
+ m, R% h- x# e( o4 o2 @( s1 R# }% K, O7 d" o  D0 T* f* h9 O$ y
这是AGV_putin中arrive的method。
6 l' m+ Q; Z' P+ G% k0 W. t2 r0 Y8 g$ {; n* I/ I  d; d5 z
当到达物料速度越高时,这个报警更多,
  {* \8 ]4 e. R/ o1 ~# f可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
& r2 ]- t6 D5 H- `程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
+ v! w* e* s2 M' Z/ W
8 k; ^3 O9 L% Z另外一个小建议,就是move,所有的move都可以这样- i2 ~% W. s0 @* B) [  O
if not move() then debug end
0 n3 P# C9 G( ?: a2 T5 r3 P! Z这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。: j& v- g: n4 Q; Q4 o
plant simulation中的free libraries有AGV模板,- A& B2 ]5 G" [4 ]4 V4 q
里面也有案例。2 |! b( F9 x  D3 G+ \
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。- f$ S+ g0 [; D
! \+ k+ @0 m  z/ D
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
0 N/ m% c/ M6 }  G! i/ B- R! P
7 z( T6 [. s0 Q3 t3 s+ J6 o那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 3 V, V* |0 |2 K. g. l0 n" i
这是AGV_putin中arrive的method。
  u( G9 N$ k+ t7 R9 r8 p; b5 X7 ]* E: j) K+ J, j/ w9 A+ _$ o
当到达物料速度越高时,这个报警更多,
( ?, R. v8 t6 C
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-26 16:46 , Processed in 0.014812 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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