设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6119|回复: 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'* h, i) v8 X  q
*/
8 k4 n& ]* k, g8 A) P! }is- a. M* z% c) v
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
" v' ^& c" n) ]- q7 `$ f7 _do
  ]1 P3 {3 J' W- P: @8 ~. z        Lan := rootfolder.Internal.Tools.AOLlanguage;
/ ^% s1 j4 b! I" ^* q2 R        if current = @.Destination -- else return0 @8 ?$ a5 F& c( d4 {5 r# ?- x3 F
        then
" a5 q$ ?) t7 j1 I- o  d' J                @.Destination := void;+ G5 g$ E. ]) |/ D% h5 d
                if @.occupied then6 |$ H- Q# j2 @* @5 C! `+ ?
                        part := @.cont;
" t. O3 o3 Q1 _5 H! Q                        @.transpOrder := void;' ^6 X* S7 x1 Z; _" N* `
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,8 x/ S; C: \5 ~$ k1 d& f8 A0 r+ l
                                @,root.eventcontroller.simTime);5 W% x, q* i$ t6 H$ N1 Y
                        @.HasOrder := false;7 b" g% V# w5 j. }
                        @.DrivingHome := true;. m' W, w! {/ H* `) x
                        rgManager.tryToStartTransOrder;0 Y5 ~2 C2 s! _0 `0 V% c* v" K
                        if @.Destination = void
& ?( }: u- R- A                        then -- no transport order for vehicle @. N. g& k  f$ |, {
                                @.Destination :=
- r4 q6 I8 i+ W: x- L                                rgManager.nearestFreeStation(@,track.~);! q7 V+ y' Q  U* [6 w
                                newDirection(@);   / |* y9 U4 x" L6 x, P, }( h
                                if @.Destination /= void then
  l% H# D! x' Z! d( u                                        @.Destination.NumReservation :=) l/ s: r. |) i. x' d
                                        @.Destination.NumReservation + 1;, X" n: }6 z9 x* z- `6 G
                                end;
4 ?1 y7 i$ k. X                                @.CurrIcon := "drivingHome";0 q/ M( j: h- p; e+ j) X% D6 x
                                @.DrivingHome := true;
7 n! Y$ h7 l: f1 S1 O: j  t                        end;
# v; j  }/ h2 j4 S. r$ g: Y, S                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
7 w& e0 h1 J) e8 Y                        part := @.transpOrder;( F# Z8 l1 ^; A6 f
                        part.move(@);-- load part' B% S# ]# |) K
                        @.CurrIcon := "load";
6 }: Z7 c/ J  b) o) l9 ]                        GlobalDistObj := part.globDestination;
! p  L( ~6 e( w/ n                        assignLObj := rgmanager.rgAssignL;$ R' b) F2 K) D, I0 Y1 T  y
                        row := assignLObj.getRowNo(GlobalDistObj);8 j# h- C" K4 r
                        if Row = -1 then -- since 70
( k2 g; C: M9 g+ z' H                                if lan=1 then% D5 |" @# J( e# z. ]8 b
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
; X$ w1 u2 k2 R  n! H                                                to_str("in der Andockstation: \"",?.~.name,"\""));
% N7 L9 `9 H1 Y# S& [                                else; p6 H9 S9 A( k4 b1 L7 b, y: w
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),) K' y+ O5 s! T: ?
                                                to_str("in docking station: \"",?.~.name,"\""));                                ) F0 ?; t, b# A
                                end;
0 Q( y: B/ o: C  W3 S8 L! ~                        else5 N) C% J* m" d, W$ P* o% _" `  |
                                @.Destination := assignLObj[1,row];
( K( S. R: m& M+ V2 n                        end;                       
9 Y$ P" d- {' {, e/ C, b4 T' X                        newDirection(@);
, Q( ~  C7 a* [, M$ O                        @.HasOrder := true;
+ H2 \3 B0 |" e& u3 Z' X$ B                end;
2 g4 a* J; v# r9 `# `& S! i2 n        end;
4 v9 D" V0 D2 I0 b* {; X  R! |end;        -- of the method
: H( Q& N5 H4 U0 I% f
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 " K7 L4 p" j6 `, Y, P3 e

2 R5 G0 ]: K. Z+ f. A+ Q5 X( n+ ^: Y这是AGV_putin中arrive的method。
1 p: L) n3 ^3 t7 D9 i$ E3 v/ v
7 U1 C3 I  b% ]) j当到达物料速度越高时,这个报警更多,
1 W$ A. i% I; i可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。8 I  P9 ~; I4 g7 }5 V
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?& o7 y) ~; U2 N" E- R

9 _1 Z, }& n% T另外一个小建议,就是move,所有的move都可以这样$ F7 ]" Q5 h9 y4 O( C# d; \
if not move() then debug end1 t6 C& R, s* h; Z" f7 N; F0 ^
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
0 _  D" _+ j3 z" C5 y6 g; hplant simulation中的free libraries有AGV模板,
9 y- n! O6 V9 g. a8 D* A7 ~- X1 ^0 O里面也有案例。0 X4 V. P- b3 Z: i: d
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
3 K& i* p0 }! Q9 M5 L9 C) T; }, {/ `- I! C+ ~4 D$ p- v& R
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
+ \0 k0 V7 L. f  U
' B  e. r. t7 c: |1 \6 I那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 7 S  \  r3 z$ {' c
这是AGV_putin中arrive的method。
; Q. U+ v: [; r1 s% X( I
4 R! p0 ^6 ?2 r+ _. `! T当到达物料速度越高时,这个报警更多,

! v% t1 q5 q1 k0 g- ^% e- W# q另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-19 21:47 , Processed in 0.016807 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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