设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9021|回复: 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'
9 O) ]& p( g! H) K. i0 B3 j*/. k( \8 u" @6 F& O. t2 ^
is
5 i7 s' [: g& M1 j2 V% e2 G        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
) K. V' s0 t* X6 \2 n# p8 ado) s$ ?. M5 X+ ^! g6 [( T* Y. s. Q6 F
        Lan := rootfolder.Internal.Tools.AOLlanguage;
* H; y0 J% V5 U# M7 w        if current = @.Destination -- else return4 H- h! H# b- N8 g
        then
4 M* @7 G4 V+ z" x1 {                @.Destination := void;& B/ f3 i, d+ h* ^5 [
                if @.occupied then% I1 Q8 p1 _- t, w
                        part := @.cont;
. G0 A& r  e2 x8 h) Q                        @.transpOrder := void;! F8 N; K- C& W" d
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
% D, N0 R+ I& ]# \3 M0 V1 V                                @,root.eventcontroller.simTime);
" I: X  i( T# l                        @.HasOrder := false;3 X, d; n* M5 V  w/ @* I+ T# A
                        @.DrivingHome := true;
5 ]/ l9 B, f( j7 U+ P  ~) V                        rgManager.tryToStartTransOrder;* M$ j, n" }& ]% {
                        if @.Destination = void
* j; e( H3 Q% E5 F6 v- D                        then -- no transport order for vehicle @
; v9 C3 @6 T  G/ z7 V+ h                                @.Destination :=
% O5 c- E8 x6 |9 T/ r' ~                                rgManager.nearestFreeStation(@,track.~);
# X  |& ?7 M3 }$ X, F                                newDirection(@);   
. ^% g+ P! y7 F2 ]/ C( ~                                if @.Destination /= void then2 v, Y& ~4 _3 x+ a
                                        @.Destination.NumReservation :=
/ ]. ~+ I& C  l  P' }( X6 J                                        @.Destination.NumReservation + 1;! i- I: i; A2 U2 R  ], V; t
                                end;
- b/ s/ n, `  W( e, s2 ?: f; X0 a3 a5 r                                @.CurrIcon := "drivingHome";" c, v; m5 t, d6 I$ P  r+ Z0 O
                                @.DrivingHome := true;
' p  {2 B+ L3 y5 }" ^6 s! Y, v                        end;& a5 T" z4 V. w0 C  M0 q
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
$ }: W# `' G, [$ w6 P9 B8 d                        part := @.transpOrder;
+ Y7 g' i: e7 n# h* ~5 K                        part.move(@);-- load part
& j6 U3 x4 i5 ]5 W' h; F                        @.CurrIcon := "load";
9 a5 g* ]! P8 b, _                        GlobalDistObj := part.globDestination;1 c2 ~. ^  W( C6 O8 W+ \, }" c. q
                        assignLObj := rgmanager.rgAssignL;
6 @" m7 X; @* i. ^3 D8 Q0 x                        row := assignLObj.getRowNo(GlobalDistObj);
) H9 P: a3 c* V                        if Row = -1 then -- since 70
' i) m& }3 r% X  T+ r                                if lan=1 then  K4 \" X6 C  k9 g
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\"")," V. E0 L6 [7 W. ^$ U, q. @* C: g6 E
                                                to_str("in der Andockstation: \"",?.~.name,"\""));) b/ P: h8 u; w* [) M
                                else+ A/ @# M, F/ ?0 y2 }( k, ~
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),) T2 E, ], ^/ O$ _# ~, W
                                                to_str("in docking station: \"",?.~.name,"\""));                               
% b6 x% m# [% Z6 l1 C/ }3 i2 o2 S                                end;( n+ Y! t: A: ?, s  f
                        else9 r; U& i2 @% t3 i
                                @.Destination := assignLObj[1,row];
' \$ B6 [" i6 j" N" @! F$ b( d, S                        end;                        ; W' x. t/ P) `: ~8 N, ?: h5 i
                        newDirection(@);+ q8 m9 G; Q% ]9 P
                        @.HasOrder := true;" t8 ]" @9 O* U) P( E& P% r
                end;
& |( y4 y- c% E3 ]7 \* i2 U        end;
: Z2 ]3 j0 ~. E8 S' M3 Iend;        -- of the method; k4 |: D" I' h' ?7 Q# P/ w4 n
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 3 y" d" ^7 \- a' m

6 j' o' r9 F5 ]这是AGV_putin中arrive的method。
" x) `) u/ B* f8 R* r  t% C/ m) D. y& ]) m  x# j
当到达物料速度越高时,这个报警更多,
& ^- s. F" e) @- z1 u! y可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。  L3 z9 s  }# _' g$ ]$ t
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
9 B* N2 u9 u0 a" S" A' G0 O
5 l# }. _: ?. X1 w( b4 {9 Q2 D另外一个小建议,就是move,所有的move都可以这样' N$ s# H5 U- W/ r( v, e; ^
if not move() then debug end
5 w& b/ O( p: d; [" c5 R这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
1 _) e  K. k. b* C( Oplant simulation中的free libraries有AGV模板,
( J6 a" h0 k6 x9 v( R* N里面也有案例。. L! F4 Y1 F; ~0 K1 _1 ^
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。& x! E5 {& P6 I0 X% J
: k% R4 B% k* u3 I; C- A  G
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 1 I' B9 z  R' Y0 H3 E: n
* s* ~& d% l9 E+ u2 z6 F0 v
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 % n: @( Q3 M& I0 o5 R  t
这是AGV_putin中arrive的method。
& E8 o1 ~( K; d  l
6 R- e- L2 W; g当到达物料速度越高时,这个报警更多,
( X' J( {7 u) c4 P& K
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-9 13:38 , Processed in 0.018007 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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