设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7107|回复: 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'; i7 m* }: z3 B, ]
*/# O! H  Q) W" ?0 @& F, L5 @/ |6 [
is- C6 A0 X/ J+ Y: M0 a' c5 C
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
5 x' w& R9 I8 ^. e4 J, Q5 Sdo% _6 D: E; _  x: M' ~: j" ?
        Lan := rootfolder.Internal.Tools.AOLlanguage;
- R3 t  S, [6 r; F9 K, O% \        if current = @.Destination -- else return9 F. n' S" @( i1 H/ y
        then
( v4 p# _7 i/ R( Z7 S5 k                @.Destination := void;
, s8 |7 F5 i% ^! ]                if @.occupied then
3 C" m- h% c9 Q$ p3 a                        part := @.cont;
+ f  x- b8 i5 u: k5 c2 h                        @.transpOrder := void;. z) |( R/ a' S  I0 j. n5 Z* O
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
' f6 [: i! Q7 X8 ?( H" O                                @,root.eventcontroller.simTime);
( x% F7 Q; v$ i5 Q& m) z                        @.HasOrder := false;
, Q/ z1 e7 E& z* d                        @.DrivingHome := true;1 [6 r! w% k' W) Y" i  K8 ~3 `9 b8 v
                        rgManager.tryToStartTransOrder;: S$ y# k* Q" L- R" m5 t/ }
                        if @.Destination = void" s% _1 c4 I* A- ~% O
                        then -- no transport order for vehicle @
; X: E/ A- @" N* v$ B* ?                                @.Destination :=* `5 H. J/ z! b7 c2 X: a
                                rgManager.nearestFreeStation(@,track.~);
! v, G1 i. F. |$ l  N+ x/ R                                newDirection(@);   ( K6 U  X8 Q+ s, ?1 j
                                if @.Destination /= void then
7 ~7 q# R6 p' W7 K6 M# a" d                                        @.Destination.NumReservation :=! m1 D" O0 w- r
                                        @.Destination.NumReservation + 1;
. A& F$ B+ t9 N5 V; w5 d0 o                                end;8 r2 K7 ~( f- T5 `
                                @.CurrIcon := "drivingHome";' N* [+ X, t+ ~  n6 Y
                                @.DrivingHome := true;( J. R. P" P5 l% a& [, A! ~+ [% K2 ^
                        end;% d. B! W# j, g5 r3 Z$ E% l$ N  r
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station4 e0 T# n1 K* D
                        part := @.transpOrder;
% {, T. n! c4 g  R. ]                        part.move(@);-- load part3 {- A& E1 ^+ p6 K
                        @.CurrIcon := "load";
; N4 l: q0 u) S                        GlobalDistObj := part.globDestination;( @, U2 o2 x$ o6 t: v
                        assignLObj := rgmanager.rgAssignL;
9 l2 ]- b) ^5 A. Q* ~" i                        row := assignLObj.getRowNo(GlobalDistObj);
, N1 w: U5 W; t3 w5 ^" u) S                        if Row = -1 then -- since 70
3 V7 p4 W  g0 p2 T8 `- [- u                                if lan=1 then
8 e2 ]. E% b1 w; W                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
4 r; J# B2 ~0 z9 |+ S                                                to_str("in der Andockstation: \"",?.~.name,"\""));7 _! A+ y+ X6 O& }$ o
                                else
3 G) ?, t4 U1 |                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),/ v- |7 @% x; o1 g! a  R0 N
                                                to_str("in docking station: \"",?.~.name,"\""));                               
3 U. y! p* i- j/ `% v                                end;1 B# q* K$ b; B7 T# j6 u
                        else9 T- Q5 v1 q* N  C3 n! |! G) c
                                @.Destination := assignLObj[1,row];) X6 l1 o( U% u. L4 o) T
                        end;                       
* y+ E0 @* p2 Z4 ~- a% h- `: Y0 ^                        newDirection(@);$ I- K( z- I6 b) ?
                        @.HasOrder := true;
) O2 K* P, \2 I! ^" o                end;: ^0 {1 Q  T% J5 t6 y$ {, l- g
        end;" J4 d) @4 [5 V7 a3 p( u9 f" k% R
end;        -- of the method: h- p* Z# q. v
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 5 K' w5 P! ~9 G. V

3 y0 ^! ^3 u% Y+ b( g& s! W这是AGV_putin中arrive的method。9 M& n1 q; @) N: H  ?: k" h/ |' _

1 j. n& n3 X. p9 h: N6 c当到达物料速度越高时,这个报警更多,
: `& O9 U% L$ [( _. k; G9 w可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
5 A2 q0 m0 _; s0 Q! L9 x- F程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
: n, {. I0 c5 r3 a$ H# t9 J" t  ], d- C- |1 K4 ~1 \
另外一个小建议,就是move,所有的move都可以这样6 r. g& l( L! S: Z9 i8 m
if not move() then debug end
; i7 R$ j: O) y  e这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
' t: s  k+ v$ A9 j% b# [plant simulation中的free libraries有AGV模板,9 M1 C5 S% e* h
里面也有案例。
; w0 l, R+ w# Z7 K! [我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
$ {, s9 W, m% t2 u- Z, @! F" F% u' j3 p: E3 d# r2 m/ M
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 - P9 J/ o. r3 \0 b

8 y( e, x7 Q( `' q: N- _8 a6 {那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
" v2 z, h) H  [. {( M2 m这是AGV_putin中arrive的method。  {" n1 c8 k5 \! N* f
  B6 p) E  v  U- M, z
当到达物料速度越高时,这个报警更多,
( ?( H: h! `6 F
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 17:48 , Processed in 0.015251 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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