设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6660|回复: 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'1 E0 ^7 ]' ^& n3 x* K, c: c
*/
0 }" ]2 y5 ^, g5 y2 \9 Z8 S$ iis- t+ J) C$ A3 a# ^! j3 R
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;* @- W" i, y" M+ V( P' J5 F/ m
do$ z8 r) {! f7 z! G
        Lan := rootfolder.Internal.Tools.AOLlanguage;/ n4 H! E+ t# H0 b" D; t8 ^
        if current = @.Destination -- else return
2 E+ T- W; c& A! k% k6 g        then
( p: q: l" d' Y0 ~2 s/ k. A                @.Destination := void;
; {/ M& C2 b9 y- {# N' }0 B                if @.occupied then
3 V$ C1 `  `% Q9 W# x% W9 X4 J2 B                        part := @.cont;' T- r" A) j; H( S, I5 m
                        @.transpOrder := void;
: `5 C- o( G& P" h# a                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,& [; O( u" H0 f# Q% S; O
                                @,root.eventcontroller.simTime);
( X$ p' z& o9 r: }# a( n3 n                        @.HasOrder := false;
5 J# v& ~: @2 d                        @.DrivingHome := true;; C7 f3 ?7 [3 r4 n0 X
                        rgManager.tryToStartTransOrder;# n' Z+ S  j5 n" z1 w; _
                        if @.Destination = void
$ [2 }) d9 p( j" V1 A                        then -- no transport order for vehicle @
3 ]( I% K& g8 s# U! D% h                                @.Destination :=+ E  A& ~* u. W, \) W1 C/ ^9 O
                                rgManager.nearestFreeStation(@,track.~);
6 {$ J: {$ N7 s% B  Z1 c3 e/ C                                newDirection(@);   
' a/ z1 A- v. y, y5 U; r0 Q                                if @.Destination /= void then$ f9 x" z( A/ j7 S+ P$ Y) G
                                        @.Destination.NumReservation :=
: E/ a, M- M0 E% ^' n- ^( C& Y6 @                                        @.Destination.NumReservation + 1;
3 r; c/ b$ x9 S+ M' q) X( n                                end;
1 j9 D9 p) Z( E                                @.CurrIcon := "drivingHome";
$ R# N+ H, p9 o; n1 v/ t2 Z                                @.DrivingHome := true;
* m) \( m0 s' K% E$ \                        end;
; j4 J9 ]1 |/ r, h8 H* s  j* D                else -- the vehicle @ is empty, both vehicle and part are in the same dock station9 K, P3 Z1 ]/ d" O& I) d
                        part := @.transpOrder;
; z: i/ x: ?3 i2 }! ]* m( [. t                        part.move(@);-- load part  _  t: e  s/ l, y& v
                        @.CurrIcon := "load";+ p2 Q9 A7 h7 i
                        GlobalDistObj := part.globDestination;
1 |+ r0 G  E0 B1 ?- V. G" T                        assignLObj := rgmanager.rgAssignL;
6 L8 D- s% R1 C# r2 f( M' Z% u                        row := assignLObj.getRowNo(GlobalDistObj);) z2 V% P0 t$ E: V3 i
                        if Row = -1 then -- since 70
2 @* Y8 e) ]/ P1 Q1 d3 G                                if lan=1 then# L2 }0 m4 x" c: S9 M- V: h
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
# K4 ]: \& A8 w# P( _8 X8 Y                                                to_str("in der Andockstation: \"",?.~.name,"\""));( e' o* s- }" S6 ^: K4 X' p
                                else
$ i7 O+ M: T2 V! ^" Y4 k                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),+ H6 h$ |; g& |$ s6 T/ W
                                                to_str("in docking station: \"",?.~.name,"\""));                                ! Z0 y2 J! }) \2 W0 H
                                end;* r/ V* ^, j4 ]5 m0 m6 v: o
                        else
$ K2 T4 Q8 g$ r' p. O0 o0 O                                @.Destination := assignLObj[1,row];
0 p% @9 ]3 ]0 i                        end;                        & k6 M9 Q" A  f- `, P% F# L, A! @' c
                        newDirection(@);
$ l' Z. H& b8 t: n- A                        @.HasOrder := true;
; U4 k$ K( F. B) P5 i* H) |4 k                end;9 x9 T! J' C' m- x% j7 z1 f
        end;
; Z2 L, _" _) v3 M; a! Bend;        -- of the method+ A' q8 z* b* _1 E8 j
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
$ H" H& c  ^* @3 S0 Y, E& _
2 e4 c0 \/ }+ |0 @& z! n1 b这是AGV_putin中arrive的method。
1 @8 }' R3 @) l( g! S& \! Q$ L  k) P! ~0 {
当到达物料速度越高时,这个报警更多,4 ], {9 e# J9 n2 d$ ?/ ~
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。3 A; x% e( s; J9 |' q7 ~' N- S$ B& }
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
. r. ~" p5 s& E# A+ Z5 W- Z% J! Q" y# ~; j
另外一个小建议,就是move,所有的move都可以这样1 q& z5 R$ V& l
if not move() then debug end
5 z3 z: E( c4 \9 m这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
( Y) P3 R6 d% M. Y+ R! \plant simulation中的free libraries有AGV模板,
' U! P. e% q6 t; q" |9 c里面也有案例。6 ^' m( u! K' @& U1 {
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。5 V( y. R/ t( w3 [- Q7 L/ T4 [% X
& g) C2 g/ V; w& T1 g
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 3 }$ y* O+ R2 O$ O5 [  M
. A8 N+ k/ U8 M9 _$ M7 x
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 3 g9 c5 _* n$ l
这是AGV_putin中arrive的method。" O! M  |, X# E! ^+ w& d

5 u+ Y, }4 m4 [; q当到达物料速度越高时,这个报警更多,

% D9 P1 Q$ c: b% A' f7 c/ \另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-19 16:37 , Processed in 0.017680 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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