设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9791|回复: 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'* N3 {% E6 f6 s+ o
*/
" m* |: S, M- N5 z+ lis
0 n2 V$ v5 I2 t3 Y        part, GlobalDistObj, assignLObj:object;row,Lan:integer;; f, Y3 D0 o( T1 w2 _% ?
do
  e5 k; D. B  p) I7 ]        Lan := rootfolder.Internal.Tools.AOLlanguage;
2 X% @: r( O- v& a1 J        if current = @.Destination -- else return
# Q5 h5 H6 x; y1 Y8 I        then- }# V0 Z4 i& ?+ g
                @.Destination := void;
( L- F: d( y3 |5 {* z                if @.occupied then4 @! Q- o) ]/ r' n; \: @; G
                        part := @.cont;
6 ^: b. X- v5 b9 A- j                        @.transpOrder := void;' v' v! ~% ~9 B; V! r+ {" S
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,, y% G5 ?3 F+ e1 {
                                @,root.eventcontroller.simTime);% y( r0 M! _! S5 I+ P; d0 X# |
                        @.HasOrder := false;
! q! L$ `# z3 ^9 W# Q! Z                        @.DrivingHome := true;1 y6 k8 c# X8 E0 b9 h! b) y
                        rgManager.tryToStartTransOrder;
% G7 q% e# V- R& R% G* ?                        if @.Destination = void
- M  h, v- [1 c) U                        then -- no transport order for vehicle @  _: n" _+ Y) a
                                @.Destination :=/ M6 e8 i1 L5 L: @
                                rgManager.nearestFreeStation(@,track.~);4 R! C7 ]0 g+ ^" O, c+ [7 W( O
                                newDirection(@);   0 {' N6 ]5 n& o
                                if @.Destination /= void then
6 B- f3 u$ b% P7 [" ]  R9 f                                        @.Destination.NumReservation :=
3 M, r6 b) b' Q7 j) |& Z3 T                                        @.Destination.NumReservation + 1;
) V8 d6 D' _5 O( A3 D+ G5 c                                end;. C  I( N  e3 t
                                @.CurrIcon := "drivingHome";% n( Q% N$ f, \: A; ]
                                @.DrivingHome := true;$ M& I0 k. ]1 W2 C; t
                        end;# \  g) Y) D: d% Z
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station6 m( K+ Y. [3 X2 g) d/ M+ G$ [
                        part := @.transpOrder;" K. h: @3 m/ T( W
                        part.move(@);-- load part
- Y  h* K! p0 S                        @.CurrIcon := "load";& i# o* ~# O, @! s5 }4 O" X/ \
                        GlobalDistObj := part.globDestination;
$ O, z9 g& x2 e3 t! N) \, U                        assignLObj := rgmanager.rgAssignL;
( P- b3 d& F. i8 x                        row := assignLObj.getRowNo(GlobalDistObj);
& @" t* e, t2 R4 o                        if Row = -1 then -- since 70
8 ~& w+ x  Z+ q. @) C! H                                if lan=1 then6 Z( ^* b+ `$ u2 |' j! Y8 W, o
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),$ X  X1 B! S& d' q9 d- I& u3 v
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
; b: k9 ]  M4 z, t* z0 q* N                                else; L' @1 H5 w6 F/ |" `
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),- z$ g6 M, t: ~' s' a
                                                to_str("in docking station: \"",?.~.name,"\""));                               
: j' Q' d1 s2 Y                                end;
. m5 b) ^' p. |$ f( D                        else
; Z  k% l. E  G: r! Y                                @.Destination := assignLObj[1,row];
- P" v' d" R  O0 L                        end;                        9 ^) Q" J& f1 ~$ v
                        newDirection(@);1 b4 l$ Z. \& l1 e+ B5 r' q
                        @.HasOrder := true;
" t8 n2 X. t; h: o6 o                end;
8 p( [3 [. `3 J) t0 ?' Z% l& Y1 M        end;
; O' z- `) c4 V0 Cend;        -- of the method
$ Q/ O0 w+ |' O" H$ U% v( s7 ~
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ' }) t% v+ b/ {, j
: ^3 j7 O% B4 b- c6 c9 S; T( o3 V
这是AGV_putin中arrive的method。. z# M) X5 }0 m% v. D

( e9 G9 n. G+ G0 x2 f: G当到达物料速度越高时,这个报警更多,3 Y  ]: I- H3 R! _
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。" n& H" Y' ?( I% s
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
3 x; i1 ]( E$ F7 X% ?. `
% A7 T% H4 A' h另外一个小建议,就是move,所有的move都可以这样, t! t5 `6 J9 n/ ]6 [9 r
if not move() then debug end
4 G/ E" Z# d. Y* X% {. Y这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
$ b* X1 Z  ~* }3 Wplant simulation中的free libraries有AGV模板,/ K2 {) }3 B3 t
里面也有案例。
4 M* y) M5 p* y) Q2 _7 @% c9 H- |" x我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。+ i5 S4 I$ k9 U# p0 a$ i

% w4 X9 f) j$ U) C4 K; [" n+ f. V我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
/ V% C* a! U; o' [' Q' I3 G
: Q2 J1 x: K" ?- e5 A! Y那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
6 e9 I5 t: v* E2 x3 u- s( b& L9 z这是AGV_putin中arrive的method。
$ o1 \7 Z3 ?& S( [
* f/ c# y! p6 ?3 P& Z6 c当到达物料速度越高时,这个报警更多,
  O$ ]" \9 U4 X! |
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-25 10:41 , Processed in 0.017304 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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