设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7165|回复: 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'
9 V  I5 [/ d: |1 Q8 l: d; @*/
4 v9 X. a5 z  w( T7 k# ?: |% ?is
0 y1 d# G3 m8 i7 p. }: A$ d0 G        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
8 f4 d& o1 f4 ~/ Z0 mdo
" p* i  ~! Y* q: x6 L+ W6 J8 G1 ?        Lan := rootfolder.Internal.Tools.AOLlanguage;- S1 g- f! \& M. H1 ^
        if current = @.Destination -- else return
# u3 p, _" H7 G5 H, s  K        then7 A( H4 D: `1 }) a+ j5 }
                @.Destination := void;
' C' D4 K9 r( p' v2 Z2 f$ c                if @.occupied then8 K5 g, H9 `/ n% W5 C9 i
                        part := @.cont;! B- i7 Y& S4 v3 O3 V2 p: j
                        @.transpOrder := void;: D4 z  [/ Q4 D8 ~7 M' y7 Y
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,0 d' U6 r8 A& T+ ?# h- M; \
                                @,root.eventcontroller.simTime);) h" A( A0 n) a
                        @.HasOrder := false;
  _7 K* V- l- h: r$ `                        @.DrivingHome := true;+ @' ?# e: |  S* c  _! I; J7 h
                        rgManager.tryToStartTransOrder;/ v  x$ h8 H$ n5 H" b) }6 h
                        if @.Destination = void
, W7 e5 Z3 _4 o) N: j9 V" h& x                        then -- no transport order for vehicle @/ ~+ x3 o' f  V% G! t! z" {
                                @.Destination :=& t/ o, D; @; \! n8 }- ]- n
                                rgManager.nearestFreeStation(@,track.~);
" I3 R+ s% u, ~' H1 x                                newDirection(@);   
% X! M2 X' u/ e& g* B                                if @.Destination /= void then# ]- Z  E; E& X4 |- ?  D
                                        @.Destination.NumReservation :=
* i& u, l- b# t5 E                                        @.Destination.NumReservation + 1;; ~- ^; P4 l; A( Q, [
                                end;
* {) O" W) E" [# \4 ^                                @.CurrIcon := "drivingHome";
& o) C  \6 u$ v                                @.DrivingHome := true;/ r8 S2 P2 M2 T3 d* u, X
                        end;
' A7 K( s3 L. [3 V" @6 q1 c' c                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
2 D' q, h2 Z- t0 g0 X                        part := @.transpOrder;
, l( k. a, ?9 R9 ~4 a7 \- g' Q                        part.move(@);-- load part, Q! y) d& C& a1 ]
                        @.CurrIcon := "load";* q4 d9 l8 L9 a" o% K/ e
                        GlobalDistObj := part.globDestination;) K/ A( t) A; V  V
                        assignLObj := rgmanager.rgAssignL;) p! F* J: V* z9 C3 Z
                        row := assignLObj.getRowNo(GlobalDistObj);
3 H: U2 d' A+ S, k; M8 T$ O. d                        if Row = -1 then -- since 70* y5 l( p7 ]2 |9 S0 V/ o! b
                                if lan=1 then" X1 f9 P5 H6 |1 R0 L$ r1 z& g3 T
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
  T0 P5 f* b% r- ?, S* z                                                to_str("in der Andockstation: \"",?.~.name,"\""));* s( a9 ]) n# _" X
                                else! i0 I+ Q0 v0 `! k
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
  X; n: t1 y* ]% p8 }2 a                                                to_str("in docking station: \"",?.~.name,"\""));                               
, k+ A: l. ~6 Q& r* T+ L# B' {                                end;
# Z( x( M- k9 B: l, U* k! ]6 \! e2 J9 U                        else% J9 p& \/ F, Z  N! b, h4 K
                                @.Destination := assignLObj[1,row];
+ K1 g3 p9 q; n, @8 w  g                        end;                        6 P/ O, z( k( o% S( S
                        newDirection(@);
5 l. `3 M4 ~  b: T* T* x6 ]                        @.HasOrder := true;. V$ h7 T& ^" D" Z) @6 S
                end;7 q% c* f+ g4 `, d
        end;
* r* F" J9 y, y& R5 \% n% e' Gend;        -- of the method
, \9 |! ?, |# p
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ) y" V$ l7 w) @4 r* H7 V
7 \( p1 M7 R* i: b
这是AGV_putin中arrive的method。3 S( S! X$ A8 D& M' L

- i7 b: d5 ^3 {当到达物料速度越高时,这个报警更多,
3 D  A# g5 A. p. c7 m' N7 ~9 ^可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。5 K! G" Q' s6 x, U& J& C9 {
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?/ e  e9 C6 M5 @6 z; ?& F

$ A9 r$ q, ^  T& z. I另外一个小建议,就是move,所有的move都可以这样" {; r8 C7 V' s# y# s1 K
if not move() then debug end
7 K# I0 a9 |$ m9 i& Y3 P; r# {这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
# D. P( u9 {( N/ G" v4 [plant simulation中的free libraries有AGV模板,
, \: X* [2 T9 q; P9 G+ I! Y) T6 ?* B里面也有案例。1 j, v0 x. j( x* f
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
' |: ~0 ]( w- I  T
+ P/ Y  Z2 L! E! C  Z7 O3 w, g9 S我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
( D5 G. {, @! s& X% w* C3 w3 d4 G; p9 {& f- u! q
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 4 y% F9 K7 n, }
这是AGV_putin中arrive的method。
8 l6 E0 G, L0 z: S- C6 L, h  R, a$ n  X7 Q- K0 b$ ]' }
当到达物料速度越高时,这个报警更多,
) X& [% C4 E6 Q
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-23 17:20 , Processed in 0.020551 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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