设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4948|回复: 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'
% h$ N9 H1 n+ @- R$ W* d*/
" b& t. B8 H( R3 uis  V6 K+ M( F# b' N8 L! e. y
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;0 w) S$ ~' q6 V1 p+ ?* C4 l
do
2 [1 U% S( M2 b5 C& L% H        Lan := rootfolder.Internal.Tools.AOLlanguage;$ L! E+ |$ f( \# G% S$ ~5 W5 f
        if current = @.Destination -- else return
% X. z; ~$ J& {# e        then
- j9 v. g: m/ c! @% G- ^, ?                @.Destination := void;! D% O/ z! N$ f& Q7 _" K
                if @.occupied then. Y" s. E6 Q% l1 e
                        part := @.cont;
; G. Q, F* y& G* \( K3 \                        @.transpOrder := void;' u6 z9 a, `9 |# \8 B  H
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,0 q7 y/ L; S, g! o
                                @,root.eventcontroller.simTime);
) V& `9 F/ [% |# ?6 i6 \- z" |                        @.HasOrder := false;7 t! m  m  x, v* G2 w/ `
                        @.DrivingHome := true;
7 v! i" `! r0 e( b6 X- A( d5 H7 P                        rgManager.tryToStartTransOrder;& X' h+ o: M' O; G
                        if @.Destination = void( F2 F4 n6 @$ i2 s9 @1 e; z) ^
                        then -- no transport order for vehicle @
. n( @4 g* l3 ^) O                                @.Destination :=
+ y4 c/ p7 H8 a$ m3 g                                rgManager.nearestFreeStation(@,track.~);
, g- l0 T  |9 s  w+ z% y# }( p  H* s                                newDirection(@);   - G5 H5 L: j! h) h2 `7 {' z  E
                                if @.Destination /= void then
9 N5 E: N3 Y! e% l) @% U                                        @.Destination.NumReservation :=
( X9 `. z  v* F/ d% ^  k. x                                        @.Destination.NumReservation + 1;
) r# F" Z9 S9 E6 _) y                                end;" B! K/ {- Z5 v8 b
                                @.CurrIcon := "drivingHome";
- b0 L  J' {3 N) `: J                                @.DrivingHome := true;3 A2 x+ s. n, n. V+ I
                        end;  Y. f- @7 x# h2 I0 u8 c# a3 B
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
* W: Y' m" o3 V* ], E- k1 N                        part := @.transpOrder;
" N; E& U4 i% B" `5 n1 l# J% d; S                        part.move(@);-- load part
$ E' O2 V" a$ E' H                        @.CurrIcon := "load";
" d: l2 I6 J- N/ k  E1 _                        GlobalDistObj := part.globDestination;, |# ]* b0 q; S' {/ I
                        assignLObj := rgmanager.rgAssignL;
8 J9 y4 u+ p; o$ ]; \                        row := assignLObj.getRowNo(GlobalDistObj);7 o' t+ I0 H" l
                        if Row = -1 then -- since 70
, \- V" R- U; ?5 E                                if lan=1 then/ O+ C3 W5 q7 e
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
. `" n7 J  K; i1 f: U6 G! w* f                                                to_str("in der Andockstation: \"",?.~.name,"\""));
+ W. Q* y( x5 H0 x4 e) s' h                                else' V- Y, L7 C. b5 c) x# n% k! v* y
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
2 X% _- W* i8 [9 w- K$ R' D9 z( h                                                to_str("in docking station: \"",?.~.name,"\""));                                - v- W3 ?! Z  I: _+ `* N) w2 e
                                end;
  c/ k/ N; ]5 Q& G; c6 h5 c( y                        else
2 K6 @& \0 h, {                                @.Destination := assignLObj[1,row];0 H3 g; t2 V: R$ m7 e
                        end;                          F. E. l% _- r8 y, P" ~/ M* `
                        newDirection(@);
% o3 v& o$ c' Z3 p% J7 v) S8 \                        @.HasOrder := true;; y& j8 P/ s" d7 A
                end;
) B" v: ~( u, `" Q* p: f0 c% w' |5 L        end;
( o. N  o) u6 B5 R. B: C9 T4 I, Xend;        -- of the method+ p! I6 p+ _. G; s4 M8 C
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ! f" j" B6 x8 W" D' h) g1 j9 N. Y

( Z" V4 {, _) S1 N' e* A7 n8 F0 j这是AGV_putin中arrive的method。
# z! U2 D( ]+ H" B6 \" V, u; h5 }7 y( f+ g* h! l7 P
当到达物料速度越高时,这个报警更多,6 K3 C/ O3 y- M, L; y; g
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。0 B  h0 c- i  ~8 ~5 V7 D$ J, t
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?0 t  i. R6 }8 P& e  @: H1 c5 s

) l( @5 B* p* V& G2 A% j1 i另外一个小建议,就是move,所有的move都可以这样
8 `# H& y# `- D4 _$ y. R. uif not move() then debug end4 h0 r6 Z0 I9 m
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。: {( Y9 C8 ]; Q
plant simulation中的free libraries有AGV模板,
# [; I0 d! Z: |) W里面也有案例。
/ d/ O9 X* q/ Q5 i" f, {; p% Z我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
, N; o) \1 M- f, C$ o8 W. s5 V) w- Z/ \' o6 i
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
; B! L, G* M5 M1 G+ e. Q* L& @0 l* y( z6 O
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 & J9 [9 r4 i5 u$ s, ?
这是AGV_putin中arrive的method。
/ i1 m7 r2 b! `. u
. C& V' t; O  ]当到达物料速度越高时,这个报警更多,
; m4 F; h* Z  K& u9 W
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-9-15 01:46 , Processed in 0.022634 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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