设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6117|回复: 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 v  G/ v- a+ n7 s% I*/
: [# @- h% {) t" u  w! w# }8 Gis* I2 e# b; ?/ F2 X! b
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
. e" P3 o( s2 l4 I' wdo
% K; }7 ]9 v8 g/ G+ n! v9 g        Lan := rootfolder.Internal.Tools.AOLlanguage;" z; ]: ^: W7 K
        if current = @.Destination -- else return
& C5 J2 ~* w9 U3 p3 Y        then4 b4 f  e1 u2 S- h0 O) E4 u
                @.Destination := void;4 S1 e" n. {3 u' w! x5 T
                if @.occupied then% m; E5 }9 ]2 O" I
                        part := @.cont;
  w% K& l3 d1 h# H                        @.transpOrder := void;" M/ w; b' [5 d, G$ P& \
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,5 e6 @* _" q4 `2 D2 D; {' V' g
                                @,root.eventcontroller.simTime);- y: X" b9 V. ?$ e- F
                        @.HasOrder := false;% j7 H6 i! p( o8 i5 g* y+ w% [
                        @.DrivingHome := true;) j: R. p6 D, K# g* R& U( f' L
                        rgManager.tryToStartTransOrder;
2 S; H8 M9 t. _8 v, s9 I                        if @.Destination = void
& H, O# o* w5 k                        then -- no transport order for vehicle @) s# W0 @- `6 q1 ]
                                @.Destination :=; Z, \0 e! J3 Z* N/ s7 k
                                rgManager.nearestFreeStation(@,track.~);
9 u- \) d, L( I# y: _7 S3 S& n7 W                                newDirection(@);   
8 j% k" y# @% a9 A, W3 a/ {% G                                if @.Destination /= void then
8 X/ d, d1 s! h                                        @.Destination.NumReservation :=) \& s- z' |9 p& A) c6 B8 C
                                        @.Destination.NumReservation + 1;7 p' W" N# E: [' F4 ]( y
                                end;
( O2 b/ M& R- V1 O5 S- Q# H                                @.CurrIcon := "drivingHome";* O, Q4 f# F3 {1 H. C1 _
                                @.DrivingHome := true;- ]9 L+ S% ^% Q5 u; T
                        end;& N$ t- X1 y* Q' G, T$ T1 g
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station$ N) W  q' X% f% Y& w& y
                        part := @.transpOrder;
8 o' ]0 }9 D* \. a( b( l1 O/ O                        part.move(@);-- load part
' g8 c) ]' H2 G* K% i1 f# ]8 h) b                        @.CurrIcon := "load";1 p. F4 O* i2 a. h* a; r
                        GlobalDistObj := part.globDestination;
9 c' d+ i% [  D9 f4 t                        assignLObj := rgmanager.rgAssignL;9 r% k$ E1 y! v! s
                        row := assignLObj.getRowNo(GlobalDistObj);2 Q: v& G3 Y4 n9 o* [4 h8 U
                        if Row = -1 then -- since 70
2 J7 h1 O* Y; x8 t. U# i/ N                                if lan=1 then
% _- r8 ^* j8 d                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
7 o5 v( Q) D/ t$ R                                                to_str("in der Andockstation: \"",?.~.name,"\""));# G' V( h/ s4 N, g3 ~0 ~! F. P6 Q
                                else
3 J7 L( p" G5 [& U6 P                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),* r* X3 o* c7 U, M
                                                to_str("in docking station: \"",?.~.name,"\""));                                ; w- |! j1 Y* D! P* T/ ]( Y. ]
                                end;
! x; H+ d4 e2 |$ e% r. F! y2 l                        else
# w8 a3 B% C" l6 g6 d                                @.Destination := assignLObj[1,row];( f: o& S- T/ X# F) |  a- W
                        end;                       
3 L6 y9 S9 f. `) H4 H4 ~                        newDirection(@);3 X% U! |; j4 w* w& J* \7 ]0 N
                        @.HasOrder := true;
, T% T: E, b( A: f+ p9 P8 @' r* Q                end;
0 Z0 {) J2 L6 H$ G: z+ J+ T$ M        end;
1 z: T0 P& p: _) }8 Bend;        -- of the method
+ v9 ]) w4 [: E) d1 A6 P+ p: @) {  f
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
+ C' V5 D: `/ T' C7 z7 {
1 M/ P+ r. |* H" F, m4 t这是AGV_putin中arrive的method。9 t4 h- j0 Q: [
" _6 `, a) n' w# z2 w& J* q9 l* S
当到达物料速度越高时,这个报警更多,8 @. b7 D* \, r4 V% d5 U& _9 r
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
5 Y' T* w6 G0 q( m2 W程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?2 `3 @* N9 b. R8 D$ q

* m- `/ M# ]9 B2 r: i5 _* ^9 `另外一个小建议,就是move,所有的move都可以这样
- A4 Y6 }4 r( h2 Z) B8 T# [! j0 dif not move() then debug end# O1 P9 e" a3 E" a6 L# O, `
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。; c$ k5 J) s6 [, f% F! x- i% q/ f
plant simulation中的free libraries有AGV模板,9 N  P- i. a' w/ t" C
里面也有案例。
- h. m7 N5 X0 c0 v我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。5 r* @$ F6 J& [4 r) ?

4 Y: N5 r* D6 f$ e我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 1 `/ |. t2 `- U% x

' |: T# [1 S2 H& Q那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 2 n- m4 W$ l1 r+ m* t, C+ g+ l
这是AGV_putin中arrive的method。
" \9 G. ^4 g# n  A# h9 ^
  v, U& c( I) }当到达物料速度越高时,这个报警更多,
; Y2 a5 Q0 P3 _4 d: c' `
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-19 15:36 , Processed in 0.017427 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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