设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6193|回复: 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'. R. v- f3 W8 l  f% b# H% w  t
*/: p% [* A9 \4 f2 {8 D7 L
is  Z  E/ }; U0 r, V, N
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;9 ^* _- G/ Y! G% m+ e5 I# m$ [. c
do' p2 X+ X" |& b9 |: Z5 s
        Lan := rootfolder.Internal.Tools.AOLlanguage;
4 W  O& A$ V5 y" a5 L+ g5 }        if current = @.Destination -- else return
- m- W: w* U2 @/ S7 x2 W8 @        then
5 U- h4 L5 q( Y+ D                @.Destination := void;
. @+ `2 n: ~) |) p# q( W                if @.occupied then/ y% Q! T( s( j2 j5 `2 a+ L
                        part := @.cont;& A. A2 j' ], Q& W+ J' Y0 I- [
                        @.transpOrder := void;" y+ i: |/ b/ s  y
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,7 L6 f0 O8 I! ]8 l! W
                                @,root.eventcontroller.simTime);3 W! R& _- g. o. V1 u7 z
                        @.HasOrder := false;
$ o! x# l9 }+ a" N7 }6 Y                        @.DrivingHome := true;
5 P! e. k4 _9 U. }$ j                        rgManager.tryToStartTransOrder;2 }( y$ N' n. B  X
                        if @.Destination = void6 `7 G' A) I2 m* K
                        then -- no transport order for vehicle @
: l0 i3 F9 A* ~. o( ]/ E' X! M! T0 ?                                @.Destination :=$ w8 a) [, w- ^6 _
                                rgManager.nearestFreeStation(@,track.~);0 ]5 q. A; D$ m; Q# i
                                newDirection(@);   
6 {/ N; B: F. K! u* h+ R4 X6 F; B4 w+ o                                if @.Destination /= void then2 C, F0 g0 k- h6 _
                                        @.Destination.NumReservation :=
7 O. G. W, |4 _) N% W5 C                                        @.Destination.NumReservation + 1;" g- M5 C8 {$ U( g2 T! O
                                end;
0 Z9 k( a& g. j( w6 E                                @.CurrIcon := "drivingHome";
! s9 Q# U5 \3 w% O3 k! S3 K2 i3 c6 {                                @.DrivingHome := true;
& V1 S- ]* ?* N: K                        end;
* I: j. ^0 x- X                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
# s8 f3 h+ d+ b! \                        part := @.transpOrder;
$ [2 F. \! ~1 C! Q                        part.move(@);-- load part0 y  K6 \9 g# M7 {' P: M' H
                        @.CurrIcon := "load";4 H% c5 q+ x0 X5 w
                        GlobalDistObj := part.globDestination;- K7 }% N, G2 `% i; `4 p! E' u; ?7 N
                        assignLObj := rgmanager.rgAssignL;
' x8 ]: }- H  X1 S                        row := assignLObj.getRowNo(GlobalDistObj);
4 @  }2 H9 C9 Q  e/ ^; Q' o6 l5 I( f. o                        if Row = -1 then -- since 70' {9 f8 S/ S5 d3 ~7 ?$ C9 I% {
                                if lan=1 then
, R& ^# L3 u. s# y                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
: F& l( |, w  a5 T, h                                                to_str("in der Andockstation: \"",?.~.name,"\""));6 @8 `- u# @% B+ F: M( c
                                else  _. V/ @* |- H8 |9 v4 k
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),8 ^3 y2 T% u& C9 M  t4 E
                                                to_str("in docking station: \"",?.~.name,"\""));                               
1 H, t, e- {/ }& A6 ~/ b( h                                end;
/ R5 P, U9 x; \" N7 E. o                        else
5 z8 K1 _; `1 @                                @.Destination := assignLObj[1,row];" p0 z3 p' Z" k$ u) e% }
                        end;                        & ~7 z6 F0 i, o8 S& g. G' z+ z
                        newDirection(@);
$ W( {+ n$ W7 ]0 D                        @.HasOrder := true;: I% K' |3 G: G/ m1 a& ~
                end;
4 |8 T9 B6 v% S/ A, Q        end;4 T) p0 F/ d4 s+ ~+ d$ A3 U
end;        -- of the method' Q6 y  }/ K# E
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 1 e: a- W8 T0 h* r# M  O' @

% B" u/ S# _" J1 m  T& C7 a3 n9 N这是AGV_putin中arrive的method。% W- _& g# A- x  S3 w

: t& A" y: a8 e5 G1 {* U当到达物料速度越高时,这个报警更多,! J0 O( \/ B* H% W
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
1 W/ I  y" H" p$ `程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?- r* q6 l1 V' ^' z! B

, A0 v) V  b. ]) M4 z6 \另外一个小建议,就是move,所有的move都可以这样( Z( ^* _& g  J' V) U* d! Z+ Y: g
if not move() then debug end  v) }5 K9 e7 I* w; E. B
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
  ?8 }% Y  k8 S) u4 a" Lplant simulation中的free libraries有AGV模板,
9 l  G+ W9 u8 j7 n! }- y$ \里面也有案例。2 Z2 {6 W+ F" n) [7 }; x
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
8 J/ D1 a6 S3 ]+ w
3 X4 O" @9 U1 Y. I% ~8 F我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ) s* W! J2 E9 b1 |( _
' A, v% V0 q+ i1 L
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 # D; I- y( ?- T" q; G5 |
这是AGV_putin中arrive的method。$ l9 D2 M  E# O# Y, T
3 |" `0 S" p' z" g. n5 e& e
当到达物料速度越高时,这个报警更多,

* r7 C! i8 b0 O7 ^1 A+ e2 z另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-24 06:23 , Processed in 0.019200 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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