设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10134|回复: 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'
; S4 ]/ o0 u0 g/ R8 r, a*/
. U# F7 Z3 v* L' u! [* h! bis
4 h& w  T' a* K) D- ~! |        part, GlobalDistObj, assignLObj:object;row,Lan:integer;% b8 m0 \0 W* `' p/ n& s
do
8 J1 P# [+ _; H1 \! J, v        Lan := rootfolder.Internal.Tools.AOLlanguage;/ M" S% v; o1 x5 w, d
        if current = @.Destination -- else return- `5 I6 c, g% H# T/ W- J
        then
5 m) Q$ ]) j$ c0 n                @.Destination := void;' K0 w: P6 J) i
                if @.occupied then
7 c: G% [  q* {# t- x- }- o                        part := @.cont;8 W* F) l* N0 f( ]9 j  W
                        @.transpOrder := void;
4 D2 w4 d2 B; [: i+ J% e                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,. [! R6 u6 ~# n
                                @,root.eventcontroller.simTime);
/ B1 H: X2 G& _' j' T! p: s& T                        @.HasOrder := false;
9 D; q) Z5 }9 {7 G" s  \9 w  K- P                        @.DrivingHome := true;
1 ]7 ^: G: g! q$ _) F% i3 Q1 G                        rgManager.tryToStartTransOrder;, Z3 s4 L. H5 }# {
                        if @.Destination = void
( U+ u7 d  ]1 x* k8 F5 F                        then -- no transport order for vehicle @
$ c- ?& J) l9 c& G                                @.Destination :=
1 w4 O7 j9 _$ }! K5 V                                rgManager.nearestFreeStation(@,track.~);6 d/ y( v! H/ Q  q% M
                                newDirection(@);   ; J+ c( b$ v! I, _
                                if @.Destination /= void then2 C( y0 e2 N  [
                                        @.Destination.NumReservation :=; b8 P! P( X1 B
                                        @.Destination.NumReservation + 1;4 E9 N/ [' k- P; J; q4 m
                                end;
0 L5 L+ ^; |8 E% O  d! X! ~7 X7 K                                @.CurrIcon := "drivingHome";
1 Z6 Q: U/ M' w+ K7 o" D4 s# {                                @.DrivingHome := true;2 p% w- D, ]" x* O
                        end;: K5 X( u/ d  q
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station; |1 I9 y0 o. a( p5 ?
                        part := @.transpOrder;
# `0 g4 q$ R  I1 t% g+ w( m                        part.move(@);-- load part
7 B: F- |/ d5 v8 t! ~                        @.CurrIcon := "load";, W) L% C# C* h, ^
                        GlobalDistObj := part.globDestination;$ r$ W' O. s7 Z/ K2 l
                        assignLObj := rgmanager.rgAssignL;1 _' u# R- I5 A' H" P: }
                        row := assignLObj.getRowNo(GlobalDistObj);6 v: d! D7 W% R6 T# u
                        if Row = -1 then -- since 70
6 c$ i, H7 `' K* q1 ~  A                                if lan=1 then* e5 ~3 f% D, z" d7 Y" q, I* P
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),) ~$ A) X. y) H8 d
                                                to_str("in der Andockstation: \"",?.~.name,"\""));" o8 {0 G* I" O
                                else- c! ~5 N8 o9 D
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
, i8 L1 I; ~8 [. t1 R3 z                                                to_str("in docking station: \"",?.~.name,"\""));                                9 }: h- U, Q6 B2 [1 b
                                end;
1 j6 _0 t% t) N4 o1 s- c                        else
2 F5 f- T4 ^. `3 D+ x$ P                                @.Destination := assignLObj[1,row];
  R0 e2 c) ^* k% c0 u* r                        end;                        9 F) a1 x4 l# w
                        newDirection(@);
$ m( D/ u4 h4 K                        @.HasOrder := true;
9 m3 {* [# C% e5 N) P                end;
6 U3 N% u$ W* f; Z0 u        end;3 {3 p# v% s4 `) x$ @' h1 _
end;        -- of the method
0 l) c: _6 Y% Q
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 $ Y* D2 ]& L. Y/ R# O# G: G

* ~! Q$ n- D: o+ T/ U这是AGV_putin中arrive的method。0 x; L: u1 p# p1 u8 V
# o; X! C  n% S7 Q3 [" {
当到达物料速度越高时,这个报警更多,
5 O( @: ]+ n- Q! K9 U( O* W) `* [可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。- b9 P! E: B$ s* a, }8 v7 L
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
4 {3 S. b. P. v: w
' \: T2 j* f- ~: o' Z) ?0 V另外一个小建议,就是move,所有的move都可以这样
1 A4 J. S3 ^7 [: Z: b" Yif not move() then debug end  s9 g/ W5 r  Z& M8 k  E
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
# L' ?& N' m2 ]$ c) @! Kplant simulation中的free libraries有AGV模板,
$ M* T4 U5 s* d/ U+ J& Z$ O里面也有案例。
9 E( s$ d; P& u我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
. `6 h2 `3 U' s- I: G! ^3 D8 q5 A, p4 u: U/ Z! j
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 4 L* C2 J+ J; Q/ q% ~1 m
7 y' x- i9 i4 \' t
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
- F. }. s8 o. ?( y这是AGV_putin中arrive的method。
) R. d7 H  Z6 G3 ^9 E1 C/ _% T
, r% ~% f# ?/ @, H( b( P当到达物料速度越高时,这个报警更多,
& a+ e8 }; \' Z+ Y
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-15 05:54 , Processed in 0.017883 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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