设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6369|回复: 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'. o/ K/ A- `1 }, w5 `5 {
*/
0 c2 s4 O* Y: ris
; o8 o1 j. M/ w4 o! L# ~        part, GlobalDistObj, assignLObj:object;row,Lan:integer;. |7 _/ t- G" ]$ T6 d8 T
do6 `" X5 v+ x2 [8 {: c2 n! k3 H
        Lan := rootfolder.Internal.Tools.AOLlanguage;
' ^: Z! ]# E7 A( L# u2 a) l  ~        if current = @.Destination -- else return
# Q. G$ k! T* a        then& }+ S- L% y# p
                @.Destination := void;5 i/ B9 J8 F* A, |$ u
                if @.occupied then1 {. X' ~$ ^! F9 @5 v, T' t
                        part := @.cont;
$ m4 d8 `* ]9 o  t  ^1 c+ a) O                        @.transpOrder := void;
# ^' r, l' d! |: m; n                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,# v% I* u2 W  W  b: H4 C- Z
                                @,root.eventcontroller.simTime);
% U; G, ~* s0 c: |+ _                        @.HasOrder := false;
2 W% t* \/ s5 `0 c% C& v) x                        @.DrivingHome := true;3 w) o+ A7 u; D: ]# f9 E% F3 @$ N! u
                        rgManager.tryToStartTransOrder;
  {2 r7 C/ R: a( ]* X: a1 A                        if @.Destination = void
- }' I+ r! ]& U' x  u$ s( G' R                        then -- no transport order for vehicle @5 ?% \$ P8 G6 \# o, d
                                @.Destination :=' ?! C0 @+ y  G" G+ H+ {& m
                                rgManager.nearestFreeStation(@,track.~);
4 E3 v- m8 \1 T" ]                                newDirection(@);   " r8 @  C$ }/ g3 F! Z9 S" u) \
                                if @.Destination /= void then
% P/ X2 R! ]0 {8 d' g4 q% b                                        @.Destination.NumReservation :=" s  d# I% u1 e) _0 o
                                        @.Destination.NumReservation + 1;
2 A$ L. G" u" s. x( L                                end;2 x3 x$ N- k. N& S1 O: w$ r
                                @.CurrIcon := "drivingHome";
6 k( h8 h; d/ {+ G1 J% x                                @.DrivingHome := true;
- r% A) k# K; F* g6 ?                        end;
- ^9 h1 R, C) P                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
2 S* {- w/ k, |                        part := @.transpOrder;
9 {9 j2 j0 C. K  {- n- N4 K                        part.move(@);-- load part; b% Y/ b7 f. ~  m; V
                        @.CurrIcon := "load";
: H# f) r" G$ i- Y- U. s                        GlobalDistObj := part.globDestination;
0 U* _$ E$ L" }' U! h2 F: k6 V                        assignLObj := rgmanager.rgAssignL;
5 U7 A% J( w* |$ k' D  }( @                        row := assignLObj.getRowNo(GlobalDistObj);
  D8 K$ c& {$ R" e( K                        if Row = -1 then -- since 70& _/ Q" k5 j( b$ v" h  t3 E
                                if lan=1 then
$ i5 n, \2 P0 d3 s* |& s: l4 u5 V                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\"")," k1 }$ C$ v6 z2 D" X
                                                to_str("in der Andockstation: \"",?.~.name,"\""));3 ?0 r3 P0 Y8 }6 V/ H& k( H+ P
                                else
+ a7 Q, b/ ^- [& g+ S                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
9 P1 S. A& ?  N                                                to_str("in docking station: \"",?.~.name,"\""));                               
4 x! `0 |, q0 s                                end;% G6 A- Z6 g) z6 {1 F
                        else# Q# h8 _9 i1 t' C' g* k. r% O# j
                                @.Destination := assignLObj[1,row];
9 {" v2 u, E) ~% L/ D" I8 ~4 |8 v6 {                        end;                        $ l4 I( p. q( f4 D! `
                        newDirection(@);
% `9 G3 v( u, o6 |1 O9 L6 b                        @.HasOrder := true;1 ]4 P1 E9 v; t9 I0 R
                end;
9 |% e' s1 v2 i- Y; A- j        end;  N" S& T: w8 g* Y
end;        -- of the method
. z# j  e& O  i4 ]4 b( P
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
* ^2 M1 ?- ~; q' w1 C8 @
2 o" Q$ p% ^1 l  L# P) L这是AGV_putin中arrive的method。
0 Y/ I1 ?7 w  C8 L# Z% q  \
8 i! i% v/ O. o! o当到达物料速度越高时,这个报警更多,7 y3 d* X% [  ~6 \7 _
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。8 ^1 B0 }1 }( m2 A! g8 Y, f" W
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?3 e9 M' P: J1 a! J4 K5 x* _
9 o. M6 G" e+ E) Q3 t
另外一个小建议,就是move,所有的move都可以这样; ?0 {& K' L% _1 \) X
if not move() then debug end# N. Q8 ?  S- V& E
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
0 v% M9 X% o" {1 M6 I/ c- Z% ]9 G4 Wplant simulation中的free libraries有AGV模板,
1 p+ C0 g. n: j& L7 w7 p! U% @7 w( I里面也有案例。
! I3 g. {1 i3 R+ u5 g3 @5 {我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
' t: R, _: V( j1 i% \: _( ~
  z/ h9 E) U( g. B+ ?我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 " A$ ^; V) G% w4 t/ K

$ A( O. K+ i; F& z; \. _! R那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 # `- A1 z2 Y5 l  o8 e
这是AGV_putin中arrive的method。; n- P( N5 u6 S3 }. ~0 a
8 k: u. b' L, F; b( u8 t* ^
当到达物料速度越高时,这个报警更多,
0 A2 V6 y: [8 X  h
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-2 08:07 , Processed in 0.018951 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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