设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8852|回复: 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'
3 P' p9 D: t3 l7 ]*/
8 y% Y: Z3 }# V6 B* m0 Vis
3 z4 V! B: W5 j. J        part, GlobalDistObj, assignLObj:object;row,Lan:integer;( m% N. c/ m2 D+ I. o) O# E
do
: [- w  ^) G" ?        Lan := rootfolder.Internal.Tools.AOLlanguage;8 y$ c+ Y2 h3 Z6 x. x" e" a
        if current = @.Destination -- else return- \) p# @, ]+ r/ D  a5 x7 ^
        then0 W& ~* ~- C+ ?2 h
                @.Destination := void;
* v4 [9 ?4 k0 B1 V                if @.occupied then
* F. K5 D3 Z' @3 s$ d6 @% Z                        part := @.cont;
8 f, G6 w/ m5 l& `1 F; ~9 }: _                        @.transpOrder := void;  G! S1 _- z+ |" d7 t
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
6 i, @" U7 q! P9 @                                @,root.eventcontroller.simTime);
1 Q( N' w8 f, _. G) g                        @.HasOrder := false;
/ K% h1 S: P) q% n7 M7 {, [                        @.DrivingHome := true;
! D3 s# ^5 A8 q+ ]! t                        rgManager.tryToStartTransOrder;  R; J4 N9 p! {% _
                        if @.Destination = void
% k: O/ y4 N8 J: b* N                        then -- no transport order for vehicle @; Z) c% E' `0 [# A2 T
                                @.Destination :=  H6 n1 p" j8 p: s4 E4 k
                                rgManager.nearestFreeStation(@,track.~);& u: S9 u) c6 D
                                newDirection(@);   % N/ [% l7 P9 E( n1 }
                                if @.Destination /= void then" ^! Z+ ]. P3 T: E( R' N4 _! D
                                        @.Destination.NumReservation :=3 }  E+ R$ j2 {" i6 D
                                        @.Destination.NumReservation + 1;
: h, Z) O6 R" ~& o+ d9 R$ A2 c                                end;8 K, p; }* z7 {) ]: a
                                @.CurrIcon := "drivingHome";0 [7 K6 ?+ P0 `
                                @.DrivingHome := true;* q* q0 x  w, i' N8 I6 s
                        end;' O* n: ?% L' p  v4 n
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station4 @+ R. d  i; @; l2 v& i+ e8 f  t
                        part := @.transpOrder;
3 C, @' |7 e) T                        part.move(@);-- load part- A. y, K4 F7 y2 r
                        @.CurrIcon := "load";. K8 f0 o6 N9 ]8 z
                        GlobalDistObj := part.globDestination;" F! K, E/ [( ^  I
                        assignLObj := rgmanager.rgAssignL;
/ e& U9 k0 K* B$ e! d- T, S                        row := assignLObj.getRowNo(GlobalDistObj);
6 q+ Y& [1 k' [/ f2 }                        if Row = -1 then -- since 703 ?# E/ a0 _# i
                                if lan=1 then
! O+ ~. e- h9 ]2 m2 f8 {                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),/ G" v9 a* o, l9 O5 ?' s9 W1 X) k/ v
                                                to_str("in der Andockstation: \"",?.~.name,"\""));  [5 Y/ f: ]3 G% g
                                else
$ f! K* ^( G- ~                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
* W& ^" ]' T1 u: V# K/ Z# J                                                to_str("in docking station: \"",?.~.name,"\""));                               
0 `; U" F( j6 Y! T- a* T' F2 v                                end;
4 t/ L5 P9 ~; J                        else
' \) |3 E! o, l# z5 W                                @.Destination := assignLObj[1,row];) S, j" c( q8 D& |7 I4 j5 p7 h
                        end;                       
4 X$ T: E# H& n) i# Y% a                        newDirection(@);
1 g, o) v) A& f; e, Q                        @.HasOrder := true;# I2 R: n0 e* B1 v$ {& o
                end;
: Q3 N6 ~/ g& E* m% _        end;
. x" ~3 K+ _4 ^. I: ?, G/ Dend;        -- of the method5 Q2 X7 g! n3 n" {0 O  y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 , A: b/ T3 b0 B% {

& d. b1 K$ R7 g这是AGV_putin中arrive的method。
, J; }0 B) c9 v8 J6 g- d9 G% [: {0 E. D1 e
当到达物料速度越高时,这个报警更多,' M+ }& p% h, K$ V3 z: K
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
; Q0 C# L) {1 \% ]* H8 [* ?程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
9 ]; Z* G3 v( `/ i7 Y; E/ I
- f; D& Z( n' S0 E2 K另外一个小建议,就是move,所有的move都可以这样9 {5 ]4 ~# e! b8 }0 D! x) j- E% L1 O
if not move() then debug end$ b1 `- ]  j: G1 B
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
& e$ ^- q9 @) B1 I9 yplant simulation中的free libraries有AGV模板,
0 Y2 f1 I! z( Z+ D; `+ `里面也有案例。5 ^$ K" _  \+ X1 f8 U
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
8 Q0 J" _( _/ n) p% j3 u; F- Y4 J2 S* `( c
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
* V3 e: O! z' [9 _- S) I
# [( M! e0 [/ a, {& ~% ^那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
6 @. M2 k8 e& w* ^+ F4 y( k3 d5 H这是AGV_putin中arrive的method。6 R& D) |! z/ c: ?6 u# W
' o2 h/ H0 I. _7 `
当到达物料速度越高时,这个报警更多,

7 i' W+ h8 ^% B. O. b8 [  r2 r另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-30 08:03 , Processed in 0.014433 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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