设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7322|回复: 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'
/ ^# n( _4 n, F7 b7 \*/
/ V. j0 E4 L* w/ h. T4 r# e% e4 tis! g& \4 i  \! B: z- X1 B* W6 N
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
: c0 e1 k% h+ F# N/ R) r+ L0 ndo
  i& y5 i3 ~7 [        Lan := rootfolder.Internal.Tools.AOLlanguage;" `; b$ ?- Y' M9 S9 S
        if current = @.Destination -- else return
0 L: S- j+ `( P" @' S. p! m        then
7 |: t% j9 t- X- }  H( m( S1 C1 d                @.Destination := void;! S+ p' s7 ~4 o3 B! ]: S' o
                if @.occupied then
5 r) V9 b. O# M" E% J( Z- z6 R+ I                        part := @.cont;
& e! O8 s' W! U: h( Q. `  e                        @.transpOrder := void;3 i. m$ e( P& t  b
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,1 N2 e2 P8 D5 c% i9 M* o, c; l
                                @,root.eventcontroller.simTime);% J$ y( C8 U# o
                        @.HasOrder := false;5 P# r0 f' p, Z. H% R" o
                        @.DrivingHome := true;
, t/ L+ H, }- ^* p                        rgManager.tryToStartTransOrder;
3 U( q. |  B2 f3 A" N. o0 \# x: i/ H" O                        if @.Destination = void
* Q( S% a8 ^* J3 [% R' ]! J- t                        then -- no transport order for vehicle @
% G' P5 T6 @( r1 Q                                @.Destination :=' e; s* R, I, ^: w3 i1 S  B
                                rgManager.nearestFreeStation(@,track.~);
0 L$ s! ^. f. F% g2 D: N* K                                newDirection(@);   
# P( C7 p% q; Z. n                                if @.Destination /= void then
+ I$ ?( y7 f" V4 k% F# j& v% G% [                                        @.Destination.NumReservation :=
$ h; i: L( Y9 c7 I                                        @.Destination.NumReservation + 1;6 M; J; L' e" \2 ^8 s
                                end;
$ T  G) Q4 u; d2 E1 i# b& P                                @.CurrIcon := "drivingHome";+ O# i* `" Y- t1 l9 t
                                @.DrivingHome := true;
+ k" O2 M1 s! [. l* H                        end;  N$ A9 K4 D# f6 W
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
; F; ^. T9 B' k5 a* O1 U                        part := @.transpOrder;3 b. d( E/ P2 I' U  I
                        part.move(@);-- load part: j" {1 F! u  e- w, y
                        @.CurrIcon := "load";/ }4 S7 D% @+ O2 N% U
                        GlobalDistObj := part.globDestination;
0 q! Q9 O, v7 d! P1 P                        assignLObj := rgmanager.rgAssignL;
/ A% Q1 V% O$ n2 }9 j) F8 `                        row := assignLObj.getRowNo(GlobalDistObj);
# r+ F2 q" ]' C& B, f5 G8 \# d                        if Row = -1 then -- since 70( b4 m9 N# W! b/ L
                                if lan=1 then
; s2 T: X2 F8 O# M2 @7 H7 u                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
' @4 j( M4 j! X- I$ T' u                                                to_str("in der Andockstation: \"",?.~.name,"\""));) g. i9 X1 }0 k2 M
                                else
4 a: @, B8 T: j% y( m' U                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),2 l- A3 B$ p2 O! W2 S1 p) n
                                                to_str("in docking station: \"",?.~.name,"\""));                                % m8 ^( F2 U& g
                                end;
: F- ~/ |* ]2 H% P                        else. Z. o! f( W; U7 o, i* q
                                @.Destination := assignLObj[1,row];
8 `1 {2 {) f2 r5 E9 m# \/ o+ b. [                        end;                       
; ?, ^! b# [9 H) f6 n$ ]8 K                        newDirection(@);
) Z. T' t9 N, F0 q                        @.HasOrder := true;4 ~" s4 d& e9 v. Z
                end;& [1 i1 B' x$ q- i
        end;7 F3 E: w9 V4 @8 V
end;        -- of the method
" q/ |) L0 E- q. z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 7 t( \9 g6 z! J% a
' i/ U) S1 M2 T  q2 @
这是AGV_putin中arrive的method。6 [' D( g0 }% ]) a
1 \  s! l" H* ~- e% N
当到达物料速度越高时,这个报警更多,: T9 f: y& l& A0 j
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
1 Y% l; H; t- l: f9 B6 E9 E程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
( _! U6 h* M' W7 [7 m  s) H+ X0 r  }% d. X9 @$ s
另外一个小建议,就是move,所有的move都可以这样. Z8 M. u" {' E$ a6 |, \
if not move() then debug end
3 U9 ]) k! c0 |) v7 u( G1 g' ?1 [7 ?$ A这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
" E3 ~2 p3 y6 ~) dplant simulation中的free libraries有AGV模板,  _, V! c, ]' b/ I
里面也有案例。
( S% N' }1 U7 g- a( m6 ]; K我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。: x% b: M- K1 x% i
; I$ `  b6 S( Q* R9 ~1 y% m5 T
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ' \. |5 j4 H: R

1 V8 `) i; H$ Z2 l( V那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 , z7 q6 Q1 E5 O: q
这是AGV_putin中arrive的method。
3 V4 T- r" f( [2 g0 L; Z5 m  q7 x) m: R
当到达物料速度越高时,这个报警更多,
2 W9 l9 I: [# U. @* t
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-4 01:44 , Processed in 0.028545 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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