设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9754|回复: 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'
4 ^8 J8 f6 p5 O* Y*/# a7 C% v5 g' D& P  k5 y3 n
is
8 q! W4 O. l6 w3 [- z        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
! G; K9 l+ D( t9 F% @0 zdo( u% Y1 {0 [1 X/ t: g! g
        Lan := rootfolder.Internal.Tools.AOLlanguage;
% ~0 m  U. k( v1 P" H0 w        if current = @.Destination -- else return  b5 C, j/ I( V9 D3 D
        then5 r) A! b" u3 w$ G* K3 w( c* y4 T+ ]& t
                @.Destination := void;5 ?) n+ r8 F3 @- J  l
                if @.occupied then' R8 o$ R9 i0 X
                        part := @.cont;3 s9 [  j  W1 ~: l4 F" _+ m& Y" @
                        @.transpOrder := void;
* N- F9 w4 F- N3 p9 C6 ~) V0 z                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
1 Y% w# X4 V6 |1 o  ^; Q" A- p                                @,root.eventcontroller.simTime);- Q6 H0 M  B; D+ z$ U7 @9 D; t
                        @.HasOrder := false;* j6 z* v; }* m6 u2 z
                        @.DrivingHome := true;
1 S8 ?$ \& l/ q1 `, }' A8 _                        rgManager.tryToStartTransOrder;
; y6 M! g/ d+ p3 T- U$ P                        if @.Destination = void3 B- s! s* H7 K( k
                        then -- no transport order for vehicle @
2 d' J9 E5 [, U$ y- A- ~: }                                @.Destination :=
0 I2 ]5 {8 e4 @( v                                rgManager.nearestFreeStation(@,track.~);6 E7 Z' v9 ?9 _/ P" B0 j' f$ x2 @
                                newDirection(@);   
2 m, p' L' X" H3 b- I; R                                if @.Destination /= void then
8 H) t7 q+ _1 U% C                                        @.Destination.NumReservation :=
2 m( }* M# `8 ?" d8 t  s- W1 d' w- [                                        @.Destination.NumReservation + 1;
( ^) [6 Z! Q* V& c+ [4 o, e                                end;
3 U, v/ b1 n6 m% t                                @.CurrIcon := "drivingHome";
0 |. r8 l: _4 p" a7 a7 N0 \# l                                @.DrivingHome := true;
) D2 o% h. r6 X- S1 n# C, z0 O4 D                        end;( a, z; W* L7 a  S' M% M
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
6 V6 C# F6 i. b) G9 ], ?0 t# `- ]                        part := @.transpOrder;
; G! \3 B9 v. l                        part.move(@);-- load part; C4 D0 u2 X! K
                        @.CurrIcon := "load";: {- Q1 V& r5 p  `- i. Q
                        GlobalDistObj := part.globDestination;) y% u/ ^" K! M/ T# X
                        assignLObj := rgmanager.rgAssignL;2 x  q/ P; _5 G$ ~
                        row := assignLObj.getRowNo(GlobalDistObj);
  ?& @; {+ h3 M' P2 ~                        if Row = -1 then -- since 708 ?/ R# N  e% W7 o5 {: J
                                if lan=1 then- w& @9 I! s. H; M4 l- E: Q' j
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),, n6 T2 b0 ?; o
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
3 `0 t  w) N% n5 w# t                                else, {, H) n$ K1 h6 p% u
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
0 @$ N) I' b  f$ S: h, }4 z  T3 c0 G8 T4 o                                                to_str("in docking station: \"",?.~.name,"\""));                               
9 N+ s9 ]2 r. m% o0 D0 E                                end;' e- y$ s2 G( f$ d. C& w
                        else9 ?6 \' y0 G- y2 X/ E% ]$ z% l: k
                                @.Destination := assignLObj[1,row];
( P) C4 c9 [" g4 v/ }                        end;                       
# A5 H6 L, B! O8 i                        newDirection(@);
7 W, i' |6 F4 u. k' k                        @.HasOrder := true;: Y0 \: K# Z8 [4 x. k+ `
                end;
1 L$ g! _& E8 e' t& F        end;9 I0 W- r) _" A) V4 {6 {4 _
end;        -- of the method! H8 V1 v7 X% l
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
$ g) R# [- c4 O4 ~' v! ?
4 u; T* R* }' |' K* f这是AGV_putin中arrive的method。; \9 \2 ^8 g- W" ?/ }1 [) _2 D
4 u/ h0 H! C* m, d3 H7 O% m. W3 y, f
当到达物料速度越高时,这个报警更多,
% V- u# ^7 ], s  s可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
- Y0 K' D: y- y7 d6 s程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?! Y+ ^. s, t' [1 M9 L( ?
# i3 }+ G* L, I, W0 C9 t: O
另外一个小建议,就是move,所有的move都可以这样) e" H- f0 m6 {! h8 w6 Y
if not move() then debug end
: y/ X  u( p+ F: L$ A9 u这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。2 F; f/ O1 I. |9 R. G, O
plant simulation中的free libraries有AGV模板,
: u8 k1 L. g, t/ ]里面也有案例。7 x  T1 o* r( Q1 J5 U3 f
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
) n% m) z! g' r9 B
3 p/ X, b4 x8 M3 V- Y' ^' d# a我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
( a1 C" f) G: [. b8 S' `+ }5 x6 e( }( T. Z
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
' ?" K- o; ^: N! I) W4 M( _- A这是AGV_putin中arrive的method。
; M' ~% A$ v- f% B& |4 e' O1 _
- C5 i& S4 n: e1 C- b当到达物料速度越高时,这个报警更多,

: A7 G2 v: F; @) o1 H) g+ P6 J另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-22 14:12 , Processed in 0.050689 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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