设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6771|回复: 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'
: [* E  @2 k9 b*/, W4 A0 K* A; r. f5 v$ A  p
is
) m6 d: j: d( Y2 n        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
7 N) p" C8 Q( G& {  n( |do
5 M$ r! |  t9 ]; r6 O8 a        Lan := rootfolder.Internal.Tools.AOLlanguage;' P1 S1 |! V  P+ V' U1 Q, v' ]2 t
        if current = @.Destination -- else return* @0 }2 w2 Z! j- ~: N
        then
# ^+ B/ ~' H* ]) y                @.Destination := void;2 H  V" \" P5 I, ?# w7 `
                if @.occupied then5 z; F* g& Y# J; L/ o! z
                        part := @.cont;( @1 R% c( I. y4 o/ E
                        @.transpOrder := void;
4 u6 M/ i& ~8 l2 O; E+ {% K                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,5 G% q2 r: q' {% Q+ U6 q4 A0 O
                                @,root.eventcontroller.simTime);
: F3 h9 r/ i5 z                        @.HasOrder := false;" X# N* p7 J' |1 s7 z1 F
                        @.DrivingHome := true;' M8 d! c) ~/ A" S
                        rgManager.tryToStartTransOrder;7 @7 ~& i+ l+ j: ?' [
                        if @.Destination = void, q, u; q8 l2 h  U
                        then -- no transport order for vehicle @) N. V& K4 M$ U2 u" s- k4 s
                                @.Destination :=
, x. C$ L( h! s5 _4 ?                                rgManager.nearestFreeStation(@,track.~);  }" A4 c/ j/ C
                                newDirection(@);   
  f" R- G& O. W                                if @.Destination /= void then
5 _1 i- A5 s$ N, y* H                                        @.Destination.NumReservation :=
! A) Y9 z  j$ q0 O( Z( `% e2 D                                        @.Destination.NumReservation + 1;
1 m& b* A1 u# b- J& S: q- a                                end;: h- N7 H; ^+ C3 S$ j4 P
                                @.CurrIcon := "drivingHome";6 r  I/ `, I# d$ e0 O6 z. d; i
                                @.DrivingHome := true;- F3 p) A( y  L
                        end;5 x! s4 ^1 f$ V
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
  ]/ X. [$ K$ \/ _' X% h. d                        part := @.transpOrder;
. s2 ]! c! W: V" N# E& a                        part.move(@);-- load part# U7 p' F3 O: d/ U4 w8 s6 g0 v$ b# c
                        @.CurrIcon := "load";
2 _$ x7 `: B5 Z- z  G. B5 }                        GlobalDistObj := part.globDestination;; F5 `4 p5 D4 _/ d" b7 Z
                        assignLObj := rgmanager.rgAssignL;! E/ f# O/ ^8 O3 S+ J$ `
                        row := assignLObj.getRowNo(GlobalDistObj);) K0 y( {1 I! k$ ]/ \% i* L
                        if Row = -1 then -- since 709 U) i' T, q& d) R* A9 Z& w: r
                                if lan=1 then! U6 |0 O# Z  S/ z$ P) w$ e
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
) A3 `7 q7 J: P* [  V# U6 `                                                to_str("in der Andockstation: \"",?.~.name,"\""));
  {+ ]7 L" j* y2 A8 l                                else' J! P3 m7 ]7 `2 {- E
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
; r( ?; [/ d2 |, k1 E                                                to_str("in docking station: \"",?.~.name,"\""));                               
: W' m: C) L" k3 v                                end;
  `) w4 |7 S5 C  L7 g2 `$ x                        else
  \. y! G1 Q  `+ X6 D: i                                @.Destination := assignLObj[1,row];
# T! I  Y& d  j: J* z6 d! F1 n                        end;                       
4 a8 f8 U: _. l( P+ r; W8 Z                        newDirection(@);! G9 N6 f: l# }- R
                        @.HasOrder := true;
5 {" G2 W) q# Y- S. _1 z; ^                end;
3 a- f$ r9 y+ m; b- g3 B        end;
5 ~! @9 ?7 }% X9 h; rend;        -- of the method
& T7 M$ p9 w& y( b
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
$ m( L" N  c* B% z9 W" i5 N
, g% D7 n! [. v8 A- G, B+ A. B这是AGV_putin中arrive的method。4 A+ Y6 }( @0 f: u# T+ {" L5 w: a

" O& r$ g8 V, ^  g$ \当到达物料速度越高时,这个报警更多,- b: y- e$ u) g; [
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
9 G7 @% x+ D9 F2 g. A程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
0 g$ N, y+ j% e7 e3 Y" w6 N" ~* j* r; p) v, Y) b" }# n) b% P
另外一个小建议,就是move,所有的move都可以这样$ a& X( @+ y8 m/ X$ r
if not move() then debug end
/ L6 Q! x; a. ~; _这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
2 K& j1 r$ o& x; q8 ?/ _' Mplant simulation中的free libraries有AGV模板,% p' h$ l  u5 k0 x/ U! ?
里面也有案例。7 n2 \# d' O5 s  @# x/ v/ K! }
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
! q4 Z( ?0 h. {: G  J
4 z$ s3 l) K) e3 v1 N7 w我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
6 s( [1 n4 n+ @
4 l! y# |! A! E: y- [那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 0 B8 ^5 Z& X# A  F7 @6 ^, u
这是AGV_putin中arrive的method。
0 o/ f, z% z; x2 m; _' d2 t6 w
当到达物料速度越高时,这个报警更多,
. v) }2 m1 Y3 c. a# d1 w
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-25 20:20 , Processed in 0.015678 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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