设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8592|回复: 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 A) j4 A0 u, n3 A* y*/
# k, h9 |% C! q& l' D! dis
) I) n  P* ?9 z        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
& V; P8 u! l& q) w% g$ {$ a, D7 ddo; \. N3 ], o( J2 J0 A. v; J
        Lan := rootfolder.Internal.Tools.AOLlanguage;  e7 B8 P+ }0 t+ t7 _0 _
        if current = @.Destination -- else return
% F3 c/ R# v+ `! K: @" [        then  K6 s% _+ O- ^/ M5 D! G4 j" n
                @.Destination := void;
, ^0 C; f$ ]0 H( \8 a6 p                if @.occupied then
# ^. ^: h% h2 b& I& O6 {; ?                        part := @.cont;2 o, k5 X- M6 o) e% X# B
                        @.transpOrder := void;
+ v- C3 }6 _2 K# m% `                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,& ]6 p; \/ W( L
                                @,root.eventcontroller.simTime);/ v! t+ g/ R9 h# N1 ^) w$ }" D4 Q6 e
                        @.HasOrder := false;
' Z$ C* g9 Y% t; M% f- j9 _                        @.DrivingHome := true;* v' G" O5 T+ H9 m
                        rgManager.tryToStartTransOrder;5 s$ l# A: s5 m2 _/ q
                        if @.Destination = void; j& k# U3 A0 B- k, m7 N+ E3 W1 h# f- K) l
                        then -- no transport order for vehicle @, m! O% z, E! Q& a3 C, K/ o
                                @.Destination :=7 j0 [4 U; K* A4 D. n& l2 J
                                rgManager.nearestFreeStation(@,track.~);
- _2 A) \0 V) T( `                                newDirection(@);   
% e2 ^0 l, o; V; {0 _: j                                if @.Destination /= void then
' F3 K7 X8 ]& r, w4 Y, ?                                        @.Destination.NumReservation :=
8 A2 m% B! V2 `& U3 }/ ]                                        @.Destination.NumReservation + 1;2 h2 [2 k# O2 W# }. {5 t
                                end;' x( ^* e' I( e2 |
                                @.CurrIcon := "drivingHome";
6 R7 W; u# y) G2 E0 T                                @.DrivingHome := true;
4 Q. |! w5 s/ j7 C0 X                        end;% e$ l8 T( j8 j. o" a; O
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
. h+ u9 y8 F9 A                        part := @.transpOrder;
6 X, [. T$ n- Q+ c" t9 ~1 A0 i                        part.move(@);-- load part
# X" Q1 ^& i. }$ t' l                        @.CurrIcon := "load";
- T$ i1 e8 v6 n& Y7 Y, p                        GlobalDistObj := part.globDestination;
/ b3 k2 t. Z& u* I% e. n! \. ?% }                        assignLObj := rgmanager.rgAssignL;
6 [& F# T1 ]' R3 N! q! Q                        row := assignLObj.getRowNo(GlobalDistObj);
/ x8 z. T* D( j4 b                        if Row = -1 then -- since 70
# P' J8 z4 L/ e5 D# f2 {: @                                if lan=1 then7 ]) c$ a- q% T  @
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
8 i, p, ]) c4 p7 t6 z) `                                                to_str("in der Andockstation: \"",?.~.name,"\""));
) R, S8 @: H9 y3 p7 U8 y! t                                else
$ w# _: E* T! V( D                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
) ^( @  t" q( b6 W' z% y                                                to_str("in docking station: \"",?.~.name,"\""));                                6 ~- X" G4 \7 V( i% {" f
                                end;; A( g2 c7 H. o  }% x( C9 V  X
                        else
% }9 b% A* e" l9 S* |% C) u/ c7 O                                @.Destination := assignLObj[1,row];
  f$ B5 h0 J4 }& E$ U                        end;                       
+ T" _! A' T( v& S& f  }                        newDirection(@);! B; _# e0 g8 I% D' a
                        @.HasOrder := true;
4 T. n. ^/ N* k* P  s0 y9 }# D                end;
+ S- g! a7 r! ^, {: b6 c        end;
+ ?3 ?6 u  v6 [) n1 k8 y' Nend;        -- of the method% ?; K, E, g% H: _
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
! e( N, E; q9 ^+ ^, Q/ }( f7 G/ n
% l4 L& y0 O. ^2 }, Z5 ?) r+ ]% W这是AGV_putin中arrive的method。
/ e# F, A8 u. @! G' V) G0 H/ j) {; o% [$ [2 m. T% J# R
当到达物料速度越高时,这个报警更多,$ x' q/ H: m5 ]0 R; ~8 I! V
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
# X! x  I9 q  a2 x, [5 }程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?- C2 ^, D/ s0 S- p+ h% c3 Y) t
: U% D( u. x0 ]! X8 L
另外一个小建议,就是move,所有的move都可以这样
! X* g: @7 b$ j) I6 tif not move() then debug end
! H6 c) s1 l0 ?+ b4 I这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
" W, ^/ z4 t" y) C: `. `' Rplant simulation中的free libraries有AGV模板,7 D5 I) V' g! v: T) P6 Q
里面也有案例。( b  K! \  o6 d' ^. l8 s; N9 f
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。6 [: ~0 s0 D9 S4 i
4 V2 N7 `4 j1 G. o1 d$ H
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
& W" i6 _& N5 c5 Y. n) B, z  ^5 Q5 Z3 O# E
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 8 `/ L- e9 S4 i, i
这是AGV_putin中arrive的method。# E' u0 t- r- U$ D7 w- k

: j4 G6 M' r! W2 d当到达物料速度越高时,这个报警更多,
7 [5 X* o8 I2 u1 ^8 I% Z# m, }
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-14 07:17 , Processed in 0.014419 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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