设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6209|回复: 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'9 |. v3 I$ f8 V8 T7 O, m7 T
*/6 E) A2 y6 Q. n
is3 ?- \$ h8 o" Y1 @* P& F7 p$ S1 v4 g
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
2 M6 J0 k( e# L: F6 F. Xdo1 X! V4 e8 T8 o- J# X8 q6 o
        Lan := rootfolder.Internal.Tools.AOLlanguage;2 X2 D9 H3 h8 w! q, z) ^1 A
        if current = @.Destination -- else return
) k+ g% h9 w' _& G  Z        then
$ m4 q" l" \+ e% W; x                @.Destination := void;& W7 G# M2 \9 y8 v
                if @.occupied then
, j8 D$ K3 Y* ^4 ~8 t6 s/ S  }. q                        part := @.cont;
( X9 q) }+ i6 u! z% c$ V- P$ ~6 h                        @.transpOrder := void;
  G: J( }9 i. I* n  D- N* Y! w! D; B                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
5 q: Y0 G3 p% N! l! W3 @                                @,root.eventcontroller.simTime);
! u0 d6 h0 l" U4 K# V4 o                        @.HasOrder := false;, Z. T6 Y) J3 O
                        @.DrivingHome := true;% b# C0 ~+ C! [+ x8 X
                        rgManager.tryToStartTransOrder;
2 d8 i: Q# g7 n& O2 }. A% d% ^                        if @.Destination = void3 T# [  Y0 I: y; Y8 G7 a0 J5 _
                        then -- no transport order for vehicle @% h( n5 K" l. V1 B6 x9 x: Z0 J, Y
                                @.Destination :=
2 Q5 r' H% d! k& f0 o$ l+ F. ^0 s                                rgManager.nearestFreeStation(@,track.~);
8 E" B! z0 v1 b! p1 I                                newDirection(@);   $ Z* l) F# |% \5 I* x0 p
                                if @.Destination /= void then
% e+ X& O9 h/ S3 b: p                                        @.Destination.NumReservation :=
  |% j' ^  C: m$ Q" T                                        @.Destination.NumReservation + 1;7 j7 F: k7 B2 I. Z
                                end;
8 e5 }3 [6 h2 _0 v6 C                                @.CurrIcon := "drivingHome";
5 i) o7 J" ^' W  {# ?' O8 Q, t                                @.DrivingHome := true;
7 u' H( A1 h* x* N: H                        end;
4 y* a# }" T$ b- ^                else -- the vehicle @ is empty, both vehicle and part are in the same dock station/ S8 j' C' L1 ~
                        part := @.transpOrder;
% d9 n3 r5 R" l. H                        part.move(@);-- load part
8 x) U0 M% c5 u                        @.CurrIcon := "load";
+ a/ ^8 j9 t0 D: p6 H/ a                        GlobalDistObj := part.globDestination;
, f- q2 J' J8 ^8 J                        assignLObj := rgmanager.rgAssignL;0 w1 Y5 H* J0 `4 q, |7 L, ^  v
                        row := assignLObj.getRowNo(GlobalDistObj);
2 E, v7 h$ w5 Z( W: R# T1 l- Q                        if Row = -1 then -- since 70
$ Q' e" Y6 [+ j. T& p5 \2 F                                if lan=1 then
! p3 s% w! q! |4 c+ S8 z2 D6 i                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),( Z, a; J+ k& s+ s5 o
                                                to_str("in der Andockstation: \"",?.~.name,"\""));; @; Z! s% F& t, N+ X
                                else2 y: e8 [+ O* X" h9 t0 o* B
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
+ n' b& }& `6 {' A                                                to_str("in docking station: \"",?.~.name,"\""));                                0 }3 a- X: P+ r( L. r% i4 P: C
                                end;* c+ m$ G( V; g6 I: n
                        else  a: v1 R, D9 ^. {. n
                                @.Destination := assignLObj[1,row];
0 P$ g3 }& W, d8 A                        end;                       
) o' j( `- n  T# A4 r, {# C                        newDirection(@);1 Z. m3 F0 }6 D0 l2 A0 r2 `
                        @.HasOrder := true;
4 ?3 m/ k! Z- e, R; I4 e- r/ R0 ^/ s# G                end;
+ s4 ]* ?6 D. t% A1 u) |2 x2 `! V7 |+ f        end;
- Q: [/ v8 q+ pend;        -- of the method
: }" D  S. }2 |! ?9 u
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 2 V0 q* g; a) o
/ H9 Z) z9 N) v8 o' Y7 @
这是AGV_putin中arrive的method。
* H/ `4 E; \$ I6 L: J8 u5 `
, I/ y1 Z( t5 ^/ a' N当到达物料速度越高时,这个报警更多,
" ^1 Q5 N" P7 ~5 c5 N可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。7 y! L) l$ ~% U; [8 K. n7 h
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
' K) ~9 l" n, F( t. k: ^7 V7 h/ y5 C" E" D
另外一个小建议,就是move,所有的move都可以这样
. [. ]1 G5 j: n7 k' Hif not move() then debug end
7 u+ X2 E* c; ~这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。2 t+ N+ e: z( F+ f+ s7 B8 W: B
plant simulation中的free libraries有AGV模板,: k1 O$ M* }% c2 u, a; Y1 q
里面也有案例。
; q) T. i+ g! o' I! T我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。" J* t  l, }' p/ Z( W. M
0 I  I! N" m3 ?% W" j2 k9 d
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
" i& x: X4 D" @$ h3 d% E  M
8 \) I( \* u+ L那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 9 o* R# w3 q8 v
这是AGV_putin中arrive的method。
6 o/ l  c  L" g! W! R  @8 Z9 F* p2 v4 a0 |6 s/ Y
当到达物料速度越高时,这个报警更多,
0 Y# T5 R9 @5 h; D
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-25 01:56 , Processed in 0.020158 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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