设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5337|回复: 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; J8 C* e! o) e$ o' i" `& v2 v6 D
*/
5 a5 }+ T9 G* X/ X2 Lis9 _- V8 p: u+ B; H& D. E
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;: ?& o' B  s7 E; z
do
7 ~$ t! T, e) c1 U' u5 h9 I) N        Lan := rootfolder.Internal.Tools.AOLlanguage;
  {2 e6 p; ?9 b% Q/ O* x# K( d        if current = @.Destination -- else return
% ^! V& G+ y3 D+ D& r6 j        then
6 l, D9 r, R0 P- [6 f! A                @.Destination := void;( e& x. s5 J& ~9 I5 ^( k! m: D
                if @.occupied then
0 |9 I, M. B  d, @0 G. o& T                        part := @.cont;
( A6 M% i& x7 T% B                        @.transpOrder := void;% J! Q% @- n) b6 `9 b
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
% {5 L  l  E& n3 V0 s" D) U                                @,root.eventcontroller.simTime);
) N( |  g: b% n7 K2 r                        @.HasOrder := false;
5 E* j" }  {" H" H3 d. n                        @.DrivingHome := true;' Q) q! u& E0 H) ?8 z* q/ s
                        rgManager.tryToStartTransOrder;
, M" J7 M; d0 W  f                        if @.Destination = void
0 M0 [2 f2 ^: u                        then -- no transport order for vehicle @
$ O4 Z7 c' d! A" D                                @.Destination :=* y+ P# f) j5 z
                                rgManager.nearestFreeStation(@,track.~);; h6 L' X2 I+ o* A  T
                                newDirection(@);   
, q8 ^' w1 _7 ]( u( U                                if @.Destination /= void then
$ M. s% x. v1 N2 w' k1 J3 K/ [                                        @.Destination.NumReservation :=9 m% y1 s0 S9 O0 z, [: B
                                        @.Destination.NumReservation + 1;- V) j5 F+ N+ g) j% `& ^* V
                                end;. R. _/ q' k7 u- `; Y8 Z! M
                                @.CurrIcon := "drivingHome";
7 N8 V4 X2 z  X' u' V                                @.DrivingHome := true;" N1 G( \! m  w# @
                        end;0 S& T1 X1 k7 I7 [/ _: E' F: r
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station8 i; R. Y" \8 b- {. }) k
                        part := @.transpOrder;
# ]$ d9 @0 C, m- r8 {2 _                        part.move(@);-- load part( l5 o0 a0 d' p* l1 \4 R
                        @.CurrIcon := "load";
) {$ s& B: h4 C8 w* @) V" N                        GlobalDistObj := part.globDestination;6 d3 Q1 o2 z' }
                        assignLObj := rgmanager.rgAssignL;
$ V* U2 f; w( M+ z                        row := assignLObj.getRowNo(GlobalDistObj);
5 [& S0 q+ F" `8 a4 w% ~                        if Row = -1 then -- since 70- y* N. m! c. e% [: r
                                if lan=1 then' c9 O9 ^% ]+ D3 o) H
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
9 b9 q# @/ L6 q2 v. p                                                to_str("in der Andockstation: \"",?.~.name,"\""));
# |! l7 `( Z2 q9 |  A* S3 z, N                                else1 B: m7 f$ x( A$ u7 @8 b9 {0 _
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
* j; o( a3 g  Z/ x# c                                                to_str("in docking station: \"",?.~.name,"\""));                               
& ]% _8 z. i# R/ Q5 X2 n                                end;3 v1 W& K" i: M3 O6 }* p, {+ g
                        else
" X+ g8 E' \& a  o. b                                @.Destination := assignLObj[1,row];5 O) c2 \7 X2 ^
                        end;                       
- X* q9 v7 O1 [1 P                        newDirection(@);
5 C# {$ l, H6 L$ S5 o                        @.HasOrder := true;1 g, J9 _4 C/ e! y3 i7 C# a
                end;  a4 G7 X, P; ?" v0 u
        end;
0 J0 f5 K, o, O: G8 X9 N, K: {$ `end;        -- of the method
( I$ s8 k' z' s- l. f
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
7 ^( Q0 b  o7 `7 ~6 _
1 O9 N: D5 N. }! h3 X& T* ]这是AGV_putin中arrive的method。
, ^6 X. {, k1 n5 u' u" X
- @) C; f8 O: t3 a  k7 M当到达物料速度越高时,这个报警更多,
6 [8 d# @+ @! U5 _. b' m: I可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
0 V% P" X& _) A, @9 B& R程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
" T( e" ?$ v5 C% O
3 P5 R; \% a" p" K4 u. U: y另外一个小建议,就是move,所有的move都可以这样
. c: e" |) T$ X. P$ _1 Yif not move() then debug end
- w# ^# o- l7 R2 {这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
5 |8 S% Q$ v0 Y( i$ Nplant simulation中的free libraries有AGV模板,! d+ J2 }% K# {+ Q& V
里面也有案例。3 A) p9 F. L7 G2 X
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
5 w2 X6 w, ^3 w" X8 T
/ C& e5 Z. S, C( l7 r& k$ L我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 " ^, Z/ C/ P0 H5 z

9 X$ V: R" N' W9 O' ^! g那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
! o% o) x8 s9 u; W  c2 v这是AGV_putin中arrive的method。
' J; r; d% a# a; Z
' a% f( f& ?( p9 B+ c) C* y0 t当到达物料速度越高时,这个报警更多,

1 O" K: B$ {& Z另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-13 07:25 , Processed in 0.021546 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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