设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7220|回复: 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 j1 q( ]5 R" I, w8 Z3 Y% g
*/( q$ w/ R: H& X
is
9 j) i5 O, Q/ k8 h        part, GlobalDistObj, assignLObj:object;row,Lan:integer;+ y; Y* d7 j9 k3 d! |$ m
do4 b: h6 }. s4 ^( ]/ @5 I
        Lan := rootfolder.Internal.Tools.AOLlanguage;
0 F& Q& e. R1 Y9 a/ ^! R- b2 V% _        if current = @.Destination -- else return' c4 L8 g0 L" k# \
        then
9 ?; I& q& o7 w                @.Destination := void;
* l4 U- T1 v. k7 e' K% L                if @.occupied then! v/ c% C1 |7 B: d  G
                        part := @.cont;# }8 z, G& a; ]# X6 @  v* c
                        @.transpOrder := void;3 y3 s- Y$ Y! S2 J7 Q# H# Q) j
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
# O7 a9 A( g8 d( D3 k                                @,root.eventcontroller.simTime);
4 k0 C, x' \$ j8 H6 I6 e) L% [                        @.HasOrder := false;: N3 G# `& Z1 Q& }& M  o
                        @.DrivingHome := true;
3 x9 Y! b/ X% n: E' \5 j                        rgManager.tryToStartTransOrder;; G5 n4 Z- p+ m; I( \6 b
                        if @.Destination = void% w  q3 v9 P5 ]& j$ I7 M
                        then -- no transport order for vehicle @3 Q* z9 ]. F0 X1 e; G
                                @.Destination :=! c, k& q( _; y0 R1 C: O+ V" X( H. Z
                                rgManager.nearestFreeStation(@,track.~);
- j8 p2 I$ W; E0 n7 q+ r. M% Q5 W                                newDirection(@);   3 S6 }: `% _+ Z+ K/ w$ q
                                if @.Destination /= void then
; l+ }' J. c, I# C                                        @.Destination.NumReservation :=6 v# j$ ?4 \. `
                                        @.Destination.NumReservation + 1;
0 s7 v( p0 E! V- m: S: E                                end;
/ s! D7 S# D( m3 y                                @.CurrIcon := "drivingHome";
/ V* G$ l+ L3 \% Z! {$ e/ Q6 r                                @.DrivingHome := true;! y2 P" w+ V: U0 d! x" [
                        end;
- {& r; @* Q. y: T) X6 H, N                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
: a" q0 I6 A& t2 t. X% W  w                        part := @.transpOrder;
( O" ~- B* t7 B# h5 H4 a  O                        part.move(@);-- load part: Q% k1 ]1 ]; E
                        @.CurrIcon := "load";
; k- [1 B1 F4 I: B6 t/ a+ P                        GlobalDistObj := part.globDestination;4 g4 r1 I) W+ l& A
                        assignLObj := rgmanager.rgAssignL;
, w* E/ a1 O6 e3 J3 o                        row := assignLObj.getRowNo(GlobalDistObj);7 p) n2 y- h# Q* |% l0 A
                        if Row = -1 then -- since 70/ b: _' {% N- W
                                if lan=1 then
- T" Q, z! B% F                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
7 ^: S) O9 B: o0 Z0 @! W                                                to_str("in der Andockstation: \"",?.~.name,"\""));* C2 O9 ]; G$ X5 [! b0 R
                                else$ f" G$ b  \0 g% z. ]
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
3 q% T' D, y0 H% E8 n( w( b$ k4 k                                                to_str("in docking station: \"",?.~.name,"\""));                               
' p/ B  @# f  w5 A+ A                                end;
) F% q6 K# S& K# I4 p# X                        else
, }. X0 d- K' b3 V8 y                                @.Destination := assignLObj[1,row];% b* y3 a! b/ g$ p# O- g' N
                        end;                        6 T+ V( g8 S: G% \) h/ I& ]% P8 W
                        newDirection(@);
! a% N! n. @+ f                        @.HasOrder := true;
' H  ?4 k/ |2 U, Y* ^6 T                end;
3 y7 ^" S, M( h        end;0 N. Q% S+ Q+ L0 g/ B
end;        -- of the method( z( ?3 w2 d+ W5 O* O5 d6 E3 ^
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 0 [, N9 q, `  p8 m/ R' G
" v& z1 G( j. z5 K( c! _2 g
这是AGV_putin中arrive的method。1 T9 S: ~  Y; _  M7 {( X8 k9 R3 C
. H4 Y# {: c4 m( U7 G* K
当到达物料速度越高时,这个报警更多,4 q1 Z8 f- A6 d9 }* C' E8 `' h5 Z3 v
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
& W9 G% \0 Z: m* A0 b# C+ J程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
7 f* s. z0 U+ D; O% ^( k/ Z  z
8 H, D. D' h5 d$ @( f另外一个小建议,就是move,所有的move都可以这样' j/ ?0 |( [+ `8 j. Y& _
if not move() then debug end
; z) P. Y& K) A6 T5 }这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。: V2 ~' A7 }) a1 e5 |/ p
plant simulation中的free libraries有AGV模板,/ z  E; `" O; C: x3 |0 U6 U! O- g
里面也有案例。6 ~& j+ {2 |3 e6 U0 c. n
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。4 j/ l. T2 C3 e7 a

7 ]& Q1 }1 G' m" ]) G% a6 W我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
% ]" y5 F# t$ N2 J% ~$ `- E0 f( x, W4 J
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 3 K( k. N3 W4 Q& ]8 |8 J- \. b/ u" f: E
这是AGV_putin中arrive的method。
. |" Y3 b1 _  H5 x
* P; H. d, H6 R+ z$ S当到达物料速度越高时,这个报警更多,
$ y# q! t+ g5 W/ W# A
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-28 04:12 , Processed in 0.028120 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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