设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6978|回复: 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'
7 y/ R7 P7 @( b( N7 _*/8 k& L5 B6 D+ c$ c+ n& t- l
is/ @) K7 _8 I+ O- Q4 p8 S  c
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;( i' I( N* L  v9 }3 a( z, H5 Q
do$ K; L& p  Y: c6 w: W& Z, s4 h# x
        Lan := rootfolder.Internal.Tools.AOLlanguage;% d* G( Q- p4 O3 g
        if current = @.Destination -- else return0 [8 n; N; y. {1 ^/ b
        then
# v; R4 P# h% I9 u5 ^                @.Destination := void;) z5 W* Q( I6 h2 Q
                if @.occupied then- \' C: {6 T/ O" ?9 z
                        part := @.cont;
' h( V& S- x7 B4 }0 {2 t                        @.transpOrder := void;
1 k# v* j& C( t& u; H# [                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
) f* J: G$ }0 s6 l& D" v4 ^                                @,root.eventcontroller.simTime);0 k3 b6 ~5 u: Y6 {2 ?! R
                        @.HasOrder := false;
5 ?# q: ~( s% H; f; o# {* d9 A1 S                        @.DrivingHome := true;5 P( A, t! q* X4 X# o' h( f6 _
                        rgManager.tryToStartTransOrder;% \5 A, Q- J# A
                        if @.Destination = void
& O) T% z, u2 N. F; d' d; u                        then -- no transport order for vehicle @
) B2 ^& a: }  \0 f                                @.Destination :=
2 X) Q0 S' |$ K* s; R& x                                rgManager.nearestFreeStation(@,track.~);
' Y( {' J7 \1 @; C0 S# M                                newDirection(@);   
. b% }- h6 R( {; @8 q! l3 ^/ _+ N                                if @.Destination /= void then5 q' d8 K8 F# x/ ~+ a& a( W
                                        @.Destination.NumReservation :=
3 n9 |/ j6 J, F8 G4 B                                        @.Destination.NumReservation + 1;
8 u( C7 e3 x+ Z  _$ p                                end;
: h. m; t& B4 X- _# d                                @.CurrIcon := "drivingHome";
( I$ [! c6 V1 I; R" A                                @.DrivingHome := true;
; d( @: @: i) l' Q6 ]& `  J* J                        end;
; c% P. w" N3 ]4 T8 F! l                else -- the vehicle @ is empty, both vehicle and part are in the same dock station8 J$ @1 S7 A2 g9 |6 i" X
                        part := @.transpOrder;
' |# B, Q- W$ e6 N- K                        part.move(@);-- load part
7 W0 J1 n' h" T, X% [! f' k: T7 w$ S                        @.CurrIcon := "load";4 U! H% ?7 C" s' ~0 `+ b
                        GlobalDistObj := part.globDestination;
; o/ x7 v" C1 n6 M5 _6 ]                        assignLObj := rgmanager.rgAssignL;
6 E6 Z2 ?% ~* a                        row := assignLObj.getRowNo(GlobalDistObj);
! e$ \: \, N2 g; M+ ?) R                        if Row = -1 then -- since 704 ]9 J8 u1 z5 i+ f$ u1 `
                                if lan=1 then
9 z3 Y% l  p& W$ O0 Y                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),- l& C# e# u. r" m0 @$ `  X
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
' z, H7 |' }  f  U                                else& }. ^$ y: Y7 @& _/ ^; M8 h) I
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),3 E5 e* n7 _# Q, U5 Y
                                                to_str("in docking station: \"",?.~.name,"\""));                                # }; f" F/ X+ X7 ?3 j
                                end;' J9 m: w4 k4 t  n9 C
                        else
- |2 I: D3 [1 ]1 Z9 U6 A1 f6 L                                @.Destination := assignLObj[1,row];( c+ S2 P- D# V' h& c+ S5 H) V
                        end;                       
& j4 _& t/ \# H, ]! x5 ~7 w                        newDirection(@);
6 M1 @2 W" n& q, q6 v# o1 L                        @.HasOrder := true;
& `9 U5 }' j4 J6 N& \% P  h                end;- v2 O9 g( G# X: d  l
        end;
$ b& s$ S7 i! W& K5 ?/ V8 h% Zend;        -- of the method7 _5 [: @/ A" L3 _0 q/ X9 v2 Q* t
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
" }( s7 }$ {' K: l0 Q: Y: B, P; Z+ Z1 W9 ?4 t, ~1 U$ X: \
这是AGV_putin中arrive的method。( A; h6 [+ A' z: c8 j

; m4 k# m3 {  ^9 M. C% K当到达物料速度越高时,这个报警更多,+ e3 A1 D1 w3 b) d
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
1 G9 m/ i0 l1 p8 d+ F1 a2 s程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
# U6 v, ~! P" W$ }! G& ^
1 [1 g- \1 {6 m& ?& f另外一个小建议,就是move,所有的move都可以这样
" L% I+ Z. s) ~( R% w) p" vif not move() then debug end8 n$ z& ~; o) T' N0 O: l1 B
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。8 G% ~' i6 y. c' x
plant simulation中的free libraries有AGV模板,
5 q" A" ^- o) T" T9 l( N里面也有案例。
$ m" J) n6 _  Z0 U( B' c6 u我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
3 }# v/ z& P4 S' N+ G$ j
+ ?3 H* \4 |8 L- }# V- w0 E2 y) G& b# {我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 # Y6 g! v$ H* H7 E% Z% |

. m2 |& T8 c$ S: l2 M那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 + e1 g( x' D9 r% S+ s. n# G% Y
这是AGV_putin中arrive的method。/ d0 a% k% v" r2 U4 J
0 ~; p4 n5 F: _, m1 W+ k
当到达物料速度越高时,这个报警更多,
( r; M8 M8 S  H# E& u- A
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-9 15:13 , Processed in 0.023347 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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