设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7987|回复: 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'
! @' G  L: v3 g; ?+ [( `& ^4 @& Q*/; W3 Y: }; S2 X+ r8 e1 G9 Y
is
/ h" @7 N. p, O! g' q& _        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
8 @2 [- |; Z/ t  n. sdo, P; Y$ N% |2 M2 k9 h/ g) s
        Lan := rootfolder.Internal.Tools.AOLlanguage;
# |/ M$ g# h; A4 @5 K2 ?        if current = @.Destination -- else return
" k7 N) T$ z; F3 x. C: V        then/ ~8 u, [4 \. w# n: p) t" X
                @.Destination := void;2 O6 M( y3 H" g0 _+ m3 ]! M
                if @.occupied then
5 I# c/ b9 i0 E+ f8 V) w                        part := @.cont;3 S/ o% Z- L: v# J
                        @.transpOrder := void;
, Y5 `) L: s+ S) C0 q6 ?! `6 G( y! n                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,% @  K) s* U8 l, I( g! ~
                                @,root.eventcontroller.simTime);/ `, a# N3 q# Q1 F4 g7 @
                        @.HasOrder := false;& B4 H! \& t" m. t
                        @.DrivingHome := true;0 Y! z1 H/ [* t. F
                        rgManager.tryToStartTransOrder;  F: c; m% H2 h) n; {
                        if @.Destination = void8 k3 a! B; Y$ N7 U$ c* Y& X
                        then -- no transport order for vehicle @8 D5 M* L* g: f8 ]' U/ t
                                @.Destination :=- X/ H5 n; X: ~, d  d
                                rgManager.nearestFreeStation(@,track.~);# B3 U  p* M" P& I" J/ f
                                newDirection(@);   ! l# P' [/ H9 V2 `0 ~& w
                                if @.Destination /= void then
( g1 P' J2 k; G+ m3 Z8 \* x                                        @.Destination.NumReservation :=" K8 d; o& I& a! ]  N1 m' O
                                        @.Destination.NumReservation + 1;
4 ]) h8 R) X1 x                                end;
- ~& [3 u. |' W; K6 W" x                                @.CurrIcon := "drivingHome";
, b, R" T  a) i                                @.DrivingHome := true;9 t1 x( T& x4 g* a0 b1 N& _
                        end;! G  _: ^6 l, q' F
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
, b7 W7 D, C' H5 R8 n                        part := @.transpOrder;/ o  F, R/ {. V# w* s/ E
                        part.move(@);-- load part' u% b, V7 q( r0 J& g3 N
                        @.CurrIcon := "load";
# ^% o( ~' N2 A, t; j                        GlobalDistObj := part.globDestination;
  `1 F" E' @* I) |                        assignLObj := rgmanager.rgAssignL;
: r- A5 N  D. n4 _$ Y* O                        row := assignLObj.getRowNo(GlobalDistObj);
7 O% d2 P. s4 t6 O8 m                        if Row = -1 then -- since 70: d- v" [; d( ~1 }
                                if lan=1 then, M! o; P  O" y4 p$ K
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),* y) A0 Z# [. j3 c3 n9 M/ Q
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
! O6 O$ {6 J1 L+ U                                else- b$ ]8 j$ T5 u7 j
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),: F! f7 G- ?" S* X' M* f. C$ i) T2 u! k; ?
                                                to_str("in docking station: \"",?.~.name,"\""));                               
. ~" c7 I; o# D                                end;/ {3 {# H2 w" G$ n
                        else9 ]5 @9 l( W. P
                                @.Destination := assignLObj[1,row];6 c( R( h0 }1 w
                        end;                        - r& y' \( a- {
                        newDirection(@);
- ^, o9 F4 I" W% D  m0 L! ~                        @.HasOrder := true;" c1 E( z4 ]+ I% ]+ f- ]7 c
                end;
( i5 I1 @4 [% J- h1 h3 x        end;
7 r) H, Q' o+ S8 {end;        -- of the method
: V, D4 U2 B$ m; B
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
1 B3 |& m% A& K6 _$ n; e& K
" C- T2 n  G6 E4 I0 N这是AGV_putin中arrive的method。
/ u: w% ~- r6 ]9 I' i, u
9 R& y; h( y3 X0 N  u8 f4 W% P/ V当到达物料速度越高时,这个报警更多,- U8 O2 C1 B( y# n/ T3 X
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。) B5 z7 R0 r' \7 x! ]9 o5 @
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?' p- d! ?6 S) N/ [6 c
. g2 i; e7 l* h  K& v- {
另外一个小建议,就是move,所有的move都可以这样$ G4 ]! m0 R9 X5 B) W
if not move() then debug end
& h9 D; e$ z+ s/ k这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
, \( q0 W! J) @" |plant simulation中的free libraries有AGV模板,: A8 y7 W! M' x: L  p$ k
里面也有案例。; b9 b* K4 ~/ S
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。) N( c6 Q% u3 K' h* V8 b. O0 b$ F
8 [9 v! T0 S+ l* @/ `: V
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
7 B4 ~' w7 w- X  R8 ]2 A: v( @/ K! T- x2 Q5 O
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
6 \  G* U% N, Y2 i这是AGV_putin中arrive的method。
+ x! T7 p6 [7 j; Z5 b% \: W! n5 P% e2 M& o6 O+ Q5 O1 h" t
当到达物料速度越高时,这个报警更多,
  O) o  C+ n! u7 E2 {
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-9 09:03 , Processed in 0.018107 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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