设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8680|回复: 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'
/ W; @) `" ~" N# }5 K3 Z*/. j5 V7 r1 G/ Z) c7 l$ p5 g
is
8 ~2 L. e4 D( t! T( B9 Q+ x# P        part, GlobalDistObj, assignLObj:object;row,Lan:integer;+ l8 z9 n) e, @$ Z7 ^, X
do+ z; l. \, g6 H1 g- k0 @+ ]$ R* G
        Lan := rootfolder.Internal.Tools.AOLlanguage;  k( h9 g- |0 W; U: X0 K
        if current = @.Destination -- else return1 i8 k* p/ y, }
        then/ q) W+ v! L. g  M# M# ~( [- M/ _) B
                @.Destination := void;
- G( W! U. E% m2 y2 l1 K                if @.occupied then; R) ^' |" F/ c, r2 [* s
                        part := @.cont;
, i9 Q, _. l6 _1 O; O, P                        @.transpOrder := void;3 E" r6 W, Y( b, Y' Z% ], o) H
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
2 q- J; g3 T- C* n; H2 u0 q, I                                @,root.eventcontroller.simTime);
/ e7 @) Q6 _8 |3 l9 t                        @.HasOrder := false;
7 i* \) J: L6 p                        @.DrivingHome := true;# f! [$ {+ Z3 ~+ i  n0 X
                        rgManager.tryToStartTransOrder;6 X* ~( I" e! H  k1 b
                        if @.Destination = void: P  x) L3 K7 z) E5 a* j
                        then -- no transport order for vehicle @" P4 L' l' L& p- U& G
                                @.Destination :=4 d' Q# [* N' h
                                rgManager.nearestFreeStation(@,track.~);  J& d5 u* t. q& H
                                newDirection(@);   
) V! Q. e5 W  F                                if @.Destination /= void then
& z# E( c# t# Y9 ~                                        @.Destination.NumReservation :=
. L3 q" S" t: z6 K& I- e. r  C4 K                                        @.Destination.NumReservation + 1;1 W( v* ^: e: |3 n0 M7 ^
                                end;
2 C; C  L3 ?5 S7 O' b                                @.CurrIcon := "drivingHome";; b8 f* O. o3 M" B
                                @.DrivingHome := true;5 R/ _) o: ~/ h* Z+ A
                        end;/ C9 W2 G& q2 U0 d# Z# Y
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
1 n& y5 o9 I4 K                        part := @.transpOrder;1 W+ o( j! o9 c
                        part.move(@);-- load part
- b7 Y8 V  k+ N9 C& S  W- E7 O8 g                        @.CurrIcon := "load";3 d4 T' J4 z' m/ k* y
                        GlobalDistObj := part.globDestination;
0 F4 X/ V. G! G2 `' Y, C; v1 b                        assignLObj := rgmanager.rgAssignL;! A; w# M$ L. x  @; M% f
                        row := assignLObj.getRowNo(GlobalDistObj);
, |7 b5 G! X3 j( u                        if Row = -1 then -- since 704 w* M& K* t, e# q  ~6 |" U
                                if lan=1 then9 w- r# z) F5 l$ o- y
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),; D4 T- o4 |" Y0 f0 l2 `) `
                                                to_str("in der Andockstation: \"",?.~.name,"\""));& Z3 B2 W* m. J
                                else. T: l5 i$ O0 w, B
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
* Q5 v7 n% W& k+ H% K                                                to_str("in docking station: \"",?.~.name,"\""));                                * A5 K1 c  u6 T# h7 Y
                                end;3 \! K: b9 `4 `9 v9 t
                        else
8 p: y! y, I! K/ z) f* N5 E                                @.Destination := assignLObj[1,row];  I; O: R* z1 k; l" n  m0 M
                        end;                        2 b- C7 u  E! q
                        newDirection(@);* C; N2 b, R5 c5 j2 x! G1 c
                        @.HasOrder := true;
- k3 J1 J% q0 Q4 Y                end;
! L# Z( Q9 Y4 q' H" X        end;
5 K3 @9 y0 x" W- z- ~. z2 E5 }  g# ?end;        -- of the method
- q, V+ v5 B* p, U* e$ ]
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 , C3 t4 J/ W4 E

: E5 g$ [( M6 [6 p; g这是AGV_putin中arrive的method。
: P7 Z/ g% ?5 u, H" V8 F  o8 d* I# A
当到达物料速度越高时,这个报警更多,
3 Z& Y2 E* U  f2 q可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
6 Q( f  O* v, I7 U程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
6 X2 i0 c; e# e% C: C
, A, |/ e( D  |另外一个小建议,就是move,所有的move都可以这样9 l7 M9 x  ^* R% A- T! T; O
if not move() then debug end
. e7 `- {& U7 _7 H( S这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。9 Y- n" d3 @, b/ b! `/ E: s
plant simulation中的free libraries有AGV模板," |, J' A/ s, E+ {$ K& Y' S0 e+ d
里面也有案例。
0 `- u4 o6 x8 T7 X) s我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。* X! o2 G8 n  S* q4 r2 o! Z" {

0 [0 x6 C: Y( O我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 + s! I0 I. A( z8 b

- J: h* M. |: e4 K5 _8 |那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
' u9 m7 W  E4 X- w- f8 y5 f4 G: H这是AGV_putin中arrive的method。
" M  B% J" m7 G& y! h
7 @: d: W4 j0 J( e# Z3 m当到达物料速度越高时,这个报警更多,
7 f  v4 T! k3 A( s! ?3 P
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-19 19:17 , Processed in 0.020579 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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