设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6348|回复: 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'
, O: o- u: E) f) y7 L6 D, R% B% u*/
; D3 c9 ^+ y/ l, Vis
9 i: F$ i7 L: @2 I3 {- y6 h2 o        part, GlobalDistObj, assignLObj:object;row,Lan:integer;$ z* b. ?; T( i' K$ ^
do
$ {6 I* D( d9 j% o9 v+ T4 m        Lan := rootfolder.Internal.Tools.AOLlanguage;
! ?4 T7 L9 C0 Y+ c  x        if current = @.Destination -- else return0 \. z$ |2 K6 |, D7 g* N
        then' h" f% ]$ C* {% y* P! e
                @.Destination := void;" w- K. I' g: W& B; }
                if @.occupied then7 S- b/ X' C# X: s" z
                        part := @.cont;2 {8 z! J& p. @8 U
                        @.transpOrder := void;
2 L3 Z  U) `$ Q7 s+ Z+ T/ \. C                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,/ U4 D" }  @; B: g
                                @,root.eventcontroller.simTime);
( m. Y/ C  ~7 J# i4 b                        @.HasOrder := false;0 ?; i, b/ |: n  e( q" \% x; ~
                        @.DrivingHome := true;0 X; c1 M( q% L+ Y4 H
                        rgManager.tryToStartTransOrder;
1 v! Y- p4 [  \/ U4 r4 L: {                        if @.Destination = void
5 k2 ^4 A: x! d, X; @4 f                        then -- no transport order for vehicle @
6 N6 v3 Y, w0 K; y2 n/ [                                @.Destination :=, [% c; l/ \" d% j3 O* Z
                                rgManager.nearestFreeStation(@,track.~);
& Q; n( ~' A) q- J: p                                newDirection(@);   
. Y6 r) X& T3 R& M6 W& Z3 ^                                if @.Destination /= void then$ M8 {" E* T% I4 o1 y; h# I
                                        @.Destination.NumReservation :=
$ D# U4 X5 a0 Q0 l  B3 k- m                                        @.Destination.NumReservation + 1;
1 L( ^9 _2 `" X' l" r                                end;
# N8 Z$ c! e: Z1 O# p                                @.CurrIcon := "drivingHome";' m' h' ?7 w/ C% h( b
                                @.DrivingHome := true;
' c9 O: W- [9 v1 O( {                        end;6 @" N1 d1 @# q5 c$ G' E+ T
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
0 v9 ?8 Q% B8 M% _# \                        part := @.transpOrder;! k6 j8 c3 U. s2 I. t! p
                        part.move(@);-- load part  A7 h6 E; f3 c; o  C" B
                        @.CurrIcon := "load";9 p6 ~! }7 V/ j- g$ S8 M5 U; Q9 I
                        GlobalDistObj := part.globDestination;
% v8 L* a1 h9 E# o! N0 B5 s2 ]2 I                        assignLObj := rgmanager.rgAssignL;
) r( z' g- o5 }; \( h0 \6 t                        row := assignLObj.getRowNo(GlobalDistObj);+ J$ }: E1 I; {' m  x1 F7 w8 k
                        if Row = -1 then -- since 708 G6 P, g; \2 i! R: x) j
                                if lan=1 then; g5 H% J8 T+ e8 F$ U: e8 Q; s
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
( L, `4 y; n. E# D                                                to_str("in der Andockstation: \"",?.~.name,"\""));
9 z8 E0 Y  a! ^# x5 T1 s8 ?1 k( p                                else8 l  r+ t2 W! ~* h; F
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),3 x" x( Z$ u( Z8 I, s" Q) E" u
                                                to_str("in docking station: \"",?.~.name,"\""));                               
4 c3 r& q5 f" @- w                                end;7 B* Q2 F- j7 Q% \4 v. m; g3 @
                        else
: q& d* A# q0 E8 r) Q; S                                @.Destination := assignLObj[1,row];
  e5 Y" |! B* k+ c                        end;                       
0 e" @) |9 }$ ?$ T                        newDirection(@);
: y' r% ?$ H# ~                        @.HasOrder := true;
/ p. k& x& W, q* S                end;: Y2 c  f  L. t/ z8 ?4 g' m
        end;
% e( F* B- S! v1 O" {5 f/ m3 Bend;        -- of the method
; [4 s" x4 W0 N+ ^8 |
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 & y2 M2 u' u3 u/ q0 X7 m' h' f0 h) z
5 {, r/ X7 F5 b; [1 F; n
这是AGV_putin中arrive的method。
" M9 I" u& K9 A9 \# Y3 O$ |
6 ~0 e. a  R" t+ ?当到达物料速度越高时,这个报警更多,1 ^& m( C, m9 U/ ^
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。- P! i8 O9 C2 _. u) y
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?* K% m) A1 S- ^: }
8 J* c2 K/ B( B8 O7 k3 b% d. J
另外一个小建议,就是move,所有的move都可以这样
5 i0 A* `# m: hif not move() then debug end+ \- K, C1 j* e7 u& E. x
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
% ?" ~; I: Y" ^0 J/ S2 Hplant simulation中的free libraries有AGV模板,4 g' P% o1 U( J
里面也有案例。
/ b9 X! q% }3 U0 h$ V5 W" R我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
! B9 @; d: r; w+ i& A" s$ v9 E! X" P5 A5 p2 Q
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
4 G  j- l: x% D4 c: c; Z1 y
5 I7 @8 v% \4 z4 c1 a% T& z2 i那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
# ?& K) h' q: x) n这是AGV_putin中arrive的method。
, Y+ J$ t: r: ?9 T; z6 y
) h$ p# ?; M6 G% a; A# G$ A6 D! ]当到达物料速度越高时,这个报警更多,
% N/ w7 k# N$ W5 C4 b
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-1 03:26 , Processed in 0.018667 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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