设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10153|回复: 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'' {0 ~3 _  ~+ E1 C+ f
*/  w2 P" s# f7 Q4 T8 X
is! j- P9 ]2 J$ w+ o" _
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
$ u. d. R' `; B8 ldo9 ?6 l0 j# f. b6 X% t
        Lan := rootfolder.Internal.Tools.AOLlanguage;5 i+ W+ Q: S3 k- i2 l" Z
        if current = @.Destination -- else return: {6 Q. ~; m1 T! C1 e. h6 a
        then; E; g* f0 `' @9 W. I$ K0 c1 N
                @.Destination := void;- S# F9 L$ C% d
                if @.occupied then
# d, a& z9 [9 L& Q$ c! n* w8 q+ d" d                        part := @.cont;! r2 D7 y6 R: C- O, |9 q
                        @.transpOrder := void;! S  H' J0 U4 _( N4 {" Q: I
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,$ o7 h, H4 H5 J+ P
                                @,root.eventcontroller.simTime);
. r4 t6 S. K+ ]& i$ p2 y' }: W                        @.HasOrder := false;, X1 }( y+ e- O* G# k+ E
                        @.DrivingHome := true;# E% ~+ U8 m) n! |2 g9 y- ]1 E
                        rgManager.tryToStartTransOrder;
8 I! E3 `) Z' |7 z2 K1 \                        if @.Destination = void
5 [' J$ h5 F! y; F, n                        then -- no transport order for vehicle @8 w1 p9 e: [5 V! U
                                @.Destination :=
( r, _! V+ \5 }0 H$ }                                rgManager.nearestFreeStation(@,track.~);& J' C" P3 [5 q& y/ S
                                newDirection(@);   3 c& `$ X8 T7 x) Y! K8 f4 j+ b, p6 C+ _
                                if @.Destination /= void then0 y- {. P2 Q% F3 B
                                        @.Destination.NumReservation :=! I& p8 I7 j: E
                                        @.Destination.NumReservation + 1;
, T* a$ V9 X0 V, k                                end;' e) b. q1 U% u  V5 R1 d
                                @.CurrIcon := "drivingHome";& I2 q# j/ M8 a  d" W
                                @.DrivingHome := true;, t5 D" Q" e) e/ B
                        end;2 U5 k( R5 q- L+ I6 H0 Q
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
7 N5 ]$ \' ^, `0 c" c. y/ l, I                        part := @.transpOrder;
: v: R) Y6 |: [* B3 H: o                        part.move(@);-- load part
* u7 G$ f& [9 {9 D8 z' a4 ]/ m3 P0 P                        @.CurrIcon := "load";- w% h( o  g9 p) {
                        GlobalDistObj := part.globDestination;
/ N7 E3 j6 O7 ]+ U                        assignLObj := rgmanager.rgAssignL;" G5 {" ]9 G5 G4 c5 v5 r
                        row := assignLObj.getRowNo(GlobalDistObj);
2 t% u2 i  O9 ?1 ?; w; N                        if Row = -1 then -- since 70( p% \, L7 h! G1 L$ f7 I
                                if lan=1 then5 S: @. ]9 q( R5 O6 W( S% a
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
& ]" @( R* n* w                                                to_str("in der Andockstation: \"",?.~.name,"\""));
! q5 y9 }3 i* ^                                else' M3 q6 k% i. ?% B) d: n# v1 E
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),# I3 Z( o) S, b+ |
                                                to_str("in docking station: \"",?.~.name,"\""));                                " ?. a0 o1 W- y7 {) n
                                end;3 G; p7 G) Z; P5 M/ O3 X1 e
                        else
# t- j6 ]; g; q, u                                @.Destination := assignLObj[1,row];$ U! [* c; z" \+ T% g$ C
                        end;                        9 x$ t, Z  G+ G$ ^) |
                        newDirection(@);
0 ^( F" K# @# M' u9 v9 t5 P- n                        @.HasOrder := true;
4 S8 x  x5 |( r+ `3 e  l                end;
5 T0 ?0 q9 W1 m; F, o( o# b        end;' W: N% t) ?- \( d* C
end;        -- of the method+ V( ~, I: J! |' Y: Z. q7 q3 S' S* h
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ( B3 `( ?! O9 D/ i+ Z) M
' W) D  ?9 N% A- u% l7 F. R1 @5 w
这是AGV_putin中arrive的method。
+ i2 E& Y; ^9 g2 L' T& G/ l! q
) r* h& q; l6 ?5 F当到达物料速度越高时,这个报警更多,- r. T" H- N7 s  n* {' v
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
/ Q) \. i4 h8 I2 p' R. J/ \( ~+ _* h$ B程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?* u  }1 I6 L0 v& x
# j8 c) N" o4 P* M
另外一个小建议,就是move,所有的move都可以这样
/ `, [  A0 p1 {6 @# D# C9 A# b" D3 ~+ Qif not move() then debug end
" Q, g, t+ S3 N( c. E/ @这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。) m; X/ ]+ `" |% |1 Z/ K" }
plant simulation中的free libraries有AGV模板,
8 ~3 G: V) X; e1 A: @+ s里面也有案例。* p* F+ T0 M* [) a: x
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
  O( J) r0 S+ k! ~
  G+ o3 e8 K  J0 e5 X- i' q我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
9 y# ]5 h6 c: U& W7 b% ]
5 e, [' Q" E% {那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
7 T) _: ^8 a- W+ G+ S4 q这是AGV_putin中arrive的method。( Q5 n- G2 h  p/ k5 R; O/ t

. y% X6 p7 c" y+ V# ^8 a9 w+ M当到达物料速度越高时,这个报警更多,

. E3 o/ m# z+ k! W另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-16 16:13 , Processed in 0.020399 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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