设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9351|回复: 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'" V6 E- l/ Z. D: E$ @& H% T
*/8 h  _. t* ]2 D$ X$ O
is" ?. `8 l: ?- j  Y4 P2 ?
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;2 K- C% ~  _" A# N' i9 F
do" e! ]: J6 {% Z: N( l! P0 R# t
        Lan := rootfolder.Internal.Tools.AOLlanguage;( }5 g) `% [' q8 I3 ?
        if current = @.Destination -- else return
' h6 r; ^9 f1 ?. q$ a) i        then
+ m, K) n$ p0 K/ V7 g2 @5 O9 s( b; U8 g                @.Destination := void;
' u. j! E; d2 h0 U4 D                if @.occupied then
) C+ ~# ~+ K& u6 l                        part := @.cont;
/ _. d+ E0 L1 ]0 b) n* l3 ?                        @.transpOrder := void;
( Q4 O" h1 u+ D$ W; A' O3 s                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,, Q  H' _+ m/ u4 g* {# l9 U
                                @,root.eventcontroller.simTime);
4 v) F. O* q( A/ l                        @.HasOrder := false;
4 K3 x3 Y- R3 e5 A7 E7 [2 b                        @.DrivingHome := true;  ~4 ?- q& s8 s, o" \8 h
                        rgManager.tryToStartTransOrder;
) s+ M" d# |. [+ M' @( n% ^                        if @.Destination = void. ~' n# W! b- q& H6 U
                        then -- no transport order for vehicle @
5 U; ?  ~( r( `; E1 ?6 \                                @.Destination :=
/ `0 q- j" b9 l8 ]" N                                rgManager.nearestFreeStation(@,track.~);
! \( d5 R$ ]% ?                                newDirection(@);   
' ^- R$ m' Q3 p7 q4 w                                if @.Destination /= void then
! m* a3 k% ^' I" u3 l( G                                        @.Destination.NumReservation :=- Y- ?- B. V+ A: M
                                        @.Destination.NumReservation + 1;+ q& J4 ~( [7 U7 V3 y7 \
                                end;
8 l1 s( p" b7 \3 i$ b4 t2 S/ G                                @.CurrIcon := "drivingHome";% k& @" D, |1 a  H; \
                                @.DrivingHome := true;& d/ O. q5 L; A6 d" \
                        end;
" `: o: x, E3 ^/ t# u+ v% {; s                else -- the vehicle @ is empty, both vehicle and part are in the same dock station2 v+ S7 q) N/ N; c" ?9 c" E+ n( X0 e; R
                        part := @.transpOrder;
! g! q% q, x" O( b& R+ _* n, b. y                        part.move(@);-- load part
  ]* y0 N9 w; V" q1 G                        @.CurrIcon := "load";. [8 l% ]/ z# h- v4 }
                        GlobalDistObj := part.globDestination;" p. d6 W# m2 j! P' s
                        assignLObj := rgmanager.rgAssignL;
* X4 g( v3 R1 S  g9 X( h; y                        row := assignLObj.getRowNo(GlobalDistObj);8 x$ G- z1 v* C- @: D
                        if Row = -1 then -- since 70
1 u% V* A/ V4 a" b" L- C/ S* ?                                if lan=1 then- d" S1 _- _) ]! C7 J1 `- n5 \
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),3 n: o) c; i, V  c2 `9 b
                                                to_str("in der Andockstation: \"",?.~.name,"\""));# B& R( f( g6 [2 E3 y
                                else4 ?& n- O* v3 f. V# P. R! G
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
' E6 V; ~  \1 d( c                                                to_str("in docking station: \"",?.~.name,"\""));                               
1 l. a5 e" k8 b2 \) V                                end;, u. N* O. V1 Z
                        else' @7 O; i1 y, w
                                @.Destination := assignLObj[1,row];1 G  H' r5 t( }0 V+ d% ^* l
                        end;                       
* e4 s5 L3 Y2 Q; M4 b; J2 K                        newDirection(@);3 k/ W* I8 f; R; p, g
                        @.HasOrder := true;
7 R: x( U1 c' @3 h8 N                end;
9 G  f. l% T+ I# {1 k3 i        end;
. `: l6 O" r8 Y9 qend;        -- of the method4 l0 Q9 C7 Z7 b
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
  A( a9 ^- @" o: U0 w- c1 _& h% q$ U
这是AGV_putin中arrive的method。
# U+ D- X/ P8 M. c7 H( @+ A1 B0 a6 j6 u
当到达物料速度越高时,这个报警更多,
/ C; O1 V- y5 b0 ~: n0 ~可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。3 d7 i4 B" z' }: B$ {& H
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
1 P6 _4 E0 j4 i; K# V8 C, ~* n7 G; }9 e5 P3 G
另外一个小建议,就是move,所有的move都可以这样4 U5 M5 Z  O8 x) [
if not move() then debug end
; F( E7 K: e8 i这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。( R6 X* a* D9 v/ I/ B& V9 w8 h
plant simulation中的free libraries有AGV模板,8 p: g4 t- j2 r
里面也有案例。
3 t6 g9 _4 }# I7 U我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。9 \; \) r9 O* b% F. a/ O& D

7 U: w& k9 p, o我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
+ B$ f3 N. M+ w$ R" U
, X; o% u" M6 g- S# N5 Z# b那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 1 x1 b  ^9 H8 @. {, q4 ^  d
这是AGV_putin中arrive的method。
: u1 P! s8 X2 q1 F+ C# I
3 b( [7 G% C9 o, d当到达物料速度越高时,这个报警更多,
( Z) {4 q$ D% r
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-27 04:05 , Processed in 0.016386 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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