设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8476|回复: 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'
* D/ G- p5 @8 X* _*/6 V% G/ V' i# n, X6 G+ s" ]% a
is+ S9 \3 I1 e, N* X
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
1 J* M0 M" B; Zdo
" ?5 e2 ~/ H' `2 n7 M  j        Lan := rootfolder.Internal.Tools.AOLlanguage;
7 P  ^( R) ]. \, i, y& v  m2 w( m% W7 a        if current = @.Destination -- else return8 q+ x+ j. F( O" E+ x5 J( @5 N& ^+ U
        then
6 z2 w* s( i9 r, _9 w- e                @.Destination := void;+ H0 P% V$ T" R8 z8 I" M3 }6 S
                if @.occupied then
( u( v/ k9 M- R' y                        part := @.cont;9 X* B# w6 k2 {
                        @.transpOrder := void;* x) S5 m; u7 {. X! @: N! b
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,6 [! j6 F, R; l* Q, J3 ?5 u& T" d
                                @,root.eventcontroller.simTime);
& o' y8 O) C/ B5 C" r                        @.HasOrder := false;
& U, t& a: H# D* I/ |/ N                        @.DrivingHome := true;
% O& F  t" N* \1 e6 C6 t' D) S$ X                        rgManager.tryToStartTransOrder;
. A8 x$ a+ q9 z* z/ \) i: ~- B                        if @.Destination = void
! J$ M7 F: G8 r9 m8 K2 t6 o1 O                        then -- no transport order for vehicle @) F$ {9 y8 ^( @! R
                                @.Destination :=
$ y. f# o+ U3 R4 f( s2 v; ^                                rgManager.nearestFreeStation(@,track.~);
# R1 \: a- D1 e: Y                                newDirection(@);   . u& D0 B* ?# v5 ]9 q' f
                                if @.Destination /= void then
  w8 \  Y+ P) n6 d                                        @.Destination.NumReservation :=
+ i* Z3 \- u% ^4 w( M  @                                        @.Destination.NumReservation + 1;1 U2 C- [: m4 x5 V/ W# P  A% X8 F
                                end;
" ]" n1 P# S) B. [                                @.CurrIcon := "drivingHome";
# P% d; r7 G0 R: i$ F( n& H                                @.DrivingHome := true;" W3 l: L3 o. V1 {& K, ~8 d
                        end;
$ R" Z7 g: w% C" l3 M                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
5 I, k+ c8 _7 l2 }$ z                        part := @.transpOrder;
2 x" Z; X% U8 X                        part.move(@);-- load part8 L4 C& ]* z/ g
                        @.CurrIcon := "load";3 m/ e& F9 v) c* Y! \6 @! F* y
                        GlobalDistObj := part.globDestination;5 @( U5 I" R9 L. V, H/ ]7 l9 @% J
                        assignLObj := rgmanager.rgAssignL;; {7 i4 N0 n3 J3 d" W
                        row := assignLObj.getRowNo(GlobalDistObj);2 N/ t9 w/ ~! `! q6 @2 W
                        if Row = -1 then -- since 702 g1 n) b* _% F$ }, _
                                if lan=1 then3 P8 }( Z/ A1 O% J
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
* x9 C/ d" ?+ i' @                                                to_str("in der Andockstation: \"",?.~.name,"\""));
& Q7 H: T" t- V' C7 A+ `2 J                                else+ f+ Z% u7 m- ~$ d! ^; G/ e2 c$ J
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
6 n5 r! |* e5 d% z, r                                                to_str("in docking station: \"",?.~.name,"\""));                                6 w7 e+ W& _) q  Q& z
                                end;
; ?+ c5 v1 R, e% v4 o# _' g: x                        else
! [5 Z% w5 }/ i. p! w% |                                @.Destination := assignLObj[1,row];
% w( U( b* L9 v0 B                        end;                        2 y# X) w, {& g$ Q
                        newDirection(@);
' N* H% P  ~; P                        @.HasOrder := true;
2 r1 Z( ^0 d. K" X: F( a                end;
: V9 U1 V* M2 I, n% ]        end;
. p9 u& h( \& A2 nend;        -- of the method
- y1 ?+ Q; F& p! P" L: w
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
8 g7 v1 ~2 X/ {8 n* \# M4 t$ m4 K' L
7 i3 a+ g+ a; }( R这是AGV_putin中arrive的method。7 b9 O' \% v& e/ W0 l( r( S

5 T/ K# G4 p/ X+ o/ Q1 o当到达物料速度越高时,这个报警更多,
& Z* X( I7 f( Q+ B& A. R+ G0 ~) a8 A$ `可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。0 J* B! f! S1 w/ v8 L4 q) m
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?7 E) h  D3 y1 G% W) Q+ i: O
( ~0 N- U0 ]: ?% J( ]; H  `
另外一个小建议,就是move,所有的move都可以这样
# Z2 s: t4 f9 A, V# R; Y" u3 C; r& Yif not move() then debug end) \+ o" k) }' z
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。/ \" u6 x: x* x4 v9 K. z
plant simulation中的free libraries有AGV模板,' C: B( l) K$ v) V  t! L' @
里面也有案例。
% _4 D/ h9 A- O4 E) d9 D# _我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。8 r+ T) W7 V2 f3 o5 b; A

0 z0 t5 v& z: d1 P! y我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
! a& z2 R# s5 U# n& Z
; K, L7 Z  i% M$ B( ~4 P那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ! i- v  d4 ?, o0 l' L
这是AGV_putin中arrive的method。% Q8 Q# @, G) W2 p0 [0 `. y
" S7 [  G* l& i" y$ Z4 f
当到达物料速度越高时,这个报警更多,
" Y4 |9 F$ t- z
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-6 08:20 , Processed in 0.015111 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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