设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7040|回复: 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'* f1 P1 L- y4 h# u
*/
* j2 V* r$ R% y6 B* Y. Q6 \is
4 [) N; I- L0 v1 I; t( K% {        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
/ h6 L0 l  c- P# V; `) Qdo" r( s- B3 M! E& ?0 m& b7 I: s/ b
        Lan := rootfolder.Internal.Tools.AOLlanguage;. [1 k' ]) |: o: F5 V9 I( F! B% G
        if current = @.Destination -- else return& m9 K) ]6 g# T7 p% M( q7 x
        then! _/ V- m- A0 ^: R
                @.Destination := void;9 _" K+ C. H0 H3 b# \( }! b1 I
                if @.occupied then  H+ {  h( D- w, y7 y" W1 o
                        part := @.cont;6 j* ~4 b2 i% ^  z
                        @.transpOrder := void;6 ]5 }$ K- |% i1 {5 W
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
1 A% r- F0 h- X/ `3 A1 V1 N+ i8 |                                @,root.eventcontroller.simTime);8 a, i# I1 T# M4 A  m- \- j2 D
                        @.HasOrder := false;
4 o+ q# z0 I4 q: @; d) h                        @.DrivingHome := true;
$ _; Q+ [- [+ J- z                        rgManager.tryToStartTransOrder;) g# j9 |* A2 m5 W/ m/ n
                        if @.Destination = void
& S- y/ S! Z' R& D9 F: X, b                        then -- no transport order for vehicle @
. m( v0 @8 e2 d. \  P7 q4 Y                                @.Destination :=
" q! c9 I, T1 N) D" |                                rgManager.nearestFreeStation(@,track.~);- O! E8 W- l5 [# e. }
                                newDirection(@);   
! M' E( _4 {' }                                if @.Destination /= void then
- `9 Z8 ^" U3 Q# Z' P3 L( T" ]                                        @.Destination.NumReservation :=
3 v: D. i6 }' w2 Q' F: G1 s                                        @.Destination.NumReservation + 1;
0 x4 q, q6 L, ^) d3 g) a                                end;: e5 E6 U' {5 i* W4 d
                                @.CurrIcon := "drivingHome";
, O) N+ l! j* d                                @.DrivingHome := true;
! n) E  u! ^* K) C4 ^8 q) W                        end;# d9 Q9 m2 G& C& v& \9 K( w
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
$ k- x9 X, y" Q$ ^7 _- w! a                        part := @.transpOrder;
, q9 B1 Q, v" c) h# m. }                        part.move(@);-- load part: H$ }$ ~3 W7 g. p
                        @.CurrIcon := "load";
7 p7 ]2 F4 g: \/ {                        GlobalDistObj := part.globDestination;7 q& j3 ^) \8 p; ^! x4 ]2 ~
                        assignLObj := rgmanager.rgAssignL;+ `: l$ s4 C) H8 t- H6 s
                        row := assignLObj.getRowNo(GlobalDistObj);
7 y- ~, F3 J8 h8 k9 v% t                        if Row = -1 then -- since 70' v0 n3 \# l# J: ~
                                if lan=1 then+ z- I! u! J# L; X3 J6 W
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
% H# [6 K/ F# e  y1 n% Y" n5 Q2 h+ t                                                to_str("in der Andockstation: \"",?.~.name,"\""));
) e8 D0 T3 K1 \) S* z2 l  l8 r                                else3 |$ `& t( S! [( E" b  t
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),7 K/ v' |( _+ T' {
                                                to_str("in docking station: \"",?.~.name,"\""));                                5 H) B6 ^- G) p- G6 g6 F, I
                                end;
( z5 r9 e) p6 D* v. L9 T0 x                        else3 b5 I3 w& ]1 q6 s' c. q* q9 q
                                @.Destination := assignLObj[1,row];2 N- L* K; M4 M7 P  v( X. U
                        end;                       
. C% W! G5 [6 N+ V5 d                        newDirection(@);! D/ h- I+ j+ T" I7 g1 T
                        @.HasOrder := true;
" ?2 n9 T+ ]; D                end;
  g3 |) y" M' l. n        end;
- a; I% n  f& i3 f5 rend;        -- of the method8 |0 O) w6 j8 H% G4 Y( G1 [. b. Q
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
5 A+ D- {/ f6 y6 j: o! f+ l3 s, t" ^& ^+ W1 O0 K1 Z, d
这是AGV_putin中arrive的method。  g/ v1 U0 ~7 o

& {; z4 H6 ~' }. e* l5 i: J当到达物料速度越高时,这个报警更多,1 t. a" y' Y( \8 F" i$ K
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。) v" l3 J. H/ V4 {- _
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
+ }: p2 m: Z4 g" g2 I: E- i9 W; ~7 @, R1 g. u5 l6 f
另外一个小建议,就是move,所有的move都可以这样  W  ~: {! ]/ p$ ~8 N0 P: w( @
if not move() then debug end
3 j) O6 S" H- ]) ~1 j) s& f. _/ z这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
) P3 Z: L" I  ]5 zplant simulation中的free libraries有AGV模板,
2 m3 a- C; d, U( B里面也有案例。" L# `) O- g6 w/ `& U' m$ `
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
  g- Q0 _2 @: c# J/ H, J/ X2 r0 T2 y+ W
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
# {, |) X1 ]8 T( Q% q% r0 f$ ^
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 9 ]9 X  W0 Q/ T* f  z
这是AGV_putin中arrive的method。! v, ~6 M+ y. {; S; ?7 Z2 v
/ x+ K( h% G" P
当到达物料速度越高时,这个报警更多,

# {/ r+ X! u1 p: q1 G& f另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-12 20:01 , Processed in 0.021952 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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