设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7585|回复: 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'
0 V) |/ @7 @, v$ F/ w4 m*/
' a4 T0 d' I+ F: }; t1 W( b, u# wis
1 N: K* T+ e5 g5 [3 ?/ |4 v        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
7 [: y9 X. j! {5 edo
0 X3 ?( b5 t3 J        Lan := rootfolder.Internal.Tools.AOLlanguage;) o* J2 E9 R4 i- t
        if current = @.Destination -- else return
7 b, D5 c. e+ H        then" Z# s5 _6 A9 z! h2 [
                @.Destination := void;$ R! ~8 w1 u% F* A5 u
                if @.occupied then9 n- [0 M# D) f# B" m2 l
                        part := @.cont;
8 e7 G3 M7 s! _: J5 H* q                        @.transpOrder := void;
5 O: O' B$ r% w1 t                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,9 z- f& B5 f( i2 y
                                @,root.eventcontroller.simTime);
7 m$ L  m1 D' _- e  W& `                        @.HasOrder := false;. r/ r4 G8 T/ o& N( e2 K" N
                        @.DrivingHome := true;9 i9 h, R7 y/ ~% U7 `6 v
                        rgManager.tryToStartTransOrder;
/ U! e# Y2 s1 M* K: a7 n$ D                        if @.Destination = void, w0 V( q6 ]2 @+ }' ^
                        then -- no transport order for vehicle @( q( Z, r. i& P3 ]6 b- s! L
                                @.Destination :=
7 X5 G' W- ?& `3 T7 C) ~                                rgManager.nearestFreeStation(@,track.~);
9 o7 x7 Y* e7 W                                newDirection(@);   8 u6 |4 W- [# p+ m$ |* N6 x1 n
                                if @.Destination /= void then
& }/ R9 z/ H" U                                        @.Destination.NumReservation :=
) ^, E. g% j! [, |! a                                        @.Destination.NumReservation + 1;
5 @# |$ s7 @5 T0 h5 F. P1 s( f. o                                end;  Q( R, C& C' M* x# T+ u
                                @.CurrIcon := "drivingHome";3 b1 b/ L2 p# p3 I* I7 p* W8 l
                                @.DrivingHome := true;/ D( I0 [$ x+ f7 c
                        end;" ]2 ]* r0 B$ a
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station5 R+ E7 |& G7 q8 X& f0 S- i0 @4 m) H
                        part := @.transpOrder;( c2 t* a3 |; H/ L% K
                        part.move(@);-- load part
" n7 @0 z. W! X; _- L) O                        @.CurrIcon := "load";# F1 n8 n; S9 j( l& I) y
                        GlobalDistObj := part.globDestination;. i: `6 s' D. ?4 a: t( G
                        assignLObj := rgmanager.rgAssignL;
% z7 D0 x# j% C                        row := assignLObj.getRowNo(GlobalDistObj);$ }$ Q' q8 v  Z# E: J. O
                        if Row = -1 then -- since 70% z, f7 M/ t' _6 m. r8 w
                                if lan=1 then5 w8 C# ]% P4 w  U
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
. W& S2 N7 f: V0 O8 g                                                to_str("in der Andockstation: \"",?.~.name,"\""));% K# w! B5 t& b+ @2 P
                                else
( N$ F: }8 I& E5 _. ]& C* |. d9 N( d                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),; R% B+ D$ _9 J$ f# q. G. D* T
                                                to_str("in docking station: \"",?.~.name,"\""));                               
( X8 W5 \" w0 p$ r                                end;3 X. P3 N; b2 a0 Z1 k- H
                        else
5 z  f. Y8 v/ a8 E                                @.Destination := assignLObj[1,row];
4 E% X0 n* Q& m+ c  s/ [( q                        end;                       
3 W8 @! C2 H1 B9 j) _8 s8 S- |                        newDirection(@);' V, b+ v& y% ~0 }* X7 A
                        @.HasOrder := true;) s, X/ a& \* m/ n' Z% Y
                end;
; f$ l- B2 ]6 T( h" e9 |2 \- r, J        end;
+ G' g5 f% a8 T7 k+ B3 `2 x2 ]1 a1 A5 H6 Dend;        -- of the method
" ^7 q8 i6 x" v* M; \5 W9 ?+ A
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
, R; i9 ?6 a( R* h3 Q) g9 l# p
- v( F3 R( t8 ?" l! k$ {5 _) C这是AGV_putin中arrive的method。; K1 A6 M: _: X: R
. D6 a  @! ~7 U5 f- Z. }( ?. X4 s% V
当到达物料速度越高时,这个报警更多,; p" e) z$ _" e. Y8 f. ~5 W7 \
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。, Z: H5 v$ q* `2 e. ?7 B
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
# x, k% q, \% K9 ^- ~- w5 z( b
7 U, i+ @2 N* D* U另外一个小建议,就是move,所有的move都可以这样, n# F, J/ d$ z; s' Y5 f: y0 n
if not move() then debug end
+ Q3 G& w- L1 k7 P" C这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
) i  ]$ x% I9 q3 }4 Q. fplant simulation中的free libraries有AGV模板,# f6 v% O7 G* c0 z3 ~! P( j
里面也有案例。; |8 b. V' C7 r6 ^6 I8 }9 |
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。3 {3 C. @) O' ]9 n4 W4 @

5 l3 q+ s$ G5 N: \; ]% H# D我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
" s4 K. y- @3 D$ H# Y7 F
& _! X9 Q' Z; j% ]$ k" k那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 % {4 r/ \$ A" s3 w$ @: r
这是AGV_putin中arrive的method。
" d  q6 v) V- W( W" p7 U
% D- B/ o6 h) q& \当到达物料速度越高时,这个报警更多,

  y. T7 @5 a; b# c- J; z$ G( w另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-18 23:17 , Processed in 0.020039 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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