设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8337|回复: 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'& p2 Q1 ]' c7 d2 O  f
*/0 Q, _  S1 r/ j: B. W' [0 P6 X
is
: d: t- f* H$ C3 e+ M/ Q$ Y        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
" a! I6 X5 @, r6 F2 A( udo$ n6 d* [' }  C6 N/ I  z
        Lan := rootfolder.Internal.Tools.AOLlanguage;
0 [. u1 j8 N! E4 N( r* ?' ?        if current = @.Destination -- else return5 \0 H4 L+ x( c" @/ ?' C. ?
        then
% |* J! j3 h2 }6 @8 L6 F- T( q0 T                @.Destination := void;% L+ ]: u1 V" X0 L# ]# U1 g1 Z
                if @.occupied then9 H  r3 k1 M1 e8 m
                        part := @.cont;
, M* W# f' ]5 U+ Y                        @.transpOrder := void;
" a6 p# F1 f0 Q3 X; D3 X6 _                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
& V: D8 _/ ^; Z$ L& x                                @,root.eventcontroller.simTime);
6 d# g* z' c) e" ]: w                        @.HasOrder := false;
. Q  [& h$ e- A# E) }                        @.DrivingHome := true;
- r0 z3 |' Y9 ^                        rgManager.tryToStartTransOrder;7 h0 D) h* i0 X
                        if @.Destination = void) Z- E' n+ O& K6 T
                        then -- no transport order for vehicle @% x- O# z# Q6 Q" q1 _2 [6 E
                                @.Destination :=: a. ^1 {% K2 ^; w% d
                                rgManager.nearestFreeStation(@,track.~);0 s, b3 F+ W$ G8 p) w. c
                                newDirection(@);   
" J" P/ e- K7 K7 B$ ^& [/ k3 z8 N; E                                if @.Destination /= void then7 k( p! w: k- n! k8 H
                                        @.Destination.NumReservation :=
$ L- r0 m( Y# Z0 q4 \/ S  k# \                                        @.Destination.NumReservation + 1;
$ l. I( A% A, b) q+ Q' ~                                end;' [# K9 K( s; l0 S% L3 s' i' I1 S
                                @.CurrIcon := "drivingHome";
( @0 q% [1 v( [* ?0 W                                @.DrivingHome := true;# ^, M$ h+ O; n0 V# M
                        end;
* w) {! a: s) h( U. E                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
5 G9 y* p. ~% M# G                        part := @.transpOrder;
$ f* \; v5 n& C: }% K- O                        part.move(@);-- load part
* {/ W/ l! }# E8 p9 c                        @.CurrIcon := "load";: x" s8 F# g6 ?. Z2 C' }7 |1 P, {
                        GlobalDistObj := part.globDestination;7 [) v( _1 U3 {! ^1 q+ Y
                        assignLObj := rgmanager.rgAssignL;
) X% [' L! r' f. A# F" N/ y, T" k) o                        row := assignLObj.getRowNo(GlobalDistObj);
5 D$ k# S$ p' \, T1 d2 C: f                        if Row = -1 then -- since 70: w6 F- e/ j5 p6 T2 S
                                if lan=1 then
- r6 a2 U: r  y3 A) E# E0 {2 v                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
' M$ o/ @( n+ z                                                to_str("in der Andockstation: \"",?.~.name,"\""));
! ]$ w0 F# Y, m% V                                else. \* d) u1 Q& f1 ?' k
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
! Q2 [. ?9 y& L) Z. F" C. y                                                to_str("in docking station: \"",?.~.name,"\""));                                - s: A( [( L, H2 I3 F6 v! G
                                end;  ^4 R$ V4 \) Q" _+ e5 W
                        else6 g. J- M  ~' R- v9 g
                                @.Destination := assignLObj[1,row];. a8 K3 C% L. X8 B4 u3 m
                        end;                       
" v( k  d( c  R1 G- e' j8 \1 R6 b                        newDirection(@);6 R- n2 Q/ ^1 f
                        @.HasOrder := true;
/ V3 _2 \0 B$ ~6 x                end;! l: m8 q  j7 e0 m
        end;
! q3 J: |, ^3 Q/ K2 b" T/ Tend;        -- of the method6 Z. K( f) r4 D. k# q+ v
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
/ a& S# u3 X; v: m; R8 b* j( u" K/ e* m
这是AGV_putin中arrive的method。
5 g$ i! k$ B5 R+ B. O
0 y% B: A" h4 X% R6 V3 F: Z当到达物料速度越高时,这个报警更多,
- X, a1 b( S' v  L) l; U可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。1 b4 j' H3 W1 E2 M, a
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
6 [' [1 `2 q* U2 s+ @) u6 `/ [: Y' P4 h- U9 g5 E' `
另外一个小建议,就是move,所有的move都可以这样
$ D* _) e7 g1 u' c& kif not move() then debug end
2 s5 v+ [7 e" g/ I% I# p这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
* E$ l! _6 q- @1 mplant simulation中的free libraries有AGV模板,# n: {/ B4 G* t( U: |; ]0 _' u
里面也有案例。
) ~0 O! m9 u3 n" _我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。4 A; [; l* C$ ^% I
4 G! Q# t  `8 i+ F" @& j
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
4 e5 ~$ u( V# m4 O: f+ e" h& m1 i% |  r" j
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
& n7 E" z6 O  K这是AGV_putin中arrive的method。3 X% T% a. q( A2 x4 q; B' J

. p2 \6 e  A2 I; I. m0 F7 p- R% a当到达物料速度越高时,这个报警更多,

/ Y1 {6 m0 x+ ^) V" x另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-28 15:53 , Processed in 0.017657 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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