设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9595|回复: 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'3 [3 l* ?7 Q4 A7 H8 Q* B! G1 j$ w
*/. `: o* o- Z+ O4 N6 ~& L
is8 [% N  C( A, m& m- d4 b) K" T
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;; c5 u* C) W+ \; A
do, R6 `. ]5 m3 `
        Lan := rootfolder.Internal.Tools.AOLlanguage;
9 v% v6 y4 h* k: n        if current = @.Destination -- else return$ ]. g7 ^) `; y% N' r
        then8 u. I6 W- _8 O  u. e
                @.Destination := void;( T6 a& P$ J" t2 m2 r
                if @.occupied then2 V9 H& \9 E6 P0 q- q* T% v
                        part := @.cont;+ \8 n6 ~4 v9 W5 \/ u$ ?
                        @.transpOrder := void;
6 z: ~# o$ q* ^( D; T8 o                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
9 S" ?0 g" Q! }  B6 Z/ T1 |                                @,root.eventcontroller.simTime);
8 ?( J7 ^, a% _0 U  z                        @.HasOrder := false;! u/ X  g' c* m! ~3 `& V; h  L& ]
                        @.DrivingHome := true;% h7 }$ E9 ^# _2 ~' H  E- n' N, y
                        rgManager.tryToStartTransOrder;
  h" r% y* [9 j3 l# s  l                        if @.Destination = void
- I) o5 f9 v* M- f6 t- M$ w  c$ C                        then -- no transport order for vehicle @
7 X5 z6 W9 C1 W                                @.Destination :=4 [9 C0 d( X. {4 y* I/ @
                                rgManager.nearestFreeStation(@,track.~);
# N1 M7 U2 ~* g) }  T                                newDirection(@);   " x; u8 Y( Y9 j, s" o" m9 j
                                if @.Destination /= void then
. ^3 Q& ]8 B* c" r4 h1 D8 n. C% |  I& D                                        @.Destination.NumReservation :=
7 T4 n% r. p- v  D. f+ P' z, R* i- `  J8 f* K                                        @.Destination.NumReservation + 1;& z6 q/ _8 f2 @9 x
                                end;6 N' I3 [: L7 \' A# {3 w' |
                                @.CurrIcon := "drivingHome";7 J3 t- t: J" ]' S3 Y: Q3 \
                                @.DrivingHome := true;5 t/ M9 _5 s$ I/ a
                        end;+ W) h! h+ X3 U3 j8 b: a
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station# E( b8 N. h( e5 y8 P# R
                        part := @.transpOrder;/ u9 ]/ g( s+ L2 A, V6 T% l
                        part.move(@);-- load part
. g' h0 ]3 S# j# X# d                        @.CurrIcon := "load";9 f: O: J9 e) U. v
                        GlobalDistObj := part.globDestination;
" }- M( I4 N6 e9 ]                        assignLObj := rgmanager.rgAssignL;8 `. ^8 g! _7 z) y  Z
                        row := assignLObj.getRowNo(GlobalDistObj);1 W  b/ K8 G" u9 S6 q8 [
                        if Row = -1 then -- since 70
5 T  K/ o4 {& q4 k1 k4 `- a                                if lan=1 then
* P+ Y- e2 D- }& Y                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),8 S# r& u$ ^; `5 V# V: f3 P
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
2 s6 I0 u+ K8 `# O- O2 o+ R2 }                                else1 D/ @3 H5 n( g
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),9 a, i. B/ c1 i3 Z+ q% i
                                                to_str("in docking station: \"",?.~.name,"\""));                               
) p) s' |4 i7 _                                end;
/ g) L8 [- O% a- O8 [                        else
& V- u, ^1 `0 W: P0 Y2 L                                @.Destination := assignLObj[1,row];' b* @& j: E8 }% U3 s, _7 P
                        end;                       
/ d) d5 I: [/ k/ O! B                        newDirection(@);
6 a5 F. c& Z0 ]                        @.HasOrder := true;
9 s5 r' U  {7 @; E" }# O3 O: N" k                end;5 }/ n" q3 v* ]  q
        end;5 t) F% o# b% V' s5 l; R
end;        -- of the method  `  I2 w1 E$ A! s! N8 g9 e# F
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 4 I* W+ \2 p+ ^2 s
3 }+ @: s8 B/ d( e5 b) Y! f5 V
这是AGV_putin中arrive的method。
+ j' s2 b$ G( ]  F
0 r( \" n+ X* }( I) O9 X8 }: _9 y+ h  ^2 l当到达物料速度越高时,这个报警更多,
0 ~6 E) {; P: b/ v: k$ `可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
# S' P/ u0 q$ J/ l% j程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
# \) |& \7 v" h9 N4 v9 h$ ]) Z2 ]" o. q" ^3 [: m
另外一个小建议,就是move,所有的move都可以这样
2 O% ]- L- u, n  G1 \& u# C  f! i/ Vif not move() then debug end/ I5 ?0 k5 r* P' Z4 y- B! P
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。+ y9 r( e1 }6 O7 X: ^7 D
plant simulation中的free libraries有AGV模板,, B' A, J9 F9 |( K9 Z1 q
里面也有案例。+ W& g4 W" X+ M2 w
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
. d/ P6 p: C, y: e1 q1 {
1 z3 L; \+ R1 x9 N/ V6 A我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
5 C3 t* c- n8 R# ~0 I  r" w
: ?6 ~! W5 K0 `/ j  R( i! K" D那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 $ a, _2 F3 Z1 u/ M
这是AGV_putin中arrive的method。
* w- B$ z6 j' ~6 T, E" e- ~2 ]6 i3 J+ d
当到达物料速度越高时,这个报警更多,
# p7 g6 B! G7 X; a7 z
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-10 17:25 , Processed in 0.019272 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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