设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8268|回复: 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'
4 B7 P$ O. Q9 R+ }$ g*/; |* R; u# ?( g8 `/ ~0 d+ B1 C
is
- {4 Z2 x( X$ w, a0 t) y        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
/ l+ Z8 l+ z* ]- J$ t6 mdo
  R# L# I$ `2 ], E* I" D  _4 C4 w        Lan := rootfolder.Internal.Tools.AOLlanguage;1 {# `" }1 y! |. w
        if current = @.Destination -- else return
# a# a4 ~* i% i  B& u  D1 f: ]& H* m        then
. W2 K  t5 b6 @9 k                @.Destination := void;* W8 |) S* G5 C1 @0 y; D
                if @.occupied then) A! p/ c9 k, b
                        part := @.cont;
/ U* v0 N8 ]( v" I4 L5 V                        @.transpOrder := void;
/ v/ Z5 G/ v! _: a7 I                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1," h7 {1 J; G: R
                                @,root.eventcontroller.simTime);7 B3 k! T$ I4 i- ]8 h4 J" S6 v
                        @.HasOrder := false;4 l  _0 Q/ a. e
                        @.DrivingHome := true;
3 U; M5 s5 C, `! ^                        rgManager.tryToStartTransOrder;; [+ G% F. x, X$ ~4 }0 g, g
                        if @.Destination = void
# W0 T; {. a; X+ G& s                        then -- no transport order for vehicle @
  _, J) e) |/ e) |8 H                                @.Destination :=
" d9 `+ J3 C+ K                                rgManager.nearestFreeStation(@,track.~);
$ w7 @* A/ {% c6 Q! g/ D, m4 r# i                                newDirection(@);   8 M$ T- f0 Q) T  C
                                if @.Destination /= void then
9 r! p/ B3 F; A4 m8 X* v                                        @.Destination.NumReservation :=% g( f* \* h# ]4 Q, I& i7 O
                                        @.Destination.NumReservation + 1;
, _6 L* X; y2 T5 s( w  c                                end;6 X1 i2 y# [* a( p6 K7 H+ K
                                @.CurrIcon := "drivingHome";
( z* y7 z( G3 P. }) l2 }7 b' |                                @.DrivingHome := true;/ N9 O# m; p* W  E4 D
                        end;  o: v* E* n5 J3 P% k9 T
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station" H8 p" J! Y; _  l' j
                        part := @.transpOrder;
. g: n# ]% [  @2 ?& @& ]7 o0 x                        part.move(@);-- load part3 H% t) G0 d3 T  C! C1 h, b- s
                        @.CurrIcon := "load";
; d% d9 y2 Q$ ?( v/ u7 Z                        GlobalDistObj := part.globDestination;
1 T5 P3 m7 k# T" v8 d6 ~" I                        assignLObj := rgmanager.rgAssignL;
: W2 o$ T) s% w. Y6 o$ F                        row := assignLObj.getRowNo(GlobalDistObj);8 @1 s" Y  d0 ~  q
                        if Row = -1 then -- since 70
; T1 t! o' Z- _% a. c( w7 a5 X                                if lan=1 then, f9 A3 v) l6 n% S7 I5 [7 R
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),% v" q1 ~! i3 {* d  J( ~6 g# W' m
                                                to_str("in der Andockstation: \"",?.~.name,"\""));3 V2 v* {8 ]5 d* y0 R
                                else7 ?: m$ o2 X* ?+ n
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
% B( _% _. Y; e9 }; I. a                                                to_str("in docking station: \"",?.~.name,"\""));                                . G; G1 ?9 ?- {/ N; @
                                end;8 N4 Z1 ]+ g3 r9 i3 ^( b7 d
                        else
$ [1 l" s0 i" `. Y& B  u                                @.Destination := assignLObj[1,row];
& ^- |7 y7 X- m8 T! R: u                        end;                       
1 [* N2 ~& x2 V: ~                        newDirection(@);8 Q  a$ j7 l* f! x
                        @.HasOrder := true;+ N% M/ U; v. v- a' N/ L* h, h# e! n
                end;
, K+ b! C1 Z4 T7 `! g- H: M        end;, @2 R7 w, o, P; c, Z3 Z6 E/ |
end;        -- of the method1 O1 Z( R: G2 ]  U) s5 w( D8 n2 x
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 4 K- c0 T, w, l9 _# [: Y
3 ^2 o" p  Y/ V1 }, P2 h% x
这是AGV_putin中arrive的method。& n# R' M0 T7 y, h' j3 b2 v. H
5 E, G6 y. j1 ~2 t7 {
当到达物料速度越高时,这个报警更多,' g, z* p2 |& j% U2 ~3 L1 g6 O3 ]
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
3 f4 t: N8 D$ Z, X  @& O- [程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?2 R5 t1 O: ^8 ?
  t; b3 f& ^9 p& b: o7 Q! q
另外一个小建议,就是move,所有的move都可以这样1 u5 |! Z* _$ x- _7 T
if not move() then debug end1 Z: t3 z/ ~8 g  W$ h
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
# @$ P+ H& _' v9 aplant simulation中的free libraries有AGV模板,* f, V# V" D  l6 A5 t% K
里面也有案例。: I% y% s: Q/ q1 I# \" E" U! k
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。. I+ V* _* v9 x3 B# ]: I
6 Q' A" X# P' Z( t5 _+ F
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
9 E, ]3 Y8 K2 }( w
) @( u1 P5 d+ D5 u. _) V6 l那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
$ Q0 s4 Y0 o" A/ g这是AGV_putin中arrive的method。  n: w, @2 O' x1 g& ]

4 ^. k+ P: B! R: f当到达物料速度越高时,这个报警更多,

. a1 Y5 L3 V  ]1 s7 C' o另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-24 03:41 , Processed in 0.122858 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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