设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6493|回复: 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'3 q) I+ @, J. B7 H$ V
*/8 D& q8 V8 ~% @
is
1 M' y5 Q2 R( P        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
) i" h+ {2 X' @/ |& }do
- J( M1 Y2 Z* z. c        Lan := rootfolder.Internal.Tools.AOLlanguage;; U2 m7 j. Q; h& H4 F6 G! K
        if current = @.Destination -- else return
( |" H  G( \' i7 O        then  ~& ^5 {% L8 d0 A& ^7 s4 _
                @.Destination := void;8 F0 J" f8 u! p: [+ s
                if @.occupied then
) Q; |  T! T" X, {                        part := @.cont;/ }( H1 Y& A5 D) H; I
                        @.transpOrder := void;2 M$ N8 p8 ~; K, L
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,3 J6 X! }' E0 x1 e
                                @,root.eventcontroller.simTime);
4 p( A2 f; W# x! X: W$ d6 m7 W2 a! U                        @.HasOrder := false;
" Q6 g# N: D7 J+ z* a- Z! q. T                        @.DrivingHome := true;) O  H: F$ H: @0 t, k0 m$ F
                        rgManager.tryToStartTransOrder;
7 [; H- M0 f) l; \4 Y3 K                        if @.Destination = void
( P& H3 v2 \* _7 ~& `                        then -- no transport order for vehicle @3 {3 W8 g8 a7 W& x. s& |9 |8 P5 b
                                @.Destination :=% {1 U# [1 {  p4 Z
                                rgManager.nearestFreeStation(@,track.~);* o) l" M: z& G: R# F
                                newDirection(@);   & ~3 B, ?! w+ x* W& C7 e' q' a
                                if @.Destination /= void then* a2 s* L" A; o
                                        @.Destination.NumReservation :=' {5 f+ O, i) c" u* I3 _) e
                                        @.Destination.NumReservation + 1;
2 x0 a0 n  n! M% b8 M                                end;
5 C8 B* W' Q3 f8 B) y2 d                                @.CurrIcon := "drivingHome";, [4 W. i) D; K7 h9 Z/ X4 V" h# s3 K
                                @.DrivingHome := true;! g" A$ W3 J1 ]! b5 f
                        end;) u& J- @4 A4 x# ?) D! `2 |  {2 @: k
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station) P2 v/ v8 x$ ]" B
                        part := @.transpOrder;
0 Q* }) s- c" S( N" ]4 }0 s                        part.move(@);-- load part
8 ?: B- ~) h$ ^2 p                        @.CurrIcon := "load";
! a3 `. g4 F2 w6 M- U                        GlobalDistObj := part.globDestination;
5 E$ n4 y# P) V. l                        assignLObj := rgmanager.rgAssignL;
( v  s' I, W, g8 S7 V# V                        row := assignLObj.getRowNo(GlobalDistObj);
+ j9 K& D3 y8 P4 q                        if Row = -1 then -- since 70
& m; x+ E- e* ?6 S                                if lan=1 then. _# S& c! u0 z; B
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),( J3 Q5 R9 G( b4 ?. ?# B
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
4 S, E6 o, ?2 P1 @6 k. j4 k                                else2 L+ o  g3 {  c  @/ R9 L1 h. _7 T! y0 X
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
, o/ g8 O+ H- B+ D! ?. e                                                to_str("in docking station: \"",?.~.name,"\""));                                . P0 s1 N$ N& o9 N5 ]% h* J
                                end;
+ v1 i0 W9 Q# z% n                        else
1 q9 m& E3 g. l                                @.Destination := assignLObj[1,row];) b) g7 Y1 J) y. R$ Q
                        end;                        # r1 X! D. g3 q. M6 v& J
                        newDirection(@);8 G7 M/ K& w2 q
                        @.HasOrder := true;
7 x( r8 _- {" u8 I" u3 a- y                end;
) j1 n1 [% p- y) K$ s# U+ n0 n" d: e+ j        end;
0 u: A* q6 v, ?+ q. `9 I+ vend;        -- of the method( J0 a% i6 x$ [/ U& o0 u9 w# T
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 + P+ v, w$ v' o: }, Z
( Z( }6 P2 x/ s1 c3 p
这是AGV_putin中arrive的method。" e( d/ b7 {2 b: T9 C+ ?$ b4 c- g

, }6 s; m( M8 C& {当到达物料速度越高时,这个报警更多,( G5 n( C  |- Q( Z3 b3 `- n3 e+ ^- x
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。2 ^! s. W- i( s# F, ?, j# }
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?6 e0 n/ C8 c% |+ q2 E) O

$ y0 ~& j+ x& S  V3 m另外一个小建议,就是move,所有的move都可以这样) n4 D4 U; T% [
if not move() then debug end
. a; u0 q9 N# A3 U* r这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。) [0 A1 v! s$ \9 N: e
plant simulation中的free libraries有AGV模板,9 |, `- J3 O( `4 n( p: b, ?* }
里面也有案例。
  p  Y% c6 n, L1 e( W我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。- c. [8 l5 G: `* K% W
" S6 j# N. ?2 u% x. _
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 1 G# v% [! u  @# Z

& X9 L, j# n/ Z! m6 D+ y那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 , B3 D: `5 t4 A
这是AGV_putin中arrive的method。5 S* T4 p( f; K* h8 Z  m  }
& b9 [9 z  j8 H1 W3 Z- D6 m, L1 e) F
当到达物料速度越高时,这个报警更多,
7 Y. A6 H4 s% V& [! b
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-9 13:57 , Processed in 0.015823 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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