设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7596|回复: 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'
# L3 G* s% m8 v' T*/; {& }. G% q/ |, k2 T/ l
is
" }+ {9 w0 U0 |" f' D: k, o        part, GlobalDistObj, assignLObj:object;row,Lan:integer;6 o- T; G2 I: B# D3 Z  F
do$ G, D% \- w! y3 p
        Lan := rootfolder.Internal.Tools.AOLlanguage;' Z0 [) J) \( n; r  c- A
        if current = @.Destination -- else return8 \( P7 C# h1 O9 h+ J. f
        then
2 k. E' {4 q" g" }( d( r! D                @.Destination := void;
8 e. N# I3 J7 H# I6 h& F                if @.occupied then
5 g/ T# I& x3 V: [/ m" r                        part := @.cont;
* T- b) n# i9 l8 e                        @.transpOrder := void;
$ x0 ]* G9 v7 ~8 S                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,1 B- M" ^. e0 ^. K' }% k
                                @,root.eventcontroller.simTime);
7 P+ Y" m0 Y- _$ @                        @.HasOrder := false;
% I; M  }" w. ]: [6 d                        @.DrivingHome := true;
5 U0 L/ V' h) D                        rgManager.tryToStartTransOrder;
) r( z' {. F# _# O                        if @.Destination = void
- o  O: U/ G! z# d                        then -- no transport order for vehicle @
* ]* \- H+ O- @& n7 k3 {! @                                @.Destination :=
/ t6 W% x1 n4 g2 X7 \+ M5 N                                rgManager.nearestFreeStation(@,track.~);$ K+ x  b: g% Q  ]  V
                                newDirection(@);   9 I* K) N$ W- u' D$ Y2 T) p4 m5 R
                                if @.Destination /= void then
7 w2 Y' S2 o" J( Q# p' t                                        @.Destination.NumReservation :=
1 @) S  @! Q9 Y8 n" ^) d/ f                                        @.Destination.NumReservation + 1;
4 K4 r1 U/ n% W% Z4 l                                end;
4 @  V8 O, y( c" p0 q. A                                @.CurrIcon := "drivingHome";4 ~' H, m  o" d: ~  T0 d' s
                                @.DrivingHome := true;3 j4 ^4 j0 g/ a; y& T$ f; e7 K
                        end;) h# t6 k. Y/ g, U
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
$ Q' ]( t- T6 i# }- c$ S                        part := @.transpOrder;5 f0 b7 }: x' Q" @- a
                        part.move(@);-- load part# e  ^) m' g' D2 o! `5 P, k5 w5 I
                        @.CurrIcon := "load";* [5 x3 W3 K  A; e1 D* m% c
                        GlobalDistObj := part.globDestination;* T1 m6 \0 `. f4 l5 |- Z
                        assignLObj := rgmanager.rgAssignL;
6 M: v3 `3 U6 I% G9 u( ^+ v) d                        row := assignLObj.getRowNo(GlobalDistObj);- q7 I. M$ e% V2 p$ D9 d3 \& M, `
                        if Row = -1 then -- since 70! w  J: @. c+ V2 |* @
                                if lan=1 then1 l& h4 L1 H& ^3 c8 X; B$ i( x
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
9 y* c7 r- h- b4 H$ R                                                to_str("in der Andockstation: \"",?.~.name,"\""));
. ?; i: [% u! s6 w$ j/ y                                else% G4 i: b/ Z/ d* `# n+ b$ j
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),& K8 T$ U- L  n
                                                to_str("in docking station: \"",?.~.name,"\""));                               
7 I5 Z' Z& N$ @. J                                end;
; @- x' f7 y2 s8 a                        else
" k8 {  @: B9 J3 d3 g- K                                @.Destination := assignLObj[1,row];
* i8 u: ~3 |: f4 _3 p                        end;                        2 k" H# @5 G! o9 w
                        newDirection(@);! L$ n% a8 W+ h" N
                        @.HasOrder := true;
' p- ^2 _- r. _6 \$ N2 j8 L                end;/ h: ?& r* L% G8 K" b. e7 W5 Y5 P2 J
        end;
3 E: n# H7 L& T$ v, }/ R# ?& eend;        -- of the method
3 f) S: F0 N0 H! R$ `% Z0 T
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 , M, D- p4 R5 |6 g3 s
/ I; b, ^# a: q6 i% y
这是AGV_putin中arrive的method。4 G* J4 ~! d5 K- c; G$ G/ p

# O9 e# `8 {! l, u+ N: ]* K8 C1 o当到达物料速度越高时,这个报警更多," x' D6 N7 a* C: V& o& c
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。4 c0 q" \7 o9 m) H
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
3 T* \8 n6 ]& L+ @5 `' b/ |/ m7 r& R- g; q' _! [9 S
另外一个小建议,就是move,所有的move都可以这样' ]8 ~3 d9 ~* C$ [! a. s! t) K4 E
if not move() then debug end
# t. l7 f5 }, t5 {这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
) q1 j) Z5 B: ^0 uplant simulation中的free libraries有AGV模板,+ x0 M8 ]$ s3 @+ p2 Y( [
里面也有案例。* }; F4 X' }" Q8 }
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。) c) F, `9 L8 _9 Z/ B6 s% B

4 i7 X! P; T1 U1 E我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 6 e' r7 b( o/ u7 @3 k# n' T( e
8 N6 I  T$ O$ p) Z/ f
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 % U: m+ ]& t) u$ H! M. ]1 o' ~
这是AGV_putin中arrive的method。
: @1 o4 L. H6 u# U2 j4 C- N: V" _% P1 W8 ~# b! F  t
当到达物料速度越高时,这个报警更多,
  E! x1 y% X, _* A6 f7 N* `
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-19 13:27 , Processed in 0.018345 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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