设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9614|回复: 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'
6 s* }# w# C/ E  g*/' z" [. b" _. K! s" g, A
is
; D7 z' D6 p4 N  f, p1 e        part, GlobalDistObj, assignLObj:object;row,Lan:integer;) b  f* W4 U0 e* `
do9 d, g) c" A# d+ j3 p
        Lan := rootfolder.Internal.Tools.AOLlanguage;
0 E) u9 j: L$ B( U! k        if current = @.Destination -- else return
1 m7 H2 l: \+ F0 @8 n        then) D6 H; }8 L% W* N5 J: m
                @.Destination := void;
6 D: v6 r9 t9 q7 B                if @.occupied then$ A( Z$ B+ t8 R$ g6 p5 b
                        part := @.cont;
8 [' w. v( }' Y9 ^% ^6 f                        @.transpOrder := void;; b5 ?8 u  V1 Z) ~# I  S% D
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
: j( |! I- }" x- E3 m& h! B                                @,root.eventcontroller.simTime);
. s1 t, \0 n( ^                        @.HasOrder := false;
" |2 j$ L9 }0 L( l0 V, J                        @.DrivingHome := true;" b- b& Z4 z5 S& q1 i1 `* F
                        rgManager.tryToStartTransOrder;& a( p. x$ f$ V4 w8 `
                        if @.Destination = void
6 U. ~: [  i  ?                        then -- no transport order for vehicle @7 x# C: V1 z: o* u. A* v  L6 |
                                @.Destination :=
7 T  E2 t) B" {) q* K                                rgManager.nearestFreeStation(@,track.~);
" H( f4 Y1 g4 j                                newDirection(@);   9 s' r6 C4 h* I! `
                                if @.Destination /= void then
- J+ Z5 }/ y4 a. U                                        @.Destination.NumReservation :=
' ~4 s9 h$ D3 v& c+ M5 \7 Q0 r% v                                        @.Destination.NumReservation + 1;
) t( ?8 z3 m% H: ]' \, s                                end;
! f4 s. @7 N* z2 b+ p                                @.CurrIcon := "drivingHome";( ^% O+ k, }, y# ^1 X
                                @.DrivingHome := true;
& E& m  M& C, H  b) y) q5 C                        end;
% b! S/ u. z4 K5 A+ Z" {1 y2 n                else -- the vehicle @ is empty, both vehicle and part are in the same dock station6 G9 `  p! ~/ _
                        part := @.transpOrder;
1 {  F( n% U+ w) R% d                        part.move(@);-- load part- }4 A  ^' P/ q  F; f
                        @.CurrIcon := "load";' a# L) H* j' o" {  X3 W
                        GlobalDistObj := part.globDestination;/ K2 z9 V: C/ j+ Y# b' \, n; x
                        assignLObj := rgmanager.rgAssignL;
" Y* Z6 f: \4 A2 _& b4 }0 X- a0 V                        row := assignLObj.getRowNo(GlobalDistObj);4 M9 V' V& o3 b2 l2 Z" r" {1 m2 `
                        if Row = -1 then -- since 702 p' t* D  A: W5 I! ~3 a; x
                                if lan=1 then
) M. V! d% ^' Y                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
& @$ Z: c0 c9 d8 }                                                to_str("in der Andockstation: \"",?.~.name,"\""));- C6 d9 P. m1 d. v2 \6 \8 G
                                else0 ^2 G/ W* o4 |; r5 W5 C
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
* J; e, J: ^+ j                                                to_str("in docking station: \"",?.~.name,"\""));                                ' s$ `0 E/ ?2 F- n2 s
                                end;: V5 `4 k. g* J9 t
                        else
. l& I8 Z% q- V) B; g4 n                                @.Destination := assignLObj[1,row];! _8 u9 [6 P  @, {! {5 n
                        end;                        ; h! ?. ?0 l3 p6 P9 N9 M
                        newDirection(@);
7 ^7 L$ A- k3 `                        @.HasOrder := true;
- S+ S" w3 t2 e1 ~4 y                end;) h2 @' I, Y2 j# r! j' A! V$ c/ l1 I
        end;7 o1 ?, l' D% @+ Q
end;        -- of the method
! x7 ?+ {8 |3 z2 q
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ( D# G( g7 i6 z

2 J, l7 E, Y5 ~4 `; r" {  Z这是AGV_putin中arrive的method。
% B! W6 u: z- v( U6 ]) h5 a" r* F' W8 f4 q6 p# W5 q6 j3 W" b0 w/ V( B
当到达物料速度越高时,这个报警更多,, d. R9 A2 K( x
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
% l; X) v; j" ]4 @  q$ J% }" M, X程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?4 l- F7 O6 o# g* X6 K

6 j6 @. H7 M. @: C0 w5 m另外一个小建议,就是move,所有的move都可以这样, k1 O$ v- w/ e4 \. U1 Z- M$ R9 Q
if not move() then debug end
+ d) J+ P- T$ ?9 `5 V" ^0 b这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。' n8 l% A- N) o' y3 X/ X
plant simulation中的free libraries有AGV模板,; w0 E$ i! ~, a$ `9 E. m
里面也有案例。
7 E7 U+ U! p0 x3 ]) T1 o我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
7 i! t" f  {& z
8 x7 y8 ?& `+ y0 [# E) V我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 3 G" L( A' e; A, b4 T

% R' m$ o  B8 ?! ^那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ' ^/ G* @: h: P# d. X& E- G
这是AGV_putin中arrive的method。
' a1 E) q+ O+ D  {5 d8 @
( P: Z4 S# P5 f5 O7 z# J7 Q6 G当到达物料速度越高时,这个报警更多,
9 d2 |  O1 l2 p9 R. b4 T
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-11 21:14 , Processed in 0.018227 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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