设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5673|回复: 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'
, t, ~$ X& {* s+ |5 }$ k*/" a  _3 Q+ v, q$ h
is
/ U# r/ j8 ^7 k& n7 n. M. N& d        part, GlobalDistObj, assignLObj:object;row,Lan:integer;4 @% F" W1 q2 a  O
do/ M9 q6 H4 Y9 \9 B7 y3 C7 \5 W' [: m$ K
        Lan := rootfolder.Internal.Tools.AOLlanguage;) `+ @5 M4 Y- Y
        if current = @.Destination -- else return+ P. S: a3 s( E0 X1 m
        then# M. Z- B0 m! I& G- R% D' x# g
                @.Destination := void;3 E6 {0 e* I8 W( g9 S1 j" J# m
                if @.occupied then
' R/ ^% \; z; ^! ~! F                        part := @.cont;
. H$ c/ j4 H' a- U! P0 p                        @.transpOrder := void;
* }$ }  O! k  j* R                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,7 z0 s3 g4 p5 N5 A- ~: V: i
                                @,root.eventcontroller.simTime);
% o" u' t; [# F! {2 f                        @.HasOrder := false;) p9 {: @' S8 V9 c
                        @.DrivingHome := true;
: |. U. k9 N  y2 `- M* T  @3 b; I' t                        rgManager.tryToStartTransOrder;' Y; [: L/ b& b3 ~: F4 u1 _
                        if @.Destination = void
! U) d& F8 x7 N7 Y                        then -- no transport order for vehicle @8 @! {. U0 m! D
                                @.Destination :=2 O. @$ `! Y' t0 t+ D! q. J, [
                                rgManager.nearestFreeStation(@,track.~);
3 e0 e9 |1 n5 L- V, e8 q                                newDirection(@);   # |2 j) |' S/ \6 e- W7 p6 F
                                if @.Destination /= void then
4 [% c* h7 @- |                                        @.Destination.NumReservation :=, L3 J' C  |% y: p4 M# ]
                                        @.Destination.NumReservation + 1;
' V! j5 y% d. a' F4 I                                end;
9 g7 w' X$ u/ x9 \9 y$ m) W                                @.CurrIcon := "drivingHome";
# j0 T8 D! e  Y* N1 b8 g; L4 w                                @.DrivingHome := true;$ G# z( \% |( v3 [! ^
                        end;9 V! f+ K0 w9 g$ L+ {- r
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station% a7 P5 w& }; H1 j" y5 _
                        part := @.transpOrder;
9 X3 I# |" c2 _$ d                        part.move(@);-- load part
* T, c# q$ ?" z) D$ m  }                        @.CurrIcon := "load";
( m6 Z' ~- o& G, G                        GlobalDistObj := part.globDestination;3 R1 ?( Y2 f/ ?" N/ u, v. v. v
                        assignLObj := rgmanager.rgAssignL;
9 u0 }- D) j0 A* `0 C" d- e                        row := assignLObj.getRowNo(GlobalDistObj);) K: L2 }+ W9 b
                        if Row = -1 then -- since 701 ~- m8 [7 G3 h2 i- _
                                if lan=1 then$ ]2 O+ Y2 m5 }4 F( J
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
) X  t7 Z/ j1 H, f; g                                                to_str("in der Andockstation: \"",?.~.name,"\""));, e8 Z$ \# G) h) U
                                else
6 F2 q2 T! g- I2 ~; ?3 W                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
) p5 G9 D% A) k8 d$ c                                                to_str("in docking station: \"",?.~.name,"\""));                               
+ K! Q9 w4 Y$ |4 W, {  R                                end;
: L: i: U7 n# S" r                        else3 ^; M0 G/ f0 K' p/ y
                                @.Destination := assignLObj[1,row];
) T) D7 M2 |5 @" k                        end;                       
5 W, j+ T( e) s' k/ x  O                        newDirection(@);
) W( G7 }& P% j/ o, g# v                        @.HasOrder := true;4 j2 U. A8 u5 P/ ^0 E; L% N
                end;
7 s& H* n+ Y5 r        end;
3 s# E4 J. F, |end;        -- of the method
% I3 U# I8 {& K
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
* X! e6 `' b. ?" f
4 T  }8 S. C! `" x* ~& i这是AGV_putin中arrive的method。2 N+ D& L! e% B. I

' \/ k9 R4 P# O8 z, {( v8 x当到达物料速度越高时,这个报警更多,
, _# X0 {" f# u5 e可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
. h  l0 {7 `2 l9 g' Z9 i2 e程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
( i% M. u  }7 e& J% Y2 T0 j
$ E. B6 I! X# y( }- v另外一个小建议,就是move,所有的move都可以这样
: N# |8 J" q- ?& ]' p& Mif not move() then debug end7 U* |& x* S6 U9 A6 A# L/ O
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。; e/ y: w: e, A. i; }
plant simulation中的free libraries有AGV模板,6 ]% d1 p$ E0 I% ]8 ~2 m
里面也有案例。
: r# M. e& \0 I6 J) o* Q1 K; E我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
$ b7 ?4 g5 P$ ]. U8 m- X3 E/ d
3 Z) y1 l9 c: u& |我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
3 T7 m( b5 G: j( |8 U( }) u$ l9 p6 E7 d% U% p5 O. @
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 " p  P, y9 G6 b4 z: T( C$ ^3 G
这是AGV_putin中arrive的method。% P1 [- n% J- w
4 L' V. t$ E3 X) z0 B. ?4 C& \
当到达物料速度越高时,这个报警更多,

' m8 H5 W% H! J; k另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-13 07:52 , Processed in 0.019127 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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