设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9389|回复: 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'
: \) ^# }  U' h5 L, |7 c" |, k*/. B# n7 l7 D. O& _/ K. P
is
% q6 N8 b$ N( x7 K8 ?& g. D        part, GlobalDistObj, assignLObj:object;row,Lan:integer;3 j, Q$ e) v4 g
do
  K) s- S: P. n! i- q        Lan := rootfolder.Internal.Tools.AOLlanguage;" @2 i7 z7 h! |
        if current = @.Destination -- else return# G( B1 K6 Y- ~* o* n2 c
        then
, R2 t1 t) x. @" }4 E                @.Destination := void;8 y2 R( z& A  y  J( \1 C, [) J8 E
                if @.occupied then
9 q5 q. _+ I1 @: B                        part := @.cont;0 O/ u3 \1 C$ J( ]; L* r8 \& g
                        @.transpOrder := void;6 {! ~8 Y4 ~9 y6 s- {6 U( D8 `
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,, y7 `% l9 s! C, G+ Z! k
                                @,root.eventcontroller.simTime);3 p0 X- [2 A4 x- F1 u5 c
                        @.HasOrder := false;
# K4 t# A" Q2 ]! O                        @.DrivingHome := true;# ?, o0 X. _" |/ V; V+ o1 R- d  d
                        rgManager.tryToStartTransOrder;
( N1 j  [% a" Q% O- b                        if @.Destination = void
; i8 t9 B$ m  d$ Q# {7 g" t0 H                        then -- no transport order for vehicle @9 ~5 I1 o% }2 U5 M- Q% I6 C! ^
                                @.Destination :=
. ^7 m- Y$ R  O$ l                                rgManager.nearestFreeStation(@,track.~);! k$ }- d+ v; v7 s
                                newDirection(@);   - U4 l9 D/ J( |5 a. G  Z, O* d  m
                                if @.Destination /= void then+ G4 t2 E1 N' f/ V2 M
                                        @.Destination.NumReservation :=( ]4 ?  z* p' s; {
                                        @.Destination.NumReservation + 1;, I, k5 z& H8 i. s) e" Z$ v
                                end;! `5 b( V5 U3 s
                                @.CurrIcon := "drivingHome";
- ?8 D" K  r4 x; K                                @.DrivingHome := true;
5 N0 V$ X) i8 Z2 a                        end;
) Q* M9 w. X1 T3 |6 E7 x                else -- the vehicle @ is empty, both vehicle and part are in the same dock station! T4 {8 n6 k0 \" F% \
                        part := @.transpOrder;
4 s$ o( R/ n2 x6 s1 e# y                        part.move(@);-- load part7 i7 Y5 s, Q5 M7 n) m6 H$ Q0 l
                        @.CurrIcon := "load";
# `' {$ {4 Q3 E* M- Y4 K: S                        GlobalDistObj := part.globDestination;: M7 G5 \6 w  [# J( b3 f1 y
                        assignLObj := rgmanager.rgAssignL;* j7 g3 q' B* F
                        row := assignLObj.getRowNo(GlobalDistObj);" X1 U8 }* y9 M% n# I7 @& ]6 B
                        if Row = -1 then -- since 70) m9 c- g: q0 ]) s* x' @. }
                                if lan=1 then
/ f  X" E4 D4 M, u9 \6 A- S( _                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),8 Z% [& v* g. G$ o$ G1 a8 }
                                                to_str("in der Andockstation: \"",?.~.name,"\""));1 P- \2 P5 B# P- A0 [* e
                                else9 s% J# w. C3 `& c  _
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),( x! u$ {% H# z: p7 p; @) n/ y. W
                                                to_str("in docking station: \"",?.~.name,"\""));                                # w" g4 k3 A8 W7 Y# e! U
                                end;
$ p0 Q& ^% i6 h( f' B7 y                        else
$ M* r3 _3 Q9 T                                @.Destination := assignLObj[1,row];
% h2 o, h2 r. U1 i# c2 S                        end;                        + s5 E1 Z$ ^: u% H) O$ F
                        newDirection(@);
6 g% Q7 s$ M, ?8 u% F6 b( [                        @.HasOrder := true;$ X$ m" P& n8 s3 _5 t
                end;1 o$ h" P; H) ?) f1 S) h: e# H# M
        end;* @3 }3 q9 ?* T8 q4 I6 |
end;        -- of the method4 z$ V- c& }% C' {; t$ y1 F0 {3 @
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
" e) S6 J* I& L3 I; q0 |: ?7 X! B9 }  s' x9 J; O
这是AGV_putin中arrive的method。
2 @/ P  Y0 V( D6 \- n9 ]
  \& W; @: X: q* K当到达物料速度越高时,这个报警更多,. [8 N: N* v) j& h
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
) I0 d3 P5 e1 x* v程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?8 W5 a2 G. H! t- e* H

$ _. G$ s8 |9 Z  `1 \另外一个小建议,就是move,所有的move都可以这样
2 _9 {4 f: s; `( K; aif not move() then debug end# m3 p$ W. j! e" D  J/ c& ]" }% k4 x
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。5 c" P; j3 m4 H: p' Z; [" v0 ^
plant simulation中的free libraries有AGV模板,
3 k. G( N" j9 _" B1 K, |里面也有案例。
4 {, t. H6 w2 C8 o我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。8 L# M( r$ }% |

% M+ p& F- W7 o; N8 {8 R1 Y' z0 n我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ; O$ D- s. f) y- w
2 s9 v1 I: v) s9 q
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
! G' C2 H% T! w: a2 x5 B+ D# A这是AGV_putin中arrive的method。
* F# _: K. ?+ r+ I" z3 D( P/ D, s+ n  ?9 \
当到达物料速度越高时,这个报警更多,
! J5 ^7 O5 E/ t' s
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-29 17:04 , Processed in 0.016065 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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