设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6747|回复: 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'
/ @# `4 H# M) H4 `# D) h*/
" a% @: r5 N8 ?7 i' r0 o5 ]6 W& R2 Kis( w2 {! ^* X& |/ L
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;9 U, t% X; {1 p( `
do
& h- j! Y# @6 {, R  `1 t        Lan := rootfolder.Internal.Tools.AOLlanguage;
( ?, B4 _' s6 C+ v. e        if current = @.Destination -- else return# h8 X6 W. @) H; k% g
        then
/ @* k/ ~$ m6 v: |/ L                @.Destination := void;  R3 [/ P- C" L8 L- C
                if @.occupied then9 O( L! |) k& D" J
                        part := @.cont;+ D9 s+ G" E7 f# D3 t- L9 \( a
                        @.transpOrder := void;9 \, ]$ t" t) r( t1 B7 h! G
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
' K5 r5 h4 o1 z                                @,root.eventcontroller.simTime);  N/ s. N7 Y  P
                        @.HasOrder := false;
% w" \# h  }5 u- ^- I                        @.DrivingHome := true;+ x0 H* d$ j: g/ d/ P  _
                        rgManager.tryToStartTransOrder;( Z9 H9 z8 b8 ^
                        if @.Destination = void
# M+ U' I; F6 N                        then -- no transport order for vehicle @4 J0 U: l) J5 s
                                @.Destination :=
3 o, N  e) t  E3 b                                rgManager.nearestFreeStation(@,track.~);! W2 x" y1 k: N0 k/ A- x
                                newDirection(@);   
( w( z8 v8 v$ U" B! S9 r                                if @.Destination /= void then
( z) h. s) V- p! a                                        @.Destination.NumReservation :=5 s3 f" a' q% E' h1 z) ], A2 `
                                        @.Destination.NumReservation + 1;1 G% u/ u" \* B; P
                                end;: T& [! x/ q' v& q/ v
                                @.CurrIcon := "drivingHome";! l- C/ `7 B' X0 c
                                @.DrivingHome := true;+ v9 z0 r  n4 G
                        end;
9 f* ^* S, P+ B" I: n                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
4 ]4 ~* q+ `( w; ~+ P+ s                        part := @.transpOrder;
4 o6 Z# l. @# `2 A                        part.move(@);-- load part7 w6 y' q" g1 F
                        @.CurrIcon := "load";
( r2 N+ U. {" T/ c                        GlobalDistObj := part.globDestination;
) I) @/ V# F4 r2 p0 n# {8 C9 c                        assignLObj := rgmanager.rgAssignL;4 M* D! s8 ~& _; V$ w6 d
                        row := assignLObj.getRowNo(GlobalDistObj);
1 A) P. p, f0 `+ i) u3 g1 U                        if Row = -1 then -- since 70) Z% c5 k$ O, J1 c0 Z# f
                                if lan=1 then& @  t( n2 _+ z5 x9 U
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),1 Z* V# ]. O5 g: r, a
                                                to_str("in der Andockstation: \"",?.~.name,"\""));) }' V1 J, Z, I( L% @
                                else
6 R% O3 V6 }# S% U+ l) O# b7 j. E- ^                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),$ m. c* p$ [7 \0 x0 B9 i
                                                to_str("in docking station: \"",?.~.name,"\""));                                ) E% X: o, B4 l0 q
                                end;
- K& ?2 B( P! m  `% T5 K4 E                        else
; y; `) p: X9 l, G) T                                @.Destination := assignLObj[1,row];$ ]+ z; c3 o2 Z0 v! f. C7 u
                        end;                        , V2 a& r/ G# ~5 e* Z
                        newDirection(@);: i; a$ Z6 l. ^+ M$ a, a9 t
                        @.HasOrder := true;
; R1 w9 [8 Q! K! y% b' q0 b0 \$ Y- U1 ^                end;1 L: J: ]: ]2 U+ A, G
        end;
% O5 U+ E1 z. ]' x' Y' m2 `+ x4 Rend;        -- of the method
5 O0 b3 s- K0 S! D
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
+ V; d+ b# |0 N' G) K" v" _/ g& a
0 j% u: ~% x) ~. |9 @& _6 \这是AGV_putin中arrive的method。
' N! Y# M1 y; Y/ ~' z1 Q0 M0 n
3 u9 m9 R  m8 |当到达物料速度越高时,这个报警更多,
9 B( g* w' P4 t1 j  D6 ?可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
1 c3 R/ g& I7 M" X: ]! u  v程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?) C: A6 e. r! @

( @2 ^; i6 C+ e' e. T; T另外一个小建议,就是move,所有的move都可以这样
1 A. c: b, g5 B; Eif not move() then debug end! e4 U1 a9 j+ G3 R0 C) \0 E! R
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
8 F6 o+ ^4 m1 E. F5 n& aplant simulation中的free libraries有AGV模板,
: N& h. p7 g% D0 f# u5 b1 q( v里面也有案例。
$ g) b. W% Q6 \0 Q我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。2 E! z0 A/ `  R# H
; Y( X8 w% P" R6 @
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 % Y+ X0 [: U. O, Y8 w

  ?9 ]; R% c' n' V  P1 K那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 & Q  S5 K; ?' @6 H
这是AGV_putin中arrive的method。/ W* ]& N+ ]$ e2 V( q
. N) d* }8 N( O8 @: }7 |9 }" z
当到达物料速度越高时,这个报警更多,
1 M- L. o- o6 ?; z4 G! Z
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-24 10:27 , Processed in 0.025108 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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