设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7332|回复: 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'4 J% j8 F6 b2 I0 B- [; E
*/
- k: _. `0 m) \/ {3 _8 Dis
  ^: N6 }4 ~; \/ Y- Q  w9 K% S( [- [        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
) F0 S; ~% a" K5 i2 b7 n. Sdo
7 U: A" j" h: O% f! h  P, H        Lan := rootfolder.Internal.Tools.AOLlanguage;
1 {+ ]; v/ g) I7 \$ T; |1 v        if current = @.Destination -- else return
% T1 p& W1 d! ^( p* A        then% E3 O3 C; g. Y2 |6 F( P
                @.Destination := void;
3 W' N- ?6 U7 H" d* B& m                if @.occupied then
/ |; m1 z6 C5 Q) h4 a6 e* |                        part := @.cont;& H( H7 T: P  U  z; g
                        @.transpOrder := void;
: D( q: a3 D2 @! J; J                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,% c0 [+ G2 B* [! ~
                                @,root.eventcontroller.simTime);" B+ \- P$ W, D+ s  R. _) G" A
                        @.HasOrder := false;  n: ~& W7 T1 q! u) D! x4 o
                        @.DrivingHome := true;, F: @. C4 F2 ?8 {% |6 T! w
                        rgManager.tryToStartTransOrder;$ I' j: O+ J( h/ D- q& m0 a( r; v' y
                        if @.Destination = void, N, \6 s7 k4 _: ^- U. b% q$ S
                        then -- no transport order for vehicle @
2 G: I( ?( c. Z: [2 Q2 x& C6 w, `                                @.Destination :=
: |. S9 {! |, k                                rgManager.nearestFreeStation(@,track.~);
: Z0 t( }/ p" A7 I! [  |                                newDirection(@);   
; W: H$ s+ Q1 Z) y0 t6 W9 L) w                                if @.Destination /= void then
$ t: s: ]5 W7 e4 M0 x; o4 \6 Z                                        @.Destination.NumReservation :=$ u* r3 i2 Y; X' B
                                        @.Destination.NumReservation + 1;. i6 L( }/ L' M. z/ B- d; U
                                end;
9 d8 A4 k' ~1 {, F! R7 U                                @.CurrIcon := "drivingHome";; F* R) B# H2 ^3 r6 n
                                @.DrivingHome := true;4 ^7 l$ D8 D; _% R' {
                        end;4 l: d9 i/ a7 e* S
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
' O( z# A- t1 \1 C                        part := @.transpOrder;
! D+ a4 ]6 R2 k* d: K2 R                        part.move(@);-- load part
6 a: f2 t( h+ x* p' m                        @.CurrIcon := "load";5 {# d* c: L1 e, {3 k
                        GlobalDistObj := part.globDestination;
1 |! ?5 h  K2 P& ?                        assignLObj := rgmanager.rgAssignL;5 K1 S! |6 I# I( e% f
                        row := assignLObj.getRowNo(GlobalDistObj);
3 N! V- @  c2 r9 p& q                        if Row = -1 then -- since 70
3 D: z* y( k& _7 V                                if lan=1 then
4 u. p3 O0 ?8 M6 f1 @/ d: `                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),8 M$ B) C" b, K: {6 F, ]7 |0 o
                                                to_str("in der Andockstation: \"",?.~.name,"\""));* e9 R" l1 w6 M3 K) Z+ Q
                                else6 B# t' D$ g/ k  S, E& @
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),* U4 d1 R( ?1 e6 @9 _6 ~
                                                to_str("in docking station: \"",?.~.name,"\""));                                % Y& _- C& }8 d1 W$ f0 ?3 e
                                end;
+ U/ Y$ i. Z; B" [! u                        else! c" Z2 J; {( U* u; Z% e: `
                                @.Destination := assignLObj[1,row];9 I( I8 T6 p% W' G
                        end;                        7 K" P1 v1 ]  r: z0 H6 U9 D
                        newDirection(@);
: K" Z/ l$ S, F3 Z/ E9 \                        @.HasOrder := true;
. P" W* T0 t. O. x0 l7 `/ N                end;
2 k) W9 n1 P# [$ V# B        end;
) Q7 Y/ M, @' S2 Z2 Uend;        -- of the method
1 h3 R/ p3 \/ t7 T5 Y! R) D
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
% E* Q( h' k) }* b8 L7 F2 @
* b0 y1 r' n% O这是AGV_putin中arrive的method。( J+ e; `, n+ {6 ], f4 G1 }- E( v

. M# S0 {5 d( G  X当到达物料速度越高时,这个报警更多,
+ c2 e. \. e4 ?" T7 X, F可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。8 n. L4 C9 u0 e9 W% |
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
6 R5 e  Z6 y2 {- ]: n8 E3 z7 H; f9 h
, c  k7 b- a! z2 ?另外一个小建议,就是move,所有的move都可以这样) |3 e( g9 b( Z
if not move() then debug end) w) D5 Q$ @( }* X' n' x" a
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。) ?  o) ~& E! H" f: m1 ?
plant simulation中的free libraries有AGV模板,
$ \0 c2 A: o5 E$ t7 P: t里面也有案例。
- b- c! e( y1 o: h% o我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。( t' s; B* X. Y& Q7 G6 W
& Y) G1 n& a# Q5 T0 ^
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
/ ]9 _; c1 M* ~
- X0 L# u' s/ \6 E; E2 V* G那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
( u! x# Z6 M% O这是AGV_putin中arrive的method。
' b: v$ F; z5 E8 E6 K; j. @+ W; n) `) B% f& ~4 l
当到达物料速度越高时,这个报警更多,

+ k, V7 W5 [' N% N$ }4 s2 s另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-4 15:46 , Processed in 0.041739 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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