设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5175|回复: 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'3 l1 }# W0 A- a' q
*/( U: g3 r, x3 \* t0 U% `' D
is7 j; P9 _/ b" D/ v% _
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
- N0 W4 S6 }) N# ^: _2 x2 H7 Wdo
7 j0 s. a8 Q7 {' L0 [        Lan := rootfolder.Internal.Tools.AOLlanguage;
; [  b" S3 |" i2 c& g# a        if current = @.Destination -- else return) K* E8 K7 E0 I" o! s4 b( I: u
        then
5 s; d* Q$ y% l0 ?' }  W                @.Destination := void;
" H2 K) g# j0 Z8 c" \0 o7 z- }                if @.occupied then  m2 y  W7 z& c
                        part := @.cont;3 L7 m( i6 A+ O! Y( U9 `+ p
                        @.transpOrder := void;4 q# c. s, I7 j/ T" p* |; z0 Q
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
) F4 I6 b4 t" K' s% x                                @,root.eventcontroller.simTime);) j0 Y3 f4 Z+ G/ A
                        @.HasOrder := false;
$ {) x$ G9 G4 t: ]% B3 ]2 r+ g                        @.DrivingHome := true;
) V. L! c. v9 d                        rgManager.tryToStartTransOrder;
7 `' a! S/ a+ J% W+ N* R) V- M                        if @.Destination = void
7 W- T7 l; ?1 ?! U. u                        then -- no transport order for vehicle @3 T+ H, }1 r. J. |$ K. ~
                                @.Destination :=
9 c$ v6 G$ w6 P, {                                rgManager.nearestFreeStation(@,track.~);2 r% d! A3 S  O  L5 Q/ J  U2 V
                                newDirection(@);   
' e" U3 D0 q4 g) e2 Z                                if @.Destination /= void then
/ G; S# z/ z1 ]. r$ w" e' C                                        @.Destination.NumReservation :=& e% q6 Q8 X4 R( I9 d9 k
                                        @.Destination.NumReservation + 1;
4 E3 p: ^7 o$ a9 R4 d: L6 r. w                                end;7 m& f* s% Z3 H0 g
                                @.CurrIcon := "drivingHome";
( k3 r. |# n6 V8 ^( \                                @.DrivingHome := true;
4 Q/ F% g/ p* d. \4 r) ~                        end;) B  u$ ?0 e. F( D
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
" Y3 A8 L6 {  m# I) \                        part := @.transpOrder;6 g; m( X. U+ J& a# t0 Z% A
                        part.move(@);-- load part/ J& s! |) c+ Q% Q
                        @.CurrIcon := "load";5 t* `0 s& \0 |6 E+ f( b3 b
                        GlobalDistObj := part.globDestination;% y/ O  H1 H# b1 M" Q, }6 I
                        assignLObj := rgmanager.rgAssignL;' ?- n1 ^" f- y4 _: H2 h
                        row := assignLObj.getRowNo(GlobalDistObj);
' @' C' V, B1 A# k! A                        if Row = -1 then -- since 70( I. D( I3 G& y3 f/ j1 }6 l
                                if lan=1 then/ c+ f* p1 s# }, N
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),3 m( @/ `1 g! f5 P* K+ m, z$ o
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
1 E2 {3 J8 S' Z                                else! }. w' j2 i/ e( }; P9 I
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
: n1 v# v& [! O0 j' _                                                to_str("in docking station: \"",?.~.name,"\""));                                  C3 [3 K  z& M& A- R6 Y, Z
                                end;# t1 |1 d. T: ]: B
                        else
8 K( j/ j3 w1 O, \( k) @                                @.Destination := assignLObj[1,row];
+ \( B( y% b- u7 k/ ^                        end;                       
8 x5 F( i+ v! X8 h- D0 ~                        newDirection(@);
0 \! g  P: r8 ]' W+ j                        @.HasOrder := true;0 P+ J6 ]/ z, `7 s& s2 q  X" a! W
                end;. Y3 K4 @- z! H/ U
        end;
: _) g( T$ _% z" Hend;        -- of the method
+ |( A% w3 a! \5 V: W5 W# o1 ~& i
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
) L% S* v: `& f% R& b0 Z6 m7 K8 K, C: ^6 {; F4 W
这是AGV_putin中arrive的method。# [$ c6 A. A9 ?3 d
! }( J( H0 X& ?  j
当到达物料速度越高时,这个报警更多,' }5 g0 ^% U1 b& t- _% h4 x+ u
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
. v7 }. n2 o! E程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
8 b, ]% M3 e! P  ^6 [
5 S& W3 N$ L5 k5 @  u; B另外一个小建议,就是move,所有的move都可以这样6 u1 O0 W! o% C) s& {' ~
if not move() then debug end
- ?" ~6 z  y& ]' B/ c/ C7 I这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
, d0 J5 d' W2 ~- `2 aplant simulation中的free libraries有AGV模板,
- t: ?$ k3 `- W9 B里面也有案例。
, `2 a% D8 Q. x% t* I# }2 H4 R我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
2 [' d! D  C' f* Z- ~  N& U& o+ P" e6 O% x. d+ v! D/ Z1 K  ~
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
# L& F* G* \/ v$ r2 F' U3 |! I4 j! A
2 f7 l4 `9 j. F6 \6 _7 B: b那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ; f; a3 N: x. q/ s9 x  T3 k
这是AGV_putin中arrive的method。
4 Q, P1 [4 G: i+ |2 i, G4 x/ E$ m: B$ P% N% E/ G/ x6 n2 v& Y
当到达物料速度越高时,这个报警更多,
; O: V% ]  M$ C# R# q% n) G
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-10-20 14:41 , Processed in 0.019014 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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