设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9706|回复: 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'
6 Z5 k+ d6 h2 D% R! m) \8 j& I*/
6 c4 Q; z! B" W9 ]; o% p/ @is! c" G/ W+ p' q1 V/ m7 h# ]3 J
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;+ U/ ~! T- T* P$ v2 z5 R
do& \( w5 s! d8 S0 ~
        Lan := rootfolder.Internal.Tools.AOLlanguage;
$ `! }  [2 g; _% x2 s        if current = @.Destination -- else return
' f" z- X* K3 u8 \        then* R% R7 y  r2 C. H5 ]& J) C
                @.Destination := void;/ ~% p' U7 h! y' J- r9 j
                if @.occupied then
3 T1 t  u' E; D$ t9 a                        part := @.cont;
2 I9 l0 t" _, ~7 j* }                        @.transpOrder := void;
* z# s3 O/ e* D6 r                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
! w! |1 _4 r2 G& [                                @,root.eventcontroller.simTime);
$ H3 w0 D) o) f/ `' |) b) t                        @.HasOrder := false;
5 f" C: m( f; c: a* h                        @.DrivingHome := true;
9 N' l# a# v5 p                        rgManager.tryToStartTransOrder;6 l2 L3 p' n  A# e
                        if @.Destination = void
  d* F9 C% f; d; I- r2 B" Z; O                        then -- no transport order for vehicle @
" I% h2 c$ L3 K                                @.Destination :=
  W8 |- d: d6 t2 z6 {9 {' k& P                                rgManager.nearestFreeStation(@,track.~);& S, p; x2 \& Q
                                newDirection(@);   
& m6 Q  V9 o+ S% n+ Q! Y                                if @.Destination /= void then  z6 b& r/ C* f7 a* O, z
                                        @.Destination.NumReservation :=: b, r( _1 a; X' B  J* U
                                        @.Destination.NumReservation + 1;
: `, k5 x0 M  v& e: N$ \7 o2 Z                                end;
0 ~6 t) ~: _, w4 h( ]: g                                @.CurrIcon := "drivingHome";
+ h$ f, d* L7 ~6 h6 z. A# u1 n* S7 }                                @.DrivingHome := true;
# ]7 c" S5 t) v3 s6 h                        end;
; d: ]; _# P. L1 F2 I                else -- the vehicle @ is empty, both vehicle and part are in the same dock station; s7 D* d% p( T+ Z* J3 `
                        part := @.transpOrder;
/ y0 Z1 I8 x' u& ^3 O) B0 t# d                        part.move(@);-- load part# @1 t3 x+ _) k( I- S
                        @.CurrIcon := "load";
+ M" X1 `! o  K) e' }/ R) E                        GlobalDistObj := part.globDestination;
% {; `" g& m  \4 R$ Y                        assignLObj := rgmanager.rgAssignL;# H8 U9 h2 U8 V* R" [( F6 n+ K
                        row := assignLObj.getRowNo(GlobalDistObj);
! C! W4 C; b/ H+ j7 M2 J: d                        if Row = -1 then -- since 70
  P: f- d1 l# y% n2 Y5 {$ n                                if lan=1 then
  V! M1 t7 d. o2 m+ M' f                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
7 i* o- K& p/ x" r) I                                                to_str("in der Andockstation: \"",?.~.name,"\""));0 a8 P: `) @% \/ D8 K# `1 M& E
                                else! `9 o/ I) t8 {  w8 I; d. f
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
2 C3 t" a: j. R$ s/ V% s                                                to_str("in docking station: \"",?.~.name,"\""));                                " N5 v2 d; H1 G8 }
                                end;3 m  U4 q6 \# u( z9 B
                        else$ c  _/ l6 v+ M* {6 M) ]$ l+ K
                                @.Destination := assignLObj[1,row];
+ c, r; r! t- Q0 g. j1 N6 h                        end;                        8 g2 `$ M" t/ ~3 ^$ o2 g
                        newDirection(@);$ C! Z5 s1 r+ C0 n) @2 I$ l8 @
                        @.HasOrder := true;
% b' O6 d7 [0 w8 T/ v, ]                end;4 C+ Y, E: t, q2 H% ]- o! H6 [
        end;
' A% \) f, X( f! T. {5 N6 u3 \5 Xend;        -- of the method" _$ J7 }, i$ Q3 F- d: @
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 . U( \" ]9 G" t; Q, i5 n  T% ~& I! K
/ {* q  {( A4 g0 B
这是AGV_putin中arrive的method。2 z' [. M# y6 r* i/ {1 @

* ?* G' g! U  N% Q; ~4 s6 X/ ^& ]当到达物料速度越高时,这个报警更多,
& Y, R) p: E- s可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
: R1 z" q! L/ b* n" D, ^* r# z程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
+ e3 e) G5 ^4 Z  z  Q* B* f; V+ r5 x( a
另外一个小建议,就是move,所有的move都可以这样+ G) q2 [0 S  D( l) M+ y2 {
if not move() then debug end$ q4 n; A* ~! j% `& w5 ^
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。0 U, O5 S- o8 z1 U9 ]5 A  |# K
plant simulation中的free libraries有AGV模板,
, U/ Q1 M$ n  w$ G2 r  l% d里面也有案例。) L! E4 J$ u, M. |5 \
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
, h4 \( ?6 u% p. l( }" N
* W8 W: {; q& \1 B8 x7 V我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
. S6 ]  S" ^* ]. l/ S0 ]( s: [( Y5 y2 p0 _6 j
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
" c" y: k$ n# N这是AGV_putin中arrive的method。, R) F% L* e0 z/ w1 A
% o: _' w  i7 T2 @# y5 q$ }+ G
当到达物料速度越高时,这个报警更多,
. |+ [0 m% L5 S
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-19 10:49 , Processed in 0.030782 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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