设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9570|回复: 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'* i( v- u( v' E0 j+ S( X
*/$ v6 q% q) h& b
is0 M( ]- Y% o, t# M* Y8 R) D* N0 y
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;7 t- q8 k6 w2 t! `) |1 P' e
do
2 s- V; n5 p9 l9 k# f; i1 K        Lan := rootfolder.Internal.Tools.AOLlanguage;
& c' k5 o$ i# c$ X$ |        if current = @.Destination -- else return5 I. S; \' K5 R0 t# m
        then
2 u( [+ D. d* {                @.Destination := void;
- O( Y1 [$ B6 E/ H/ M0 E7 }5 n                if @.occupied then$ O: v" I7 m( }) K
                        part := @.cont;7 D+ `" ]5 }- d( o3 w
                        @.transpOrder := void;/ L% {- K+ k1 U7 J: q; A
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
& F2 i4 `* h5 b                                @,root.eventcontroller.simTime);3 N3 q" p/ ~+ m& L& u6 Z
                        @.HasOrder := false;
( P8 \3 ~9 \6 N                        @.DrivingHome := true;5 y, U# c1 u7 W1 M2 N0 B$ x
                        rgManager.tryToStartTransOrder;6 P9 |* Q- [8 @" P) R; z
                        if @.Destination = void' `0 m9 q( Y; y6 a: N
                        then -- no transport order for vehicle @
( j1 D; z* O$ q$ N. n                                @.Destination :=: c8 m- v# {7 t7 V2 l
                                rgManager.nearestFreeStation(@,track.~);- p" j9 Z- t/ b
                                newDirection(@);   8 S+ ?5 ~7 Z# F5 U7 a8 i/ B
                                if @.Destination /= void then3 R. G; t$ Y) E; r3 F4 C2 D
                                        @.Destination.NumReservation :=( K5 m. `: a7 a
                                        @.Destination.NumReservation + 1;8 O- j$ D4 o1 E, F
                                end;- C$ }/ y( ]% t+ a8 z/ q/ A9 p
                                @.CurrIcon := "drivingHome";, \' O  ~0 {' p2 M# v) E, O
                                @.DrivingHome := true;
) ], ^" M1 j, k" @- m6 ?9 S                        end;
" I7 N( D/ V6 a3 Z9 z) k; b5 H                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
) T& Y/ o2 J& |7 ^                        part := @.transpOrder;
, o: E1 I- J6 e; b4 |# _: n                        part.move(@);-- load part! @" F1 U$ }7 q4 n
                        @.CurrIcon := "load";
2 m  r/ Q) e2 S2 t0 ]3 q                        GlobalDistObj := part.globDestination;! u! z; D1 V; D4 s) |
                        assignLObj := rgmanager.rgAssignL;' p2 _' }( J6 n7 X3 t/ V! k
                        row := assignLObj.getRowNo(GlobalDistObj);
2 J2 a' L4 O* B                        if Row = -1 then -- since 706 h" [, {4 h5 a; X  ?8 `. \
                                if lan=1 then
+ E' h6 F; T4 y# o                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),  y3 o2 c- l8 B( M8 e
                                                to_str("in der Andockstation: \"",?.~.name,"\""));' V9 a6 d4 T( j* k# z7 o
                                else
6 o# B3 ]: u) w; W/ I                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),' D' X1 l( `# `# e6 g
                                                to_str("in docking station: \"",?.~.name,"\""));                               
+ z4 R2 W( e2 Q6 t" ~% J3 d* X                                end;1 `* H" {4 e0 W
                        else$ p6 R8 y! o; ?( l; F, r
                                @.Destination := assignLObj[1,row];; R) U3 T+ a( O' h- W7 Q
                        end;                        : b1 d" J9 B- q& C$ [& ^
                        newDirection(@);
, S: J% K" Y" u. S( s% k, Q- h' W- x                        @.HasOrder := true;0 V4 i  w" X9 B2 Q1 d
                end;
: f  @# B4 Z0 ~- T        end;
/ K7 u  ?4 q6 O1 r% Oend;        -- of the method
! `# u# N/ F+ S
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ' _+ m( A1 H( ~& l- O

' y5 C: q: o/ g' a6 Z) ]9 U* t+ Q这是AGV_putin中arrive的method。
) T- k: G$ s. D# t- V* n! I
4 M* X7 z  I6 I3 {+ d当到达物料速度越高时,这个报警更多,2 c" J, s( ?' v8 n, t1 C
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。1 Y2 }# \3 y( x0 |. w
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?2 p( J/ v. k3 D2 t6 k9 z- Y
0 I) ]5 V  D% v: R: ]4 e: R
另外一个小建议,就是move,所有的move都可以这样
  Z1 @1 |4 N0 M( @if not move() then debug end
* n( x: h- z" G0 ^; O& b这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
( m* Y# }2 G. X/ f7 v. R$ splant simulation中的free libraries有AGV模板,
6 I* |. X" V) T里面也有案例。2 ]" Q" C' U; O3 E
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。, D# q$ L  O: S( q
1 y2 j( ?3 e+ L
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
: v0 |! L, x" x7 E/ y8 y, }& g
; n  C/ S8 x+ q7 u& V那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
" b' _( s2 E& B! ^% b& t/ z这是AGV_putin中arrive的method。& `$ n4 q1 G) o3 m3 w
+ U6 [4 i3 `% n/ t) `; R
当到达物料速度越高时,这个报警更多,
% V# |6 r9 Q( G% A# k& c5 K1 F
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-8 20:37 , Processed in 0.018055 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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