设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6684|回复: 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'' s" b* e& O9 Z- k  V$ m0 n6 U
*/+ m7 k- M% n& T1 P$ s: i/ p
is
( v+ T* Q. }" H5 c' c! ?1 r        part, GlobalDistObj, assignLObj:object;row,Lan:integer;3 J2 x$ a" ~  U* o
do
0 i# I: q% M' c: ]% |        Lan := rootfolder.Internal.Tools.AOLlanguage;
8 @- Z1 p$ W, k        if current = @.Destination -- else return
5 L+ u  _: g0 B0 ^, E        then, _' [& i0 P0 P+ J& m- J) \) a2 j
                @.Destination := void;" ~' x) |4 ]9 ^( ~/ q: w
                if @.occupied then: G! P7 F/ ^  r
                        part := @.cont;9 ?2 ]1 L, Q% r; _# n5 a8 R
                        @.transpOrder := void;; ?/ k/ G) p9 C& Q9 y
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,: j3 T& m4 }0 G9 o7 c* q1 p
                                @,root.eventcontroller.simTime);, b4 a2 ?$ V0 R( h
                        @.HasOrder := false;
7 \7 @5 Q% H! d) j+ O, z& P                        @.DrivingHome := true;
6 C& z/ Y( f: b                        rgManager.tryToStartTransOrder;
- h: P. Z$ W+ G/ E                        if @.Destination = void
0 i$ q1 ~+ S! n  A/ [* L+ x2 I                        then -- no transport order for vehicle @2 E0 b( ~8 V6 V7 y" W3 |% I
                                @.Destination :=
! n6 g+ q) `, M3 E5 U; P                                rgManager.nearestFreeStation(@,track.~);9 T& s9 ?# a8 ^/ L+ R7 m
                                newDirection(@);   ( p+ h2 U5 u+ X" {
                                if @.Destination /= void then7 R9 n' e# Z  ^* _, H5 H
                                        @.Destination.NumReservation :=0 [% c9 [) I# P) {' z" K* e
                                        @.Destination.NumReservation + 1;# d5 L; x( L* z8 ]! o1 D& `
                                end;) @5 V) a* C& U- t5 u
                                @.CurrIcon := "drivingHome";# U& W- @& c5 X% G
                                @.DrivingHome := true;5 M) A$ B( N5 e+ a: a' r
                        end;
- Z$ H" d4 i& e2 C& e2 h                else -- the vehicle @ is empty, both vehicle and part are in the same dock station3 D6 t" j: F. x) T0 l. t3 u! F7 H
                        part := @.transpOrder;
5 R/ y; Q; H" D4 d9 u/ z                        part.move(@);-- load part
1 |, S- d) b9 q; ?                        @.CurrIcon := "load";
9 c: d& z7 ]- z4 }+ }$ Z                        GlobalDistObj := part.globDestination;
- C3 s/ P( z7 ]                        assignLObj := rgmanager.rgAssignL;) j9 L; I  z3 q
                        row := assignLObj.getRowNo(GlobalDistObj);
. e5 [! o3 m+ v8 o. X0 D, N                        if Row = -1 then -- since 70; v" G$ y) j. J4 v
                                if lan=1 then! C% a; b4 T9 D- n! A5 U
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
, u( v% R, N6 n                                                to_str("in der Andockstation: \"",?.~.name,"\""));8 Q# W( U  f. ~" T8 E/ C+ v) l2 ~
                                else' V6 Q) H' b( _! ^4 N( n3 b
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),5 o+ S/ |9 F( q3 J7 X$ X
                                                to_str("in docking station: \"",?.~.name,"\""));                               
! Q1 S# Q+ n% [, Y; D6 q( y                                end;
/ l: P$ B1 J) ]5 g: W                        else
: [; m' J* G  c& _: l2 R( |( t                                @.Destination := assignLObj[1,row];9 s+ M' p" Q* u3 I
                        end;                        9 D. N, Z. j6 S. Z) k/ l
                        newDirection(@);
! r5 N" y* T6 U                        @.HasOrder := true;
0 q. A. F' K8 x& p+ Y$ x                end;* C. [& p3 s6 q, U# v- L( _! U6 J
        end;
  N9 S% P3 e) y: v& yend;        -- of the method
' A# |8 U8 g+ P
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
* z$ y7 w2 X' t5 `: D
/ ^4 C0 }8 @2 L' A这是AGV_putin中arrive的method。4 _6 E% o3 V# C/ y

" ^# x1 o5 h. w! o( y& ]当到达物料速度越高时,这个报警更多,
9 k; Y; Y) c- _7 {! h3 E可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
$ E6 [; L5 Z- ~1 b4 s程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?! E6 l6 h" C  {. A3 O3 m

# c" j) W  O0 T- Z* m) l: C另外一个小建议,就是move,所有的move都可以这样
! v" j" P' A( ?5 uif not move() then debug end
6 @; w$ _( W8 X( G' N! s, t这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
0 E( M) s6 J/ V4 ?, Z1 _plant simulation中的free libraries有AGV模板,. |/ f) e5 \  Y
里面也有案例。
' _# i  Z7 Z6 u- k/ D" J, j我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。; ?" o8 x* l4 T* y

5 f- {8 n0 w- M. A* e我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 , y( ?0 r3 j! U4 a
( r1 W+ w  i; }: K
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
7 H/ }$ E4 D' g! m; _8 ]9 L: N这是AGV_putin中arrive的method。
' Z# y$ O4 o- Q$ G% n; `1 b9 C' A
3 t( D6 y9 I8 P* ^; U' y当到达物料速度越高时,这个报警更多,
' I% ~$ F5 K5 g$ p+ e5 ~1 Q
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-20 19:03 , Processed in 0.019311 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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