设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9643|回复: 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) B+ d* p; D7 p. J" P! E9 ~
*/" P+ Y/ E, I7 G- A# m: u2 c
is
& v- D  ]" F4 k; Q, T        part, GlobalDistObj, assignLObj:object;row,Lan:integer;9 v. c3 V- l7 s! b5 _! B
do7 C0 }$ }; w$ O; p+ Q
        Lan := rootfolder.Internal.Tools.AOLlanguage;
9 j+ {' q& n5 T        if current = @.Destination -- else return- |5 z& A+ x& I
        then' V7 ~8 K8 O! M
                @.Destination := void;
. _: q: F0 l( z3 I& ?! l! h                if @.occupied then
4 ?- n% G( C  {                        part := @.cont;
+ K" h+ M2 X, \( l( K5 w* ^  x6 A                        @.transpOrder := void;0 W; e1 t, A5 [2 j: A# J% U* ?
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1," x: O' D- r7 J6 u: ^6 d0 u7 _% ~
                                @,root.eventcontroller.simTime);4 V" m. `4 e2 ~7 b2 u: q- w
                        @.HasOrder := false;
  U/ \( i8 R2 B: \2 k                        @.DrivingHome := true;
0 b: t. V& |# m) F8 q                        rgManager.tryToStartTransOrder;
2 R& [! h. W" |! ~. G, I+ B                        if @.Destination = void
5 K8 O3 P9 N. s& D- ]                        then -- no transport order for vehicle @
) c  M$ V+ z! u. X6 B                                @.Destination :=
: r( P- F' I! y$ S( r                                rgManager.nearestFreeStation(@,track.~);
* \4 K' \6 w- n* C8 `2 S1 y                                newDirection(@);   
0 l0 v4 D5 |' E                                if @.Destination /= void then
, u3 S3 a8 E0 K% n" t8 z                                        @.Destination.NumReservation :=
8 x, y+ N# D& f" R# t5 s                                        @.Destination.NumReservation + 1;
% \/ Q9 y3 N7 O0 A4 n' H0 b4 {                                end;: F7 m: e6 y7 Z5 }1 q. q  v
                                @.CurrIcon := "drivingHome";
0 L/ v, p* O. K+ z0 B9 X4 g, u                                @.DrivingHome := true;
, w& G* `1 W: K( _- h) ^2 u                        end;
/ X) v' r3 ~) b5 V                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
/ @, |0 l  r; ~1 g+ s, r                        part := @.transpOrder;' Q: D" F" t: [& R# s! V9 f) h, c- {
                        part.move(@);-- load part
- F5 g- h: C2 g2 G/ w- w                        @.CurrIcon := "load";
8 h: p% }6 D2 Y% X                        GlobalDistObj := part.globDestination;9 w! @0 z; o' `( E+ }8 O0 E, O
                        assignLObj := rgmanager.rgAssignL;, j4 t5 S  K7 B7 b0 b. U8 _
                        row := assignLObj.getRowNo(GlobalDistObj);
- B, o( @' q1 P% ^$ u                        if Row = -1 then -- since 70  i9 E1 e  z" J) O) f
                                if lan=1 then
, V! ^1 v8 d) L) U0 j                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),6 U' |- G- r$ ]
                                                to_str("in der Andockstation: \"",?.~.name,"\""));- H& F- g) B# \. z1 ]! v. ~) a0 f
                                else
, u3 [6 D+ X* J& x6 V/ E9 ^3 R                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
( e" k" r' t) N# b' @; d                                                to_str("in docking station: \"",?.~.name,"\""));                               
* v* T2 J7 K" ~                                end;% d9 g( F8 [( E
                        else3 J+ ?- O- H6 m9 w% R. P, T& ]
                                @.Destination := assignLObj[1,row];
% ?2 J) {% j3 O% v5 s' D% e                        end;                        ' A6 p, k" Z* \: A  {
                        newDirection(@);& H- ]/ O; A. X, L4 D. S" i  L  P
                        @.HasOrder := true;
1 P( Q3 _6 Y( g2 O4 _' }, T$ D* |( u                end;* m3 L: R1 t2 t* E, g: L  B0 Y$ `
        end;. Q6 T6 M1 s! d# b6 ?. p
end;        -- of the method
1 R, R8 \% g# U4 f' G
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
/ ?! U: n& G/ k0 I0 ]7 |# g
3 }" C' @' o+ q  A" t这是AGV_putin中arrive的method。3 v, E" K6 d9 y4 ^3 z* {2 t* B

5 m' D* A6 M- J当到达物料速度越高时,这个报警更多,, G* j* ^! x# N% t* E" {3 i
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。/ M% b8 k1 ^6 P6 Z/ `: z$ A
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?1 g# _# P3 [" ]* \2 {
( f( R: x, j2 }/ s
另外一个小建议,就是move,所有的move都可以这样* J2 R4 v! ^2 L& ?1 @* A
if not move() then debug end8 w5 m' p* x. L( E! ]# @& k4 s
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
+ l5 X. r- M* m% D' Q/ A/ Jplant simulation中的free libraries有AGV模板,$ H" @) u# `+ p( B$ g
里面也有案例。  F0 ^+ J+ x9 I7 T( U
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。* u% R' [" h0 H3 K3 a3 j2 D2 m1 H

& {8 X+ @1 x# v( q' ]+ \6 d3 G! ]我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
* S9 m; k1 R7 T- {1 H" [" G/ e. w1 g% b: s
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 7 Q0 p1 |  q6 ?( j) z0 i1 V, U
这是AGV_putin中arrive的method。
1 a$ ]8 n+ H9 ~. L( z% a
3 {7 t# j8 {; u! _4 r- |" b当到达物料速度越高时,这个报警更多,
9 {5 k" C; J( F- k3 K% g) D2 o3 w
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-14 02:56 , Processed in 0.030772 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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