设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9863|回复: 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'
: f& A3 _4 H6 L/ d/ y*/4 `1 \6 J3 t( E( M5 @
is
- O) N- p4 _  R% I1 q! C        part, GlobalDistObj, assignLObj:object;row,Lan:integer;; v; y/ f& u/ F2 S7 R# m5 S5 @* ^" d% k
do& g; f, G- L5 o0 u$ U5 t6 H" i
        Lan := rootfolder.Internal.Tools.AOLlanguage;
: q% A0 \2 B# Y# r$ I2 V! D        if current = @.Destination -- else return
. m" Z5 e; R6 K9 H4 }        then
3 V0 M1 E0 Y, D! ]9 V. Y2 ?                @.Destination := void;, s* F7 R5 M6 c3 [( d2 o, _# _
                if @.occupied then/ U6 B8 d1 m2 c  @4 f# l1 n
                        part := @.cont;* H2 |1 h& {+ x* n1 i
                        @.transpOrder := void;
  X; d2 v7 {) F+ n                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
1 n. s* g' c! Y( u9 h) W- H& @3 U                                @,root.eventcontroller.simTime);: T4 A/ ~  y2 k2 }6 F
                        @.HasOrder := false;' X# p  J3 t$ D8 J! B5 Z9 `7 e2 {
                        @.DrivingHome := true;
; C/ v" ?: ^4 n$ \9 Y7 x1 W* N6 }- a/ i                        rgManager.tryToStartTransOrder;
  k" ]9 l) _9 m) @5 J                        if @.Destination = void2 G; E3 V: D$ E  {# F2 _9 b" N4 }
                        then -- no transport order for vehicle @) V9 z/ w  S" k( _. S
                                @.Destination :=. h, e$ e% c5 t0 n* \7 d
                                rgManager.nearestFreeStation(@,track.~);
+ D0 A$ l4 X6 e                                newDirection(@);   
" M$ G5 K- g% k  d+ F                                if @.Destination /= void then
1 n& \! ?# G) w+ Q+ \% q: N                                        @.Destination.NumReservation :=
' B+ k) P# ?9 h7 O& |$ _/ L) |                                        @.Destination.NumReservation + 1;2 Z% B5 }, B, b/ e5 C; K5 d
                                end;
; z+ d7 }% B+ r4 ?/ M+ r                                @.CurrIcon := "drivingHome";
- R, L) R  g0 T% [                                @.DrivingHome := true;
7 _+ q* P% B, E4 B0 \6 U                        end;7 J, J" j, r$ `4 c1 B6 A9 a5 [9 R5 g$ ~
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station( r8 h; y2 r  r& ~% E
                        part := @.transpOrder;+ d& F. ?2 x% C
                        part.move(@);-- load part
$ q. x5 o: B8 Y9 j2 }1 a: ?                        @.CurrIcon := "load";; A2 \& J! j+ y. H) ~) O2 s
                        GlobalDistObj := part.globDestination;+ |: W, A0 T/ V; m
                        assignLObj := rgmanager.rgAssignL;3 r9 M) T) O6 |% D& J, P7 u
                        row := assignLObj.getRowNo(GlobalDistObj);2 G/ b4 `# f4 {2 B( b/ G% [' P' V  b
                        if Row = -1 then -- since 70
3 g+ c& P3 Y2 c                                if lan=1 then
8 v" f5 {& g0 S! @2 g, A                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
& m: k) V2 x" K! \/ a4 C                                                to_str("in der Andockstation: \"",?.~.name,"\""));+ c- c" n( t* u! q3 w8 f
                                else/ w1 M3 N3 F# X- ?* O* `
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),8 y0 c9 z. X. S2 U) E# R+ c
                                                to_str("in docking station: \"",?.~.name,"\""));                                , D0 A! [7 o) D0 l8 x- x0 X- Z
                                end;
& R( E! E9 D- U, t                        else
- Q6 U* X" k1 w  J                                @.Destination := assignLObj[1,row];
' z1 i* Y% D1 A                        end;                       
2 k  q/ c  V$ g! s! X% k8 s* l                        newDirection(@);
# X' w% Y+ x: u: V1 e                        @.HasOrder := true;  \( m, E! U6 k: U- u" O3 h
                end;
" n# j" ^4 C, [) O* D9 }% [        end;, @$ @" z, |# q" ^4 z
end;        -- of the method; l- @/ q# F! o  w, C' x
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
0 ^/ c- R8 w) `3 z+ p6 x4 S
9 H2 \1 _' B; M/ ~6 p0 h7 B6 K这是AGV_putin中arrive的method。
& p% g1 E, l! [1 }  M( Z5 i& T- \! _7 q, [1 ?
当到达物料速度越高时,这个报警更多,: V0 R  q3 N* V
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。1 c( |( ^1 W7 U7 _
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
. r$ Q& }( ^, _$ n8 V  J
' I- `9 {+ v( S4 b另外一个小建议,就是move,所有的move都可以这样
' O" j& p4 X  n. p3 Cif not move() then debug end$ K4 ]( a: d3 H/ x) I6 {- l
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。: @% M, b" W8 B0 I6 H$ @
plant simulation中的free libraries有AGV模板,
% Z% F" H/ W4 U7 ]8 C4 A+ q% t7 w5 C里面也有案例。
& f; H# D9 L: `9 P# A: U我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
+ V0 `9 N5 `) P, p- W1 G% i) K
: s' H8 Z5 Q, z5 P我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 , c: y: F0 o9 }& s/ @: I0 j& R
7 U/ q/ R  K3 I0 }- T
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 : _9 O/ x4 c' Z/ [
这是AGV_putin中arrive的method。, \/ \. H/ Y4 ]
. o, r: v9 ~) n/ p) q  G
当到达物料速度越高时,这个报警更多,
& I. v4 l* x3 m5 _$ G' q0 l
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-30 04:36 , Processed in 0.019079 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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