设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9588|回复: 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'0 ~1 O- f2 |1 S  u, T5 L2 }; S
*/
* ?0 Y, u# z% ~1 C2 jis
# L5 @6 T1 d' i( n        part, GlobalDistObj, assignLObj:object;row,Lan:integer;0 V6 J% S4 T( B/ r% m
do2 w7 T+ F4 w) z5 N. x' _
        Lan := rootfolder.Internal.Tools.AOLlanguage;
0 a6 E' O* n6 s& S0 g0 I1 q/ T        if current = @.Destination -- else return
% i1 e* A5 @! G/ s7 `        then
: `- P9 {' D, _                @.Destination := void;) w, C; U% w/ q# e
                if @.occupied then
* i( C3 U3 a& I1 o1 V                        part := @.cont;! v4 X3 K  p/ n8 _
                        @.transpOrder := void;
" z6 }# E+ Z" r+ @" q+ d5 T                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,3 _1 V6 |& g3 T1 J* W! ~
                                @,root.eventcontroller.simTime);
* P; o, m  U6 L9 G* l                        @.HasOrder := false;' S4 h) L5 M- b, E7 n3 V
                        @.DrivingHome := true;+ Y/ w/ H& S# v$ E7 r5 X
                        rgManager.tryToStartTransOrder;( e# g0 I) [0 r2 t: o0 A& G
                        if @.Destination = void
% n( j8 C- B9 h4 }; c5 @/ h                        then -- no transport order for vehicle @1 p6 X# F$ v0 \) c
                                @.Destination :=
! g  v7 b4 X  \- ~( y- d                                rgManager.nearestFreeStation(@,track.~);
3 P2 ?5 s0 u8 D) t' j& v& n6 z" `, h                                newDirection(@);   3 N2 y; W8 U1 Y( Y3 C1 [- b4 T* Y5 M
                                if @.Destination /= void then6 v6 L# A; V1 m) r" j
                                        @.Destination.NumReservation :=4 h& R& J* O( V% ~+ h' f$ _! t; M
                                        @.Destination.NumReservation + 1;# I( A7 y1 u+ E4 g
                                end;
6 b' W2 |2 B/ i& Q% i( v                                @.CurrIcon := "drivingHome";
- v7 R! H/ P$ e% b: C/ ]9 R" _                                @.DrivingHome := true;. t; N( u& f7 U; n6 {3 R% \1 Q/ N
                        end;- ^$ j8 t6 `% L. X
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station2 d8 G! ^' M" t+ b/ g6 v
                        part := @.transpOrder;
& ^- H, X; \$ W9 b( B                        part.move(@);-- load part
/ O( y# \8 A7 {4 [                        @.CurrIcon := "load";: m# g% q/ R8 i  i- @& }, k7 m. O0 g9 N
                        GlobalDistObj := part.globDestination;
9 r" s$ {+ `2 j                        assignLObj := rgmanager.rgAssignL;, m) V6 ?+ f" Q; L6 j
                        row := assignLObj.getRowNo(GlobalDistObj);; t- V# y. N( A( ~
                        if Row = -1 then -- since 70* T. ?8 y( T! V9 @9 a% J
                                if lan=1 then
; _, `0 [, t/ F0 d0 _) F6 Z                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),/ t( n* c% J# [
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
! ?) Z# e! N) ~* v                                else" d) n" n( @6 |4 K- g- U0 F
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
6 p: }. X9 u  c5 Q" ?: K                                                to_str("in docking station: \"",?.~.name,"\""));                               
( z) H  C8 y2 T* ]0 B0 D$ e, P9 l                                end;) B' T! j, E4 p# a$ W! O0 o0 q
                        else% I' |1 q2 K  c2 c& ]
                                @.Destination := assignLObj[1,row];
$ \% c2 ^) n, ^' n                        end;                       
3 v  C1 l' g( K; v9 j7 h                        newDirection(@);
1 a8 S! z4 }! t4 a9 S& i' W1 H1 x                        @.HasOrder := true;" X; c" C$ \2 D$ O7 q+ Z0 T+ S
                end;
  L7 _0 Q9 l" V9 K" H/ Y        end;
+ U! K' Z& m! A* E, j. i+ Wend;        -- of the method
: b7 [, {2 \9 `, r4 J/ ~! B9 a
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
) ~4 x: [& a$ P
. [. T" n$ i" P4 d这是AGV_putin中arrive的method。5 [2 q% W) ?- T9 S; K; u0 k$ u

/ \4 y. e$ u4 k8 t0 ~0 V当到达物料速度越高时,这个报警更多,9 w% |8 H( S, M8 D8 B) @! |
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。2 j  e& U3 E& A( m7 C5 J1 K
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
  D3 d( s! c3 L+ }6 A7 ]" }  x8 f
另外一个小建议,就是move,所有的move都可以这样$ c$ C$ T' d  q  P! _- d' r: A
if not move() then debug end/ T$ d% k3 s7 \
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
# ]. \& f3 M% M7 k9 U9 Q: c% d  Qplant simulation中的free libraries有AGV模板,! _8 I; b4 g& h$ a. S& G$ i5 ~
里面也有案例。
5 j$ |, Y# a7 M9 I我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。; [% D% e! v6 o/ z) r
/ Z* h* h- f2 G8 [) B
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
$ z& o9 S# M% J
5 ~9 d: k. b6 E5 q那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 7 A/ B. P. T0 W9 R9 U
这是AGV_putin中arrive的method。( ?3 z# C/ a0 G! L* t3 ?
6 L4 w4 l5 @( C6 Y+ Q4 a: s
当到达物料速度越高时,这个报警更多,
7 U: D1 u2 d3 Y7 _) B* J
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-10 05:29 , Processed in 0.021197 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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