设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9194|回复: 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'
; }! R* J7 ~0 N  K  m) G/ k3 H/ w8 B*/
( U: C$ t1 u" B9 @" p0 g8 D3 L8 wis( L, s% F9 f* g3 p, f' @: \' B0 {
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
. }% B, ]7 r7 a: R' z  w0 }- K/ [0 @do
5 H, {. N# T* [8 S6 H        Lan := rootfolder.Internal.Tools.AOLlanguage;
& o# J% V8 B  S! {0 O0 }% F        if current = @.Destination -- else return
, p9 |# P2 ^, H% B- G. ^        then
  H  e; b4 k9 Y, L. V/ K& n                @.Destination := void;# y. h# d: V+ b( D! M4 f3 y
                if @.occupied then
' A; j. c: c3 N                        part := @.cont;
# Q+ U# ]+ _- Q9 d7 {1 ^                        @.transpOrder := void;
  s0 k. }+ j* t& `$ ~# z) K                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
4 ]- s+ c, h5 _( ]7 Q; Z, l& f                                @,root.eventcontroller.simTime);
9 ~0 u, X: ?* B* E                        @.HasOrder := false;* E* |! {' @' t' X; f/ k. D* G
                        @.DrivingHome := true;
# K1 Q4 [1 Y: _* E- h7 y+ t* u2 e                        rgManager.tryToStartTransOrder;
" t0 v$ s' L; ^5 y: h; h& G                        if @.Destination = void+ I% H  }8 R6 N
                        then -- no transport order for vehicle @! D3 p3 M9 C: |2 v
                                @.Destination :=
$ m2 P7 n7 O% A8 {                                rgManager.nearestFreeStation(@,track.~);
- k* W& d0 a2 B% \                                newDirection(@);   - M2 X0 l% n$ J3 h& J" z0 \- Y4 ]
                                if @.Destination /= void then" R; j5 O1 L6 j
                                        @.Destination.NumReservation :=, G4 R# q. y# @' p
                                        @.Destination.NumReservation + 1;8 B' c4 g# K; J" G
                                end;
% \0 U+ i8 n- }" d$ C6 @7 N& |. d0 S9 C8 E                                @.CurrIcon := "drivingHome";
2 i) Q0 T4 C; q7 b                                @.DrivingHome := true;# h! s# a0 E4 t2 `& y, n
                        end;4 I' L3 ?0 E2 j) ~' y
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
& J6 V- E  G8 j- ^5 `3 n& W5 |' W                        part := @.transpOrder;
3 J9 B9 m  }, `6 Y5 Z                        part.move(@);-- load part
; p) O1 X% G: t, H- W6 j                        @.CurrIcon := "load";  A+ v# |" S* ^- Z$ ^# O
                        GlobalDistObj := part.globDestination;* J6 r& {, a! E( f! F' f/ ]7 }
                        assignLObj := rgmanager.rgAssignL;) {0 C9 U, J3 j7 C
                        row := assignLObj.getRowNo(GlobalDistObj);) d$ ]: d+ f9 Y% F* o
                        if Row = -1 then -- since 70
8 v. r& o0 O, Q) e: w+ t                                if lan=1 then
: @+ ^; Y4 q' T1 y2 [7 W                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
' v0 B' i! Q9 ~                                                to_str("in der Andockstation: \"",?.~.name,"\""));, m' E. a% e$ d* G7 s5 S( i
                                else
4 q5 c0 f8 i# ~! m                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),) \" M/ ]4 \2 z1 X) Q% e
                                                to_str("in docking station: \"",?.~.name,"\""));                               
/ Y/ }: z  i8 a0 y                                end;) |+ a" ], m3 x; J( b6 q5 S
                        else" A4 G+ X/ v! x) h2 u$ E
                                @.Destination := assignLObj[1,row];
+ T. E+ u' E. Y9 U- ~                        end;                       
5 y5 w& Y1 T7 o% h9 T                        newDirection(@);+ P$ _3 z: x/ {) T
                        @.HasOrder := true;
9 b) b! d1 k3 `* f                end;
0 a, L( q/ G9 u# ^! e, n+ h        end;
) ?& h* \$ H2 T) _end;        -- of the method
2 N1 s( C# J) q9 S8 X
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 1 }$ j9 U8 e: y  _- W/ B
! h, S; u8 {4 ~& s/ b4 F% }3 U
这是AGV_putin中arrive的method。
3 ]6 \9 ~1 Y: T6 o: I3 |2 H2 r  }& s+ G, g8 g# D
当到达物料速度越高时,这个报警更多,& o3 g& w! S* z" w8 K$ ^. K4 b
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
7 X$ L; B. z7 T: P2 R4 Q程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
2 l, P3 i; v( W  [  U3 R
5 s4 l" O9 W+ G2 Y* ]4 k: n另外一个小建议,就是move,所有的move都可以这样+ S" t- ^5 J$ G# x( L
if not move() then debug end
! V6 k/ f8 M1 A) T这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
( n' ~/ }1 \# [$ zplant simulation中的free libraries有AGV模板,! [. a  p* D' ?2 E
里面也有案例。" E" X. P1 r+ ~* W, I; l/ ?7 M
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
1 A0 g) q8 e( x% K6 I
% I/ q. Q% }9 f5 H+ [2 _我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
8 V: q/ n) N5 X6 V  ]/ l0 q/ Z% ?  g8 C4 d4 i: r+ O4 A
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
! K6 W4 ^5 O2 K: o1 x  ~9 ]$ L+ O这是AGV_putin中arrive的method。
: Z" ]: K* D3 D$ j5 h
+ n6 d' Q5 G9 M6 c- F& o当到达物料速度越高时,这个报警更多,
  B! A; q- B( ~" l. w
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-18 20:47 , Processed in 0.018714 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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