设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9234|回复: 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'2 ~) t, O9 c% p7 v4 Z$ }; C( j
*/
' Y* G* {* Q7 K4 Z, |, z9 D- a7 pis( ]7 {# X0 t" G5 W1 E' [2 ?
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;0 ?1 _' A/ z. e4 \
do/ F0 e# l; z) O2 B( l
        Lan := rootfolder.Internal.Tools.AOLlanguage;. S+ z: n0 h. z; G, h
        if current = @.Destination -- else return
4 M9 |- v' o) V% n        then- _$ |7 F( U( h+ A9 u) ^
                @.Destination := void;7 w: r; i. p- g. r
                if @.occupied then
6 s& I, I' {& y+ O, x. a: l. S                        part := @.cont;
& w' [0 N: i5 C5 F1 K% e- x                        @.transpOrder := void;
2 f) r8 h6 {8 I8 C9 ?; G- y: E                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
* @. R- \, p" h2 L! w2 c& f) `                                @,root.eventcontroller.simTime);3 w: V- V1 n- v1 a9 g/ q9 T' e
                        @.HasOrder := false;
! o- W" Z. T2 {* P- x& L7 K1 I                        @.DrivingHome := true;
7 [$ r* J! b2 j                        rgManager.tryToStartTransOrder;
' e2 n! p6 [% X                        if @.Destination = void# }; n# c) J- ?& ]  ]% B
                        then -- no transport order for vehicle @
5 y, K. Q9 z/ b                                @.Destination :=* @6 _: B/ r3 R( \
                                rgManager.nearestFreeStation(@,track.~);
: F8 U/ O( }, Y! f3 Z                                newDirection(@);   - d1 v5 o' z0 {% n) m
                                if @.Destination /= void then4 a# o; D* F+ I  Y7 ~7 {
                                        @.Destination.NumReservation :=
# b1 Y& G: t. F1 C1 v% j: l                                        @.Destination.NumReservation + 1;
. L* d3 D: L1 g" N  H+ Y1 |* J3 ~                                end;
! n& ~3 e' F7 h0 B( }& i4 d! \! e                                @.CurrIcon := "drivingHome";( |& A) M+ o  H% C$ |% J
                                @.DrivingHome := true;
7 `: p9 L% u, o( R                        end;4 h  R" \& ^7 I3 p% Q
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station2 x5 x: j4 R6 I! D& F/ {5 C
                        part := @.transpOrder;3 R* C- G* ?  a$ R! N
                        part.move(@);-- load part- A2 w9 X' e6 h6 v; \; A7 ~
                        @.CurrIcon := "load";, {9 i$ [0 q  _5 Z
                        GlobalDistObj := part.globDestination;
8 c& i$ y! |7 T7 I2 {( F& U                        assignLObj := rgmanager.rgAssignL;
6 e; K6 ]  ]# |% |. a8 C0 U( h                        row := assignLObj.getRowNo(GlobalDistObj);
7 V; ]. Y. s  X* `' Q                        if Row = -1 then -- since 70" K2 L" u$ s0 G4 H' t
                                if lan=1 then
0 R$ ~, S  `) [, H5 ?9 n+ I* P                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),3 S' h- B) ]' ~+ ?* ]. x+ F
                                                to_str("in der Andockstation: \"",?.~.name,"\""));# L. l6 m5 g3 P4 V
                                else
8 \$ ?. W. r( B& _                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
% B% z8 j& V" P( s1 ~, u9 x                                                to_str("in docking station: \"",?.~.name,"\""));                                ( b, L1 z2 J  d& u' f9 d
                                end;7 b( e0 B, j2 h! `2 [
                        else
3 r: H4 G3 R: ?1 a; y! k  Q7 f                                @.Destination := assignLObj[1,row];4 I0 u. ~$ Y3 s) I3 O1 O- a* [2 Z
                        end;                       
1 d, E& }1 R/ B, z+ j1 w% b                        newDirection(@);
9 D( h- E; ]2 ?4 o                        @.HasOrder := true;/ z6 a9 U' c% B6 u2 J! e
                end;; l) g, m! U0 {9 y
        end;
4 Q& @# z, s6 ~2 |9 O( O* e/ Lend;        -- of the method+ v8 w+ G- V5 i; W' S
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ! v* h0 n' R; Z/ b) I: h  g8 v

% R8 Y' N; I. w6 Q6 F( d0 s这是AGV_putin中arrive的method。& T; n3 S$ m7 P/ O# K, G

, a' {, A$ j2 z1 b! ]' c" z9 V. e当到达物料速度越高时,这个报警更多,% u  C, T; M" ^; k! C
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
. |9 t1 _( e, R9 d$ k) q  U3 D- A程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
. Y0 L$ S& l( Y1 X0 l9 E: u: X! [1 X" l+ Z( \
另外一个小建议,就是move,所有的move都可以这样# p3 d1 O7 P  o
if not move() then debug end! S- F4 p; y2 N  c+ J
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。4 p* X$ ~+ M9 \! l; C7 o$ d
plant simulation中的free libraries有AGV模板,1 O8 z2 Z8 c" Q4 M- r6 q
里面也有案例。  d7 u( Y3 O4 _6 \6 \
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。, V# l; f1 u/ o( s4 l; G

/ k+ I+ E2 x: N7 h# \+ I+ U我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 9 |- D! j7 E$ A) v2 _) }
% g: J  Y+ t( L. G
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 : Z9 f: n+ g2 Z' K$ t& q
这是AGV_putin中arrive的method。8 G: `0 w7 b1 ^

8 K2 S5 @3 W" M  B3 i: U当到达物料速度越高时,这个报警更多,
; P1 m- q4 f4 j- C$ u
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-20 16:16 , Processed in 0.018624 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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