设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6597|回复: 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'$ Y6 y0 v% u; v' @2 x! D! {
*// w! b# v) R, }
is' @( O1 d9 k# [( Z8 S# o
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;8 _% I; Y8 u( H7 Q
do0 T9 L) i: [6 P
        Lan := rootfolder.Internal.Tools.AOLlanguage;6 F5 j' A7 {5 y+ ]3 a
        if current = @.Destination -- else return* r$ F! ]4 \0 m1 x8 j
        then- B# u' q2 U! }/ H( ?
                @.Destination := void;; F2 T8 a  k  k" ?( O
                if @.occupied then
1 L( D- V! Q' w) }                        part := @.cont;! B) m2 M# q* q
                        @.transpOrder := void;9 S# y3 ^7 t, D+ F' K, E
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
% \. o! c( r8 j; a/ f                                @,root.eventcontroller.simTime);
& a  b. P# ]/ Z! r( W, i* b4 ^                        @.HasOrder := false;
2 E5 l' J) t4 j! a" I                        @.DrivingHome := true;
' R6 L' j% U2 j6 d                        rgManager.tryToStartTransOrder;) I9 q0 G) r/ t9 M4 }9 d* y
                        if @.Destination = void) v) ^  J  y2 O  ]3 I
                        then -- no transport order for vehicle @
$ B8 H6 w- z' F7 u                                @.Destination :=
* x/ M7 t* }# Z4 D+ X$ Z                                rgManager.nearestFreeStation(@,track.~);
7 z; C+ v$ @7 `7 E, p                                newDirection(@);   3 Q" ~* a% i- [. _* X% T! X( B" ?. ~
                                if @.Destination /= void then/ @$ d8 }! T5 _' G, [+ }
                                        @.Destination.NumReservation :=
) L  t( ]6 e5 I2 \" C# a                                        @.Destination.NumReservation + 1;
' J2 V. q: I- \+ X4 X6 a2 _                                end;
. X, S2 e  ^. E. D  u/ `1 s                                @.CurrIcon := "drivingHome";! W. L$ T! O# _& [
                                @.DrivingHome := true;
, t! Q9 z, c" ^& ^                        end;
- C) U3 O1 |3 m* N- i) X) `. ]                else -- the vehicle @ is empty, both vehicle and part are in the same dock station$ }, ^9 V2 e- d+ y, g) S6 Z
                        part := @.transpOrder;
: w0 a0 d, ?( o                        part.move(@);-- load part
2 i5 k; b  O/ R% o2 V) o- W) }                        @.CurrIcon := "load";
6 O1 L1 Q) Z; ]/ D$ s                        GlobalDistObj := part.globDestination;! S1 I$ }% E6 ^% k9 c
                        assignLObj := rgmanager.rgAssignL;
/ ^8 z. Y$ Y1 `: \+ d, j% p                        row := assignLObj.getRowNo(GlobalDistObj);
$ C) V8 P9 l4 d                        if Row = -1 then -- since 70+ M% x" N) t8 i+ t
                                if lan=1 then) \; \$ o& \- T1 t1 N9 X
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
: y* D& m) k) Z! _                                                to_str("in der Andockstation: \"",?.~.name,"\""));
  s+ D& O% p$ i, ?8 z                                else
) _! f& w* _1 R- e                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),7 L( f: ~2 |; K  r5 \4 Z4 |1 h
                                                to_str("in docking station: \"",?.~.name,"\""));                               
1 N) l" O4 X6 h' t( J) q* X  D1 v                                end;% N) O' o' l) B1 j
                        else/ A( d1 D+ F" y0 d; S
                                @.Destination := assignLObj[1,row];7 U3 s- b# g" e6 F* z( L/ U4 N
                        end;                       
8 {# j4 \' f2 g3 N                        newDirection(@);
0 N1 o# d" E9 n2 y& J7 a. H                        @.HasOrder := true;
5 B- O* y, k% ?                end;
' L3 P  S2 |+ t/ |& t        end;5 K% O) G  u( b6 y3 ?+ h
end;        -- of the method
. _. z! S, u! f  ~
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 / |4 L! ~( S5 L# s

, c7 B2 }* w2 i' x, T# A6 g1 n: H这是AGV_putin中arrive的method。4 @  \5 s. n+ [% d
9 v2 v' F. h; H- o+ o  w2 ]
当到达物料速度越高时,这个报警更多,
6 k1 W9 w6 V8 P+ F- H7 w* q可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。1 z4 v0 T  P$ ^8 r/ @' V0 p$ V
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
- ]4 f/ M" ~6 T* E) n3 ^: ]4 a6 B  A* \9 D# B
另外一个小建议,就是move,所有的move都可以这样" u9 l3 G/ k6 }5 ]/ S" g5 V- ?
if not move() then debug end* w6 Q( K7 @$ j
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。% }5 X  V# @( D; b1 E
plant simulation中的free libraries有AGV模板,
8 g+ a2 l* v$ D. t7 C$ W里面也有案例。2 T1 w% i$ o2 s  E% U
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。7 |2 P) g7 ]/ L, ~0 V
0 s( S" S* J2 Y4 e/ g; Q" v, I5 B% k) i' H+ ^
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 8 u0 V  Y% E* @1 q& c6 D9 |

& g$ a3 d6 s6 F% J6 P那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
+ p( [* G6 X; w9 V- Q这是AGV_putin中arrive的method。, T% j& B- {. I/ _0 }' z
& U" I7 R3 v- g$ \4 Q5 M! a3 b
当到达物料速度越高时,这个报警更多,
2 x: ]/ e3 J+ a$ \8 }- c
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-15 10:09 , Processed in 0.022337 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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