设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6184|回复: 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'
$ I4 J- T/ b3 o% P*/
# V( j  J3 R3 H, p' C' G1 `9 yis
. _  V4 r  |/ t% ]$ |5 g4 n5 M        part, GlobalDistObj, assignLObj:object;row,Lan:integer;, N& I1 f' N. i) u
do
" E) m3 P& H: S7 k        Lan := rootfolder.Internal.Tools.AOLlanguage;& n1 Z9 C. b% f( v( W
        if current = @.Destination -- else return
3 k2 Z* p. `, x4 w        then2 @/ @- `+ @1 q2 O; E2 k
                @.Destination := void;2 j8 S* ~! R1 Z  c1 I9 ^
                if @.occupied then5 U! ?0 F) A/ N
                        part := @.cont;3 Y8 ]5 x$ U  T8 }4 b
                        @.transpOrder := void;: a( K: S: x% n6 I$ o: z
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,1 x$ ]5 h8 o' U  ~# n3 [
                                @,root.eventcontroller.simTime);
) d8 z% K: A! ^! B$ H7 {                        @.HasOrder := false;
7 U/ q  a0 a; u0 {& `                        @.DrivingHome := true;' O# [" |2 y- `0 ^2 s
                        rgManager.tryToStartTransOrder;! S* E0 K8 x6 v  c* h
                        if @.Destination = void
: s0 k3 F4 D4 `3 U2 I: P' A                        then -- no transport order for vehicle @
$ V  R  l: L# v, q; n' M; c                                @.Destination :=
! {% `, H$ C1 r" R" r( m' l2 V                                rgManager.nearestFreeStation(@,track.~);
& F3 T5 I: B2 `/ N3 w; D                                newDirection(@);     g; ~6 w' S( N9 C: n' ]: S
                                if @.Destination /= void then
/ d8 b3 k2 A# e! @- z& B                                        @.Destination.NumReservation :=! y2 {  Q8 J. k" k! A! E" D
                                        @.Destination.NumReservation + 1;
2 M# T1 e& p! l% P) [                                end;" O2 U: v2 r/ H; W  ^: R
                                @.CurrIcon := "drivingHome";
. v; A* i9 z- U                                @.DrivingHome := true;/ d( ~4 H+ U9 Z; e, W9 L3 P5 ]
                        end;
6 \- s2 ]6 T5 z: V+ Y- ?1 h                else -- the vehicle @ is empty, both vehicle and part are in the same dock station' ]1 ?4 n1 N, O5 D
                        part := @.transpOrder;( `8 c1 n3 Q7 B8 L* P: G4 _, I; _
                        part.move(@);-- load part- H( |* y3 c/ r: t; u$ c1 K
                        @.CurrIcon := "load";& Z/ u/ Q9 t5 F$ N  K
                        GlobalDistObj := part.globDestination;
! d4 y$ m9 u/ @                        assignLObj := rgmanager.rgAssignL;6 F- t9 i5 i/ X2 q
                        row := assignLObj.getRowNo(GlobalDistObj);$ T) g4 n1 x$ p) a2 i( H
                        if Row = -1 then -- since 70
) g+ f. ~1 i$ X* f) |                                if lan=1 then& v) r9 R" K  H7 U1 l+ L6 p
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),; l5 S& W1 |; v( c7 j- Q$ {3 m, _! x" g3 D
                                                to_str("in der Andockstation: \"",?.~.name,"\""));+ X/ T+ b' [. W" n9 X
                                else
; |0 f2 W# d# t, r  D6 C/ I& K1 ?' L                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
" v9 r* f' R$ M8 {4 N                                                to_str("in docking station: \"",?.~.name,"\""));                               
6 z! x! v7 ~+ s0 n1 _' @2 Z# L6 ^                                end;
9 h0 f0 N: @% H1 C4 K2 U                        else+ d( p5 K% k: g* K9 l
                                @.Destination := assignLObj[1,row];. @$ g7 F! D+ D" m; d
                        end;                       
4 _5 B( g8 V$ L( U: z# R4 f                        newDirection(@);: N7 m( [3 g  a, ^
                        @.HasOrder := true;. F4 b1 h. x& u3 W
                end;# L, ^4 I$ P( x; X* `2 \  T' W
        end;8 u$ b/ @# P/ x
end;        -- of the method
0 Y8 g/ a9 |4 b4 V7 X
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 , G9 l! r( r+ O8 f. S. }; Y

4 u8 e; K9 s9 a8 w5 H) y. h这是AGV_putin中arrive的method。
9 ]9 D5 y# \: E3 p# P  r6 z- _+ V' o& ~$ a) S: |9 f
当到达物料速度越高时,这个报警更多,; f7 F* e* |1 o; v9 E! N0 P8 v: M
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。2 ?' @8 N4 h5 v
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?& n1 o) {3 v! b8 d0 y
' [( O7 t; |1 W9 q! H
另外一个小建议,就是move,所有的move都可以这样
- Z6 a8 O. @: W. j# |% j. V' Vif not move() then debug end0 f4 |, u* C: _. r
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。& ]2 r- E) [# b  E; G5 V9 S
plant simulation中的free libraries有AGV模板,
* J* ~- ]0 U' h; f! X里面也有案例。$ w4 K' C) d7 S8 k  {* q
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
0 }3 C; u( r3 U9 @* }7 @( g; p( w( D. m' T! g+ K0 N
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 / v/ m& k* y1 `# w* r
4 D6 p9 Y/ L& u% V; P: [: h
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
/ T2 T( |7 a7 y/ ?% G% c5 D" e/ Q* ~这是AGV_putin中arrive的method。
1 @7 ]- ]0 ^$ J) |! I+ b1 C! o6 X! M8 J
当到达物料速度越高时,这个报警更多,

, W5 ]. R  z; _2 r4 L另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-23 13:35 , Processed in 0.017948 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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