设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9277|回复: 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'
" O9 X& M$ D4 n! M5 _6 k# n*/& J8 {' P/ d; s6 @" S1 ?* L2 k+ k
is
/ \  I+ Y8 W4 v4 u# ^& Z        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
4 [; _1 h! T! J* C# Edo3 N" s' [% ?0 W3 A, l
        Lan := rootfolder.Internal.Tools.AOLlanguage;  G$ W" K0 Y, B. h5 D: p% W  Z
        if current = @.Destination -- else return
* i+ a2 z; L* Q7 r+ s        then. b5 Q- J. h8 U1 g* x$ T
                @.Destination := void;
7 F# D# G9 u+ I* I                if @.occupied then
2 a3 `2 Z) C: f+ X: O; E                        part := @.cont;
1 v; Q: ?! \0 k' u* }* ~                        @.transpOrder := void;: q6 y" ]+ i4 T& E( z6 h
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
  G3 j0 y, p, Y( F& I& g6 C9 B                                @,root.eventcontroller.simTime);& o( m- S' e) W0 l8 n" g& p6 `
                        @.HasOrder := false;
9 `7 z' K4 U. N3 W4 t                        @.DrivingHome := true;
' N; ?: C5 g& S; ?$ Q                        rgManager.tryToStartTransOrder;) Y' [% A) s& f. n2 y2 i
                        if @.Destination = void
7 ?- o7 Z1 |6 U' F  T2 R                        then -- no transport order for vehicle @/ T: Q/ }9 b7 ?- k
                                @.Destination :=, I0 g' B( j  S/ [( f( C# C/ I8 T
                                rgManager.nearestFreeStation(@,track.~);
( m( v9 j& m* q, s& ^                                newDirection(@);   4 ?# |/ U1 m$ H$ C8 ^6 A' A
                                if @.Destination /= void then
% b- k7 \9 C1 T0 m# {4 z: j( M6 `                                        @.Destination.NumReservation :=
: |9 z& W6 T& E6 [                                        @.Destination.NumReservation + 1;
" O, w4 f# e7 U3 d7 S! v                                end;* Z9 u1 R  t4 W9 D% v. D4 }
                                @.CurrIcon := "drivingHome";
# y# C4 `: I: O- h                                @.DrivingHome := true;
! w& _! C: w  p: Q1 S0 R) u                        end;
- Q! N+ x5 g0 s                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
4 P9 w9 E9 H- M( H% R, H                        part := @.transpOrder;
/ w, ~0 t* j/ }5 v                        part.move(@);-- load part3 s! J) ?1 @$ G, V; W$ J2 D
                        @.CurrIcon := "load";
& k$ ]5 x! s6 K$ B7 z: Y% L) }, e                        GlobalDistObj := part.globDestination;
+ X( }! p4 a* m# O7 \- S9 S                        assignLObj := rgmanager.rgAssignL;( ^# g0 ?. `5 [$ a
                        row := assignLObj.getRowNo(GlobalDistObj);. |/ x" y! ?1 G( _# x. G( i( w
                        if Row = -1 then -- since 70# `3 R% u6 D" {/ @
                                if lan=1 then6 ~  ]& A3 i% @
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),3 H# n/ Z* j: M3 j4 y4 g) b1 i
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
- q$ h% i2 `/ K                                else" F4 ]* Y4 i3 @
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),2 Z: H" ~6 E! s: J: v. s
                                                to_str("in docking station: \"",?.~.name,"\""));                               
, M* V- ?+ ~( ]: g; b3 `                                end;) _; r+ A" t# g* b/ T
                        else3 N: O# N* }* G' h( Y  s% T( D  z
                                @.Destination := assignLObj[1,row];, n+ I% w- P- W8 @
                        end;                        * j) L. ]$ w( [& I# i4 J" L
                        newDirection(@);% t! \4 }+ q4 O& {+ ~! u
                        @.HasOrder := true;9 v) T( j: \* S" ]! F! @' U4 C
                end;
2 K4 j( F; v# l4 v  z( O        end;" x1 M2 Z0 M+ ]4 i
end;        -- of the method- `8 Y) [' v4 X: t3 F& N
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ' v" [! t* R5 x5 ~. O( C. y2 n  J

2 s7 ~- X2 p% k4 B  _这是AGV_putin中arrive的method。
2 f6 V8 d. q- N1 w* R8 f- J, I+ [! {( t' ]* O7 F
当到达物料速度越高时,这个报警更多,
+ p1 D( U, m9 P2 I& @( S' b可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。& B, i, {' z+ `- B' V
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
( J5 G% M( l5 J4 }* i* G5 ^8 y
; i7 Z* I/ s" A# D( k- _另外一个小建议,就是move,所有的move都可以这样
) P6 Y. C2 M: R( B* [  ?) p8 V" y* `, zif not move() then debug end+ @* O& [& T3 _# {* {
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
. J7 }9 O$ L1 A' I% S; dplant simulation中的free libraries有AGV模板,1 P" L9 m# W7 Q5 C( g' D
里面也有案例。
( ~. }" i% u1 O% b. p. ?+ B2 j我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。7 I$ G7 @7 @: q/ y! X4 D& D
0 L. z4 ]( c* w+ N7 ~
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 0 I( E  |$ ^1 u" v

$ g8 c1 K. z; f8 p, g' e/ b6 Q9 F3 s那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
9 m3 p' \* p, V0 }4 T# p/ J8 c% X这是AGV_putin中arrive的method。% l/ g! `) ]. M7 w# {

( n9 ?& ^8 t8 F3 V& N  s当到达物料速度越高时,这个报警更多,

. q- y7 a6 }; T, y! V另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-22 12:05 , Processed in 0.017256 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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