设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7070|回复: 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 R. |: l/ N( ?7 ?8 b6 \0 v/ O0 ?
*/
1 O8 i; o: {8 A! D# Iis
/ }8 E; v7 G) @; g2 \        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
* L4 b8 M" K& s# x% O6 ?do
$ M! o8 ]" F8 I5 |        Lan := rootfolder.Internal.Tools.AOLlanguage;
0 |! L- {7 [9 W& C/ h9 x+ T        if current = @.Destination -- else return
1 V; |$ k/ J$ f# |( B+ t% t        then
* @0 g' C9 L- r6 w6 z2 L  e! ?                @.Destination := void;
4 y4 c6 f/ I# Z8 \& u                if @.occupied then; d! @; K5 `8 l! j2 d+ l. H
                        part := @.cont;( a; `, {% N6 H% f3 }# a7 E' W
                        @.transpOrder := void;
* `# F" G  g7 V& ]4 ?5 S; ?& B6 O                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,+ l; j! [2 p/ x' C4 j
                                @,root.eventcontroller.simTime);/ \+ a; ]1 @9 P) ~  F: \7 t
                        @.HasOrder := false;, A6 Z5 Y3 g. D
                        @.DrivingHome := true;6 `9 F7 `$ n# D4 i+ }/ f0 z
                        rgManager.tryToStartTransOrder;
* A0 x5 j" u. h6 h  a4 |; N, E3 P                        if @.Destination = void4 d  S8 Z9 M  ]6 o+ ?
                        then -- no transport order for vehicle @
' N( t6 X7 ?% G) E2 p# F3 k8 C1 W& c                                @.Destination :=
5 S3 T1 x3 Q$ j                                rgManager.nearestFreeStation(@,track.~);
4 ]" i2 a+ j6 Q) K$ O                                newDirection(@);   . E  L9 x4 c9 R4 ~* P8 K3 L* J5 ~
                                if @.Destination /= void then) \+ ?9 B( N5 `" X
                                        @.Destination.NumReservation :=# E; c  L1 Z9 a0 `7 ^
                                        @.Destination.NumReservation + 1;# H1 u! y  f# _* x
                                end;
" s0 {7 T$ s/ j; r                                @.CurrIcon := "drivingHome";
' v) u7 Q& \1 v7 |! G" q                                @.DrivingHome := true;
% x$ P  C6 L" Y- o                        end;
( z* @: N  p" C: n                else -- the vehicle @ is empty, both vehicle and part are in the same dock station( w6 O: C+ v" J: X- N
                        part := @.transpOrder;4 u6 E* O; w! [) y$ ]
                        part.move(@);-- load part
# `6 R  c6 V! h8 w1 |/ S                        @.CurrIcon := "load";/ A) d  ?$ ~- G% V& M; H8 o
                        GlobalDistObj := part.globDestination;9 E9 S6 m+ J3 Z3 ^, f- ?/ [; T. A5 f
                        assignLObj := rgmanager.rgAssignL;
  F* b9 N  H% H# G1 M$ V/ m+ L, w                        row := assignLObj.getRowNo(GlobalDistObj);
6 t) g- y4 j2 d' n0 Z+ g9 v                        if Row = -1 then -- since 70
3 x2 I( G: h; d2 L                                if lan=1 then
* s( V" q' U+ i" j6 H# \8 Y; c                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
  M2 p$ D+ a- e! S# _                                                to_str("in der Andockstation: \"",?.~.name,"\""));
: M" }# Y, B# S# X) U6 o$ K                                else$ R- O! X% J' v; U3 m" N: w
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),( H5 W7 ]! @$ z! s! T2 i4 X
                                                to_str("in docking station: \"",?.~.name,"\""));                               
; _; L1 @4 d% m" ]  p* G' \& O1 l                                end;$ t( q# C7 ?  R1 M
                        else: y# A, s6 x1 y( c. U, ]* |- [  G
                                @.Destination := assignLObj[1,row];
7 J6 _# U5 j% [$ _9 T7 _9 W, p                        end;                        . Q$ g+ |& }7 L% v
                        newDirection(@);6 H, R6 P$ b3 R" n
                        @.HasOrder := true;5 ]4 `# X3 M0 Q0 {+ g2 T
                end;3 p4 [) g) z4 x$ C9 {5 D
        end;- w* L+ {0 P1 @
end;        -- of the method
8 A- h; F) H/ r8 l% D( I
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 % c0 W: Q" A) o- _" ^2 [& \
" p4 s) V  e7 P3 y0 \0 H( W
这是AGV_putin中arrive的method。
( H0 t' v0 n5 v# L- G/ _0 G7 p$ t9 ?4 \! ]
当到达物料速度越高时,这个报警更多,
! R* w7 C) ~* p可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
& N3 Y6 G+ X9 S2 ~# ~, T2 S程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?& M. e9 H- e' k' A# \  @7 i$ l  e

- ^0 I7 s5 c8 p4 k% s# n另外一个小建议,就是move,所有的move都可以这样
: A8 p0 G: l/ l5 C  ^) S  o! sif not move() then debug end& n$ f. |+ n5 i
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。4 C( \! c0 k& `) \8 E) X
plant simulation中的free libraries有AGV模板,6 M. ^0 r  W$ C! X# C& B, s
里面也有案例。, g& T3 T5 k( l
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
1 r/ N8 @# @: W" i" t. j
% o" W. c4 E- ?  Q8 x. U/ k# j我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 6 K& @3 i, d$ f
, B, |3 I, {' s; H0 W* U- _
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
# w" w# }/ z3 }$ @( P3 s/ W" z这是AGV_putin中arrive的method。5 E  h+ y* _  Y4 `# g% I

8 K# K3 h" U( v当到达物料速度越高时,这个报警更多,
" ?/ t2 n1 I) r! @4 G, Q0 X
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-14 23:11 , Processed in 0.020210 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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