设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8982|回复: 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'
" ?8 g! Q  c. d3 a*/
6 C, |( @- Z. T. Z5 a& h7 Fis
/ d2 v4 Q1 j1 M: ~7 D! H% D4 A        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
( S6 @# z8 Q4 g9 Sdo! L" w! V: z* T& b0 @/ ?/ O6 U* o
        Lan := rootfolder.Internal.Tools.AOLlanguage;/ N. R* I% R$ ^/ _
        if current = @.Destination -- else return4 K+ ?, J- l8 T/ g+ x- v$ V
        then! v5 s- J3 W! @' z$ }  D1 z- J
                @.Destination := void;
3 J  N- n& C9 ~4 W- c4 ?0 N2 J; `                if @.occupied then7 _' A+ G* y  Q: u9 Y+ v
                        part := @.cont;7 t* Z  D) M/ q: |5 \
                        @.transpOrder := void;6 _" o( F  y$ W5 J. P4 x
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,  z  R$ J1 {* K$ B
                                @,root.eventcontroller.simTime);
; Q0 C2 K0 g7 x) F% n. ^# A                        @.HasOrder := false;# j9 \9 I0 N' q9 s
                        @.DrivingHome := true;; V6 ]; V9 b. y, _
                        rgManager.tryToStartTransOrder;
) K6 s9 B7 D# K9 _9 W& n                        if @.Destination = void
* u2 W& k& W) `$ B) K5 R                        then -- no transport order for vehicle @$ f  g: I0 ]) ~& V
                                @.Destination :=) F* V2 D8 I$ ^7 t. O4 q( `
                                rgManager.nearestFreeStation(@,track.~);
: \  \5 O& m8 _1 E% I& q6 v                                newDirection(@);   
+ F4 F/ E. Y0 |% r2 `                                if @.Destination /= void then
. [, o  k6 Y$ b  B                                        @.Destination.NumReservation :=
" \% t# V( I$ U) g                                        @.Destination.NumReservation + 1;# S3 k% D4 ~0 m. K8 ~9 |7 O
                                end;
+ _; t2 e/ m& E) z6 V8 m( i6 G  z& ~                                @.CurrIcon := "drivingHome";
: F* z, h8 {) R$ x1 s; M9 Q                                @.DrivingHome := true;! Y4 N! i, Y9 a+ e8 w  V  ^
                        end;, U1 K7 t. A) s- X4 t
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station- H) u7 @" O5 K# e
                        part := @.transpOrder;9 w4 }) t! ^$ A+ W, p' J  a- s
                        part.move(@);-- load part' Z" K( R" R$ E# k( h) s( h3 ~9 @
                        @.CurrIcon := "load";# I2 _% O- d' P6 O. Q) S5 h
                        GlobalDistObj := part.globDestination;
" O- c& }5 Z+ N/ K; K' F                        assignLObj := rgmanager.rgAssignL;
/ t2 d1 M' d" Y                        row := assignLObj.getRowNo(GlobalDistObj);9 Z+ T( N4 W! Y( u  L6 ?% Y8 p( V
                        if Row = -1 then -- since 70
2 X7 S* N/ C8 R' A' `8 ^8 @3 Q$ g                                if lan=1 then1 s+ O$ F: ~) w; B# t( }! I) I' E: J
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),% q0 W5 J3 M& V; \$ Y* v8 n1 t
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
! _; b7 ^& p% r% @& l2 F                                else4 r/ Z1 m3 g$ r3 o0 o. f0 d
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
  K% d& x1 Z3 d" X0 ~                                                to_str("in docking station: \"",?.~.name,"\""));                                7 l# F1 }* i1 L! b  Y% z$ P
                                end;
- j* x0 w. o3 z$ }                        else7 i% q1 q& V( x8 s, a
                                @.Destination := assignLObj[1,row];
9 Y7 ~7 ?; c' {" Z                        end;                          n$ V* }. o. p6 J+ C* I
                        newDirection(@);
8 o; v! t/ d) D3 |4 ^' Y1 k9 V                        @.HasOrder := true;* @3 g. H, R2 J% m. ^' ~8 f
                end;
9 C0 [) V$ d/ X. W3 Q& x2 t5 H        end;
- c$ P6 i8 m- H- o5 ?; R9 Eend;        -- of the method
" d0 t) ?7 j$ \0 k2 p
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
. g' K9 ~2 ~& _/ u8 z0 W1 s. a9 t4 \8 {+ ~) y( s
这是AGV_putin中arrive的method。, s  S: m+ |  n" @

4 S% i  \- m5 O0 h! b当到达物料速度越高时,这个报警更多,
3 m6 {; s5 A3 b1 V可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。% D5 W% m/ R- Y1 m
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?0 R+ y' y9 G- E6 N6 \. Y' S9 t
, y  }5 Z3 Q* l5 O
另外一个小建议,就是move,所有的move都可以这样
: v. Q. e9 s4 @+ ?if not move() then debug end
: \) r0 V8 L5 P! ?  d- r  p这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。6 n. r# p9 k6 Y( n, f4 b$ f4 r3 f9 m$ z
plant simulation中的free libraries有AGV模板,/ v9 p" {1 T; ~9 _5 Q0 Q/ K
里面也有案例。
% H) l% {( ?/ c: P9 L5 z% M, O我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。; N' E' W) ]. y1 B4 [
# ~* h- z+ m  d) Q' |
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 # W; n. y4 J9 _* z7 O/ o/ p
# Q8 k) ^( ]) ?
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 * c) {' s+ |1 l; o' F. p! |8 Q+ {
这是AGV_putin中arrive的method。
; Y+ H! ?( l$ ~
- k3 T" v/ {4 I* g当到达物料速度越高时,这个报警更多,
; ]9 P- L* b# q" p* v) F/ i/ S
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-7 09:59 , Processed in 0.018946 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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