设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9253|回复: 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 C8 J3 @8 o  w" d( D
*/8 y% H& I0 O+ v" n9 O0 q' v
is
% M: t# ?- x- ?) f        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
# a7 w3 H- i5 Bdo" t3 l2 i% l3 Q) h0 i. E
        Lan := rootfolder.Internal.Tools.AOLlanguage;
% M6 }9 A' G6 c& L; M        if current = @.Destination -- else return9 r' ]1 _5 U5 O( A
        then" M6 o7 K$ F0 H% B( \" |
                @.Destination := void;1 L: `% ?# H4 _# r# P+ n! C
                if @.occupied then
9 y% C8 h' p4 U$ h3 X& Y                        part := @.cont;/ U/ O( Q% K* H* ~0 ?0 r
                        @.transpOrder := void;
1 t. z- C  w6 z# o* L                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,! `8 k2 j( @5 ^  d
                                @,root.eventcontroller.simTime);3 e* a0 K; ~1 @5 x. w1 F' e
                        @.HasOrder := false;* N  [- U8 M' y9 }8 g) p
                        @.DrivingHome := true;. _1 i* V" d1 `4 c. W
                        rgManager.tryToStartTransOrder;4 u6 w- n4 m: z) Y
                        if @.Destination = void) A. ~' c; U1 \3 D; J6 `& V( B3 M
                        then -- no transport order for vehicle @
" T3 h8 z+ N, n                                @.Destination :=
# q! n2 Q- ]$ J$ F                                rgManager.nearestFreeStation(@,track.~);
- l6 K1 d9 E8 Q3 e8 X. c                                newDirection(@);   * J8 W( o; o0 j  {# f, [/ I
                                if @.Destination /= void then
# d2 U1 p8 j; P                                        @.Destination.NumReservation :=( Z- N# [/ j9 [$ v
                                        @.Destination.NumReservation + 1;& q# d( v* J1 ^9 E
                                end;
: ~5 G! @' }4 Y( d                                @.CurrIcon := "drivingHome";3 X5 N: r2 u0 I# @' K/ |
                                @.DrivingHome := true;* r6 |. O' Z$ M% y7 L3 C- N: z
                        end;
' @4 i8 \# z, k: {2 _                else -- the vehicle @ is empty, both vehicle and part are in the same dock station- b, V4 J4 c0 d  R0 A' b9 C: m
                        part := @.transpOrder;# c/ ]4 m6 c/ S6 F& j  w
                        part.move(@);-- load part( L0 G7 g( N7 ~* F! a! ~
                        @.CurrIcon := "load";9 y) a( g3 I* `
                        GlobalDistObj := part.globDestination;* m# c6 Y6 e4 Q1 g1 `4 o
                        assignLObj := rgmanager.rgAssignL;
) V& C8 Q5 M: t                        row := assignLObj.getRowNo(GlobalDistObj);7 H6 s! S. z, A6 |
                        if Row = -1 then -- since 700 ^7 O# k7 y( f3 t1 D0 z4 x' U
                                if lan=1 then8 v9 K: m: [6 A! n: U: {6 q  [
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
0 i0 J& \& U/ a                                                to_str("in der Andockstation: \"",?.~.name,"\""));
/ J' o6 j; X& q  k! b( X  ~2 s                                else& m: f, z0 ?: H
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
- z- a2 M1 R) C4 `* T                                                to_str("in docking station: \"",?.~.name,"\""));                               
' N7 y5 p$ g5 i; X6 ]6 F                                end;( Z* K$ W/ q& S; R) ]8 d2 r  E
                        else' n2 t% i1 e! ~! O9 V, s3 H! o
                                @.Destination := assignLObj[1,row];! ^0 r6 j; `; R, `) ]1 h- Q9 b
                        end;                        7 u+ y6 u% t  U9 T+ v
                        newDirection(@);
' Y  p7 p% G5 p7 @* e# q                        @.HasOrder := true;% O6 ~  ~9 W# S7 ]+ G5 r
                end;
7 h7 g; z% Q0 b$ U* e1 b8 t        end;, u! _2 Z8 }- B$ H0 f' @, ^; ~
end;        -- of the method) R6 b5 }4 i; k! l& J
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
# f& ^1 z: t7 ]' \( m8 W- U# p; r8 `+ G/ p- t+ D
这是AGV_putin中arrive的method。8 f5 y1 j! n4 M/ k* U4 b0 ?

8 t9 g" v% i3 V( X! a& Q& h当到达物料速度越高时,这个报警更多,
* C! ]; v9 b' y! P3 h) N可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
; ?3 Q- _! U3 M( f# I程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
; c9 P9 l) i& q& v& a
3 U6 q4 h  a: t. k! @另外一个小建议,就是move,所有的move都可以这样/ U+ H+ d1 |. M+ {  _
if not move() then debug end
. x1 |1 O3 y$ l* R这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
( u1 V9 l" _: A1 J8 ~5 n9 \- fplant simulation中的free libraries有AGV模板," S. N+ `4 W! y  q; o( D. e/ G' r6 q
里面也有案例。; I5 \: G5 h- a% r; s) w
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。. L3 |5 p5 g( p6 W' N; P" |0 }0 u/ X
0 K' j3 x! i6 L; @
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 2 s1 Q) H- @. o7 G/ E. v. k: Y' d
: _; y9 X" a& \" Y- T8 [) Z6 Z( G
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
0 A! O* F0 c) g: e) G这是AGV_putin中arrive的method。. g* _0 s6 C5 P9 D5 n. H: F
2 m. ^% T# H) ?" N8 R
当到达物料速度越高时,这个报警更多,

; j5 M# j! e2 G( Y% B' [另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-21 05:52 , Processed in 0.020411 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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