设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9143|回复: 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'
6 E( F+ _% D0 ^. H+ _1 `6 J*/
% j/ \# u* h" x/ j3 @- W( kis" [" f# \" p' X: T( ^5 b
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
; f; `7 `/ O4 P- Zdo
" T$ u# ]  e. B% e2 Z7 d        Lan := rootfolder.Internal.Tools.AOLlanguage;
4 s9 }" X* y5 D3 f        if current = @.Destination -- else return1 s0 ?* g; ]: C& v2 n$ o( R  K4 {
        then! }& o' C" P8 D9 z& ]4 d5 {, B( {
                @.Destination := void;1 c; D- i3 e! ]) l  Q, Q7 M
                if @.occupied then
) X" V3 j2 i6 b; }0 P! `4 ^8 t8 G                        part := @.cont;
; ]% S& ^! r5 i2 x/ T' p                        @.transpOrder := void;" D0 u/ F. @* X8 Z; d
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
# Y$ Q2 W( m; Q3 H9 P. e% v                                @,root.eventcontroller.simTime);
7 ]. `6 {) H9 t  a* w3 }, Q3 i                        @.HasOrder := false;
' }2 M  E& D3 S2 k( D" D& ^                        @.DrivingHome := true;* I" m$ N9 @+ b
                        rgManager.tryToStartTransOrder;; n: o3 |- Z& E; U' w. i$ Z
                        if @.Destination = void
( C3 ^8 P( ^0 E9 L6 e1 w. S& N                        then -- no transport order for vehicle @
& r0 K9 w* U1 c5 e: H# Z                                @.Destination :=2 a. Q! a9 D+ A0 v: j1 o+ b' Y" U2 t
                                rgManager.nearestFreeStation(@,track.~);! G- I( t0 k9 `7 `0 t
                                newDirection(@);   
: a, F; n* u+ W; H8 L# X                                if @.Destination /= void then% I2 N8 M! Y6 L" I/ ]% k' }6 c8 z
                                        @.Destination.NumReservation :=
% M  h; v3 H. g$ a  C! h1 M! k                                        @.Destination.NumReservation + 1;. E1 s& h3 E" P6 s( o% H7 m
                                end;
+ N) j4 m! W  q                                @.CurrIcon := "drivingHome";
/ p8 C+ P& |+ J& n                                @.DrivingHome := true;: t/ S5 j% R9 B/ O/ R# B
                        end;! ^, [. T1 g$ U6 n' Z; B7 E5 L6 u
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
1 J. u" E; u$ {. U                        part := @.transpOrder;$ _8 S; s7 m) K0 Z) P" K0 ]2 S
                        part.move(@);-- load part) ?0 f# h1 V9 e
                        @.CurrIcon := "load";
: r, Q* V$ o1 G9 X" c                        GlobalDistObj := part.globDestination;
5 U" [' Q# O9 n( }# U5 L6 ^                        assignLObj := rgmanager.rgAssignL;
6 B2 J' O' j. d; F' l! ?                        row := assignLObj.getRowNo(GlobalDistObj);, h6 D, ]: @! ^6 i$ k
                        if Row = -1 then -- since 70
4 M" H) T. w8 @- h                                if lan=1 then
* V6 T# H5 V- x2 B+ f! s9 Z                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
  V  o9 p8 b  c/ i" S                                                to_str("in der Andockstation: \"",?.~.name,"\""));& {3 R$ W% [, S
                                else4 d9 o) q, e/ j, j( ~8 T
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
. I* P- a5 [! D; S4 H: }8 ]                                                to_str("in docking station: \"",?.~.name,"\""));                               
- ?" {' i, m) ~- q; X8 `8 x                                end;
6 [+ N: ^' s& Q' V5 c                        else
  u* a1 c8 X2 h6 R. x$ j; y                                @.Destination := assignLObj[1,row];6 E1 }* ~+ a: o; J0 b* a1 W2 l
                        end;                       
- j4 {: X& V8 [( J                        newDirection(@);
1 M+ x2 j7 s3 @! ]                        @.HasOrder := true;! k9 e* f: n. X5 c, S' u
                end;0 B6 t" Q% ^+ N$ a. v9 R7 F
        end;5 w5 n3 F. E& U4 H  _
end;        -- of the method* H* F! Z, l8 L( a4 n7 Z  N
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 & s  [1 I/ `4 c6 y
1 S% e# u! \% |
这是AGV_putin中arrive的method。
- l( B) j/ @# k* Z4 n: G2 n7 N$ c
' a* F% @* r4 U$ b8 i1 I当到达物料速度越高时,这个报警更多,% R: F* V1 k6 n; z  Q3 e: s1 Z
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
7 U' ?! Z" @$ {7 R. k2 p, r程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?& e- N/ t  x" i; U" j! m6 G

. H) K  [; a" m" R$ ^, g- D另外一个小建议,就是move,所有的move都可以这样- u' L5 }  W# M
if not move() then debug end% {' a0 j) q: I0 Z: Q
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。; U7 N" P2 d- N1 D
plant simulation中的free libraries有AGV模板,! ~! r2 a, m( l, p5 Z( t! |. F
里面也有案例。
( ~# j% w! G/ h0 p1 w+ p我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
6 @+ M4 R. D, v2 Z( I0 L9 p8 B1 \  |* W# D* n) D% O& N' C
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 1 b2 V) |0 D: P8 M& n
2 j: [- j# y  }$ s
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
1 A/ F. z" x( ]3 R* v+ L这是AGV_putin中arrive的method。7 e( c% @0 D: L; U% G4 N

* M/ W  C; S0 ^! |7 l当到达物料速度越高时,这个报警更多,

' A, |1 e2 h- c/ N另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-16 10:04 , Processed in 0.017294 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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