设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8621|回复: 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'; @  Z7 N$ I, n9 f
*/
3 N: `4 `) N% h# G$ n. \7 W! gis
0 f1 ~  v  B8 q: l# V        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
' R5 W' K1 g- U/ ]& Odo( }/ G5 O2 F0 S) Y
        Lan := rootfolder.Internal.Tools.AOLlanguage;( W& E  ~/ U6 @# {) r7 U
        if current = @.Destination -- else return# S; e$ ^  U9 W  R
        then- p: S: w% n0 a" b2 S
                @.Destination := void;* w3 D! P: j" @, t
                if @.occupied then
; J% K, \+ _# r5 [; {                        part := @.cont;" N, ?8 V: I5 O* ?
                        @.transpOrder := void;' z9 c0 r& b6 m8 p' x
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,- H3 ?3 A3 i7 W( s% V" W0 B
                                @,root.eventcontroller.simTime);
! f6 j  z4 A6 p# ?8 H4 Z                        @.HasOrder := false;
0 S! l. D1 d, R8 J- q5 \                        @.DrivingHome := true;/ e5 {9 }6 q- I: s. X3 d- B
                        rgManager.tryToStartTransOrder;
' H0 `# g: O! ]- O                        if @.Destination = void; ^8 t, e2 T0 O
                        then -- no transport order for vehicle @. s" o& h% Q! y3 k
                                @.Destination :=0 D+ p- Q0 r1 }; D* Q6 r
                                rgManager.nearestFreeStation(@,track.~);
2 e1 ^  a( f* m/ q& U6 [$ e                                newDirection(@);   
4 x, L) o# v) B5 K& l; k( A                                if @.Destination /= void then
, I" S7 }; _4 J4 \8 l                                        @.Destination.NumReservation :=
8 f5 {0 z2 H8 X' l                                        @.Destination.NumReservation + 1;+ V3 A: t" j, r7 Q6 Q9 t" s9 X) B
                                end;
( x! o6 ?) e- a) F                                @.CurrIcon := "drivingHome";
2 c. }# `" k$ R4 Q# x! `0 `                                @.DrivingHome := true;
7 _1 q# J' s$ q2 w6 c- W) }                        end;& K& b% l5 r# j* K6 \& t
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
9 ^0 r" n- }" d* Q                        part := @.transpOrder;
$ r* e! c. T& o$ I. ^; ^+ Z                        part.move(@);-- load part1 F  ?0 K6 z+ I' c
                        @.CurrIcon := "load";
3 ?: N. v/ k" |  W                        GlobalDistObj := part.globDestination;
1 @9 G7 [+ A! c                        assignLObj := rgmanager.rgAssignL;
/ M' _, B' s/ b  r4 P6 d) D                        row := assignLObj.getRowNo(GlobalDistObj);
+ ^4 \$ H" J7 S4 n  E, q" e                        if Row = -1 then -- since 70' `' y' ?! I% m( X
                                if lan=1 then! p0 h; a# b. p* F6 i
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),, q3 @& d+ J! j8 [+ G' Q, A) O
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
- X( e1 M2 Y$ \7 M# X                                else
9 I' X+ d+ Q" `4 F                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),& Q( _( D# i: e7 U
                                                to_str("in docking station: \"",?.~.name,"\""));                               
' Y0 f* J' r. N5 V                                end;) I7 n5 C# L% G5 K4 T" |: T7 W
                        else
0 V, n* c7 C# G8 A4 f" o                                @.Destination := assignLObj[1,row];' b$ k5 N' T  K, q# v! t
                        end;                        3 w5 X4 M, V, W. Z. M  s
                        newDirection(@);
3 D! {7 C7 i- N* w; u                        @.HasOrder := true;+ K6 O' _" b% }! V# |9 O$ \
                end;
3 l) g) e! \( x) ]$ Z9 v( d4 K! m        end;
  V3 \" M5 C; g% {& Hend;        -- of the method! R0 m0 i2 W2 n) M5 b" ~+ O; b
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 4 S9 i; K+ v$ g9 Z2 z

: ~7 S9 B2 ?* Q8 J# Y; l这是AGV_putin中arrive的method。
) L. S& M. p  [# @# Q5 i. G. v/ H1 z3 d5 M
当到达物料速度越高时,这个报警更多,  {% p2 W# e" q( v: ^, w
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
. G: ~& n4 e8 ]5 f9 p' ?; p0 h- e6 ~程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
" G0 R8 n0 B3 z! e
8 T8 ?7 `7 c7 L& z8 }5 Y另外一个小建议,就是move,所有的move都可以这样1 c# p4 F. x, E4 h( o/ I+ g6 }
if not move() then debug end
" B% G6 `/ a5 d( q( W这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
0 d9 q; l! V! i: x; n* \plant simulation中的free libraries有AGV模板,' Z: ~& h3 E4 w6 [
里面也有案例。
$ f' @; f2 t  a$ M% g! P我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
7 P  ^; I5 C7 S1 j" [2 l, @# v! z0 I" o$ L% x0 Z( E" r5 h2 |
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
. x1 w4 X; U3 E# n* _
' N" v/ W+ ~# e  Z  N+ Y' e4 L那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
, k) M0 _# J0 @这是AGV_putin中arrive的method。
5 e* k) Q; f1 M+ @/ W3 X
- Z$ ?+ p& J  X6 c0 d5 @# n9 `7 k, M当到达物料速度越高时,这个报警更多,

9 Z9 P0 n' x* e$ L: Z另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-16 12:53 , Processed in 0.014704 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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