设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8184|回复: 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'. K1 ^/ G4 \  |* u1 i
*/! n: V; N% V% J: @; G
is8 |) X0 `3 }6 r. L1 p( o3 }5 e
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;# V/ q! h% F* w! c
do: I: U8 c) |* |4 x7 v+ R& X
        Lan := rootfolder.Internal.Tools.AOLlanguage;& x1 b. w: ^& o& O& O' B) A+ C3 F& x
        if current = @.Destination -- else return
0 Y* ?( b8 w- v" Y        then7 E2 f5 W2 S, Q0 D% V& d5 N$ p- L
                @.Destination := void;
7 V4 P# m, m- H/ P# o7 S                if @.occupied then
1 R' |2 l. m6 R! s6 F( B2 M                        part := @.cont;
# m4 _+ G  N; \' v9 X# @                        @.transpOrder := void;
! ?& Y) f4 v/ @                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,) A, X$ }' W- E! e; ~' g$ `
                                @,root.eventcontroller.simTime);# d% X7 d7 ^2 n- Z2 f  m0 d- ^
                        @.HasOrder := false;
, I/ ~/ x$ {  H$ o7 Q                        @.DrivingHome := true;. K; d- I3 r6 f: R0 ]' |" P
                        rgManager.tryToStartTransOrder;
! z2 U) V- |+ M1 m8 z- _                        if @.Destination = void
2 D' c0 s; B9 c, u! |9 p                        then -- no transport order for vehicle @8 C  q# a! r! Y( F+ q1 w
                                @.Destination :=
/ f! O. \0 T$ w  l7 e% u                                rgManager.nearestFreeStation(@,track.~);
+ V; X5 w9 i9 `, E+ w                                newDirection(@);   . S1 w/ E8 H6 z( n7 [
                                if @.Destination /= void then
! b3 R& f* H  Y6 G+ l                                        @.Destination.NumReservation :=; N+ I9 E, \6 L
                                        @.Destination.NumReservation + 1;
  ]: C  m2 K" N/ t" b% X7 {                                end;' ]/ g3 n% k* Z. c, B, E# y
                                @.CurrIcon := "drivingHome";0 D5 o+ k. L$ G1 d, e3 ?
                                @.DrivingHome := true;5 v! s: s4 L) Y
                        end;
9 z+ J8 v3 s+ o5 p                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
' `  J* v( ~: e2 Z0 o1 o                        part := @.transpOrder;
' l9 E+ b& ]" E( c5 Q1 w% n                        part.move(@);-- load part
) U& l# C- W) {8 v2 C                        @.CurrIcon := "load";" k4 S0 N2 G! l/ |0 c1 B
                        GlobalDistObj := part.globDestination;+ l8 c. V6 G8 Q( o' v2 G
                        assignLObj := rgmanager.rgAssignL;2 X7 Q3 G8 u. c
                        row := assignLObj.getRowNo(GlobalDistObj);
* r8 s  r) [- `  G' r- @) @0 ~8 y                        if Row = -1 then -- since 70
4 B' e& I# J: e$ d9 X; l                                if lan=1 then
& O6 c7 `7 f7 C                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
4 E' [* K% ^% c3 U1 j/ \4 T  x2 Q                                                to_str("in der Andockstation: \"",?.~.name,"\""));* b# \* a- t) b: T6 N$ p8 P" g
                                else
: S& u/ P. Y& p' X3 n+ z4 e                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
. j: [* y$ o5 ]  a: }                                                to_str("in docking station: \"",?.~.name,"\""));                                . ^+ Z% u) K- ~+ O7 y6 n
                                end;
. b  h- v8 F" L- C                        else
+ g2 s4 _. E% m( u                                @.Destination := assignLObj[1,row];
7 W! y; K* o5 P: u- G1 F9 R                        end;                       
4 A4 N4 D6 s  Y* B9 U4 t; p2 K                        newDirection(@);  [3 v- {" N3 z5 z: ^0 W! x
                        @.HasOrder := true;
, I& R, T- l4 x, }% b                end;
$ ]! Z1 S- C6 g9 J3 R# R        end;
5 q, U1 i' K( Fend;        -- of the method7 S+ `1 D& U1 m0 R0 _0 l8 s1 \
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
9 x" x/ y3 I0 C* g0 E- K- K0 i3 Q& g5 w; ~6 W/ Q
这是AGV_putin中arrive的method。1 {) p5 W6 d2 n$ ~9 X8 E& V; O( u
2 D  Y  h+ K) U. K( z
当到达物料速度越高时,这个报警更多,
, J) W# U* z+ j( C3 I可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
, ~  S3 E* w! H: e- S. Z程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
) f" O& L% [: n2 b& I, p) M1 `8 J7 g# O5 j
另外一个小建议,就是move,所有的move都可以这样' t+ x6 ]7 S$ W1 w( ~  R2 o2 O
if not move() then debug end
$ h3 o# i$ L7 O这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。, O5 |& t* d$ z3 @, N
plant simulation中的free libraries有AGV模板,; [7 ~3 V- {" T5 r
里面也有案例。
. Z/ W8 i7 X& W) {9 w1 m7 h我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。7 n$ `8 F" h: [# g

: l5 s) z$ ]* T! O0 \我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 # p8 M) g. P. ]4 K8 B

. |8 b& O, ~& ~/ C* v, h那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 7 C" W0 g- F1 D* W- S4 v
这是AGV_putin中arrive的method。
0 J; G' [" q% j' m) U) z! l4 z6 a# w3 v9 B  d
当到达物料速度越高时,这个报警更多,

  }# x' I8 O# A6 I; a/ ?0 o另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-19 15:14 , Processed in 0.020631 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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