设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9176|回复: 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'$ A( ~" S+ a5 B. B4 y6 `5 b" l; c, ~
*/9 [* l2 p1 D- V  p( f
is) A& w* P5 D. R% o
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
6 K; n. P1 I8 e: P* hdo8 D, N! ^3 U( B) \
        Lan := rootfolder.Internal.Tools.AOLlanguage;4 n" u5 Z4 @- x# P2 N* s% `
        if current = @.Destination -- else return
0 a8 i! W& Z- W  V0 ^6 j; p5 j2 I        then. [6 i+ D7 u: B) E; U
                @.Destination := void;) z% j( D9 |1 u1 g/ J
                if @.occupied then
. i0 j# m7 R7 h* @                        part := @.cont;  Q5 P, r4 k2 A. m* q# |' J, t4 N
                        @.transpOrder := void;
$ ^+ C. b+ ~( a6 s5 ~                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,9 J$ r$ B8 e  Y0 n/ z3 W
                                @,root.eventcontroller.simTime);
4 s3 Z: a4 f+ N) y, f; k                        @.HasOrder := false;
" ~( z( l+ T( w4 B3 E8 B; u/ r4 M                        @.DrivingHome := true;% ^7 l& z/ k( W" C1 L2 y. Q( C
                        rgManager.tryToStartTransOrder;
# ~$ J) i& a4 y. M) \  X                        if @.Destination = void
+ j" O7 l2 M2 H. B# w                        then -- no transport order for vehicle @/ o3 C0 \* ]* k( \
                                @.Destination :=
. z: o$ x% L9 Y/ l6 U                                rgManager.nearestFreeStation(@,track.~);5 N$ r5 _5 s# J. e' Y+ f" J
                                newDirection(@);   
: a! B9 ~/ }. d: v. c! v  R                                if @.Destination /= void then* ^4 p5 R1 M& b: H
                                        @.Destination.NumReservation :=
8 `$ X5 X! v2 r1 A" r) Y/ J" L                                        @.Destination.NumReservation + 1;7 l# e% R$ ~( u4 H" P2 z
                                end;# A' y2 L8 ~. u5 q
                                @.CurrIcon := "drivingHome";
9 P- P% z9 l. X; ~                                @.DrivingHome := true;! u! F8 \% k" p- i' q
                        end;. `4 L6 E5 W9 o) t2 R  I5 ~# _1 W1 q
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station2 P. f7 k, C( Z4 n" X
                        part := @.transpOrder;) V; y3 V& b4 A  h0 M4 s
                        part.move(@);-- load part
% v1 u$ L$ {3 C" {$ U/ F                        @.CurrIcon := "load";
$ b! `  ~* ?- }! n& a                        GlobalDistObj := part.globDestination;8 e: ]- D5 N! D
                        assignLObj := rgmanager.rgAssignL;
2 {" R- n3 B& X' X/ j1 k                        row := assignLObj.getRowNo(GlobalDistObj);9 m& G% I3 [/ n( y  b6 ?
                        if Row = -1 then -- since 70
  f1 e9 D8 l* [# e8 K# o0 O                                if lan=1 then& a0 W; F& \  X
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
3 i7 b! z& `$ ?6 }                                                to_str("in der Andockstation: \"",?.~.name,"\""));
/ x# w4 b0 }8 Q                                else$ S" H# {8 m* m: g" m- D4 }
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),) P. H$ J& r; N$ [# a
                                                to_str("in docking station: \"",?.~.name,"\""));                                  T  K+ A' r3 t6 _& ^1 B# s  Y
                                end;
/ @% |4 s8 H1 o$ z: W2 [. a- }                        else  C) y0 _( O( r
                                @.Destination := assignLObj[1,row];
' i$ c5 y6 w3 Q                        end;                        7 D+ i! o% b, e* A4 c
                        newDirection(@);
$ {0 l. G& q' F9 k                        @.HasOrder := true;0 {2 {7 f6 v. H# {( ]) s8 U
                end;
) f6 f& g4 z3 T6 h& k3 a        end;
$ Q1 w% ~; I# }end;        -- of the method) Y! P; C% o- s" A
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
2 U: b3 ?% d, r  C2 p6 d( ]4 U
1 M" Y! p. ~5 S6 L这是AGV_putin中arrive的method。8 [8 ^2 y9 H: E! g& m; n% ^6 s8 S" w

; @' a* d, I  w' @3 P当到达物料速度越高时,这个报警更多,
( H- E! u. L* s9 P+ D* C可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。+ ?: p; `  _  s& o: L) U
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
$ y7 w& _& a' X  B2 t5 L; n1 O, E+ y1 O2 b7 A4 C
另外一个小建议,就是move,所有的move都可以这样$ X! I  _/ e9 c: [
if not move() then debug end
  F, C, F$ z- w2 {% M这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
, q% \2 R1 P/ m5 n6 g: U$ nplant simulation中的free libraries有AGV模板,
5 ^: ^* j# i" H' J, a里面也有案例。5 ?. {: T, G6 l- i: U
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
, T+ V' u/ l- s  P( @
+ B' \* Z# Q% n# l5 v/ h我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
0 {6 G$ J: h9 ?) X0 M
- p8 E8 n3 u& U那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ' s# q$ O/ _) X9 H
这是AGV_putin中arrive的method。4 g1 U: N1 [# f9 }
' o) k& w/ _# v$ Y) k8 _( n
当到达物料速度越高时,这个报警更多,

: Z; T: ~" y( X2 ]1 W- d另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-18 00:55 , Processed in 0.018622 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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