设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5913|回复: 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'
) e$ `3 Q/ K0 w2 W$ e*/- C+ }9 f1 @( N/ _$ ~
is
7 x! v# A$ B: S3 M4 j$ ^6 G        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
3 U  T& U- Z2 b" S7 Q- Ydo
9 N" V8 `3 Y8 _        Lan := rootfolder.Internal.Tools.AOLlanguage;! I* ^% k+ r& [+ u  R0 i. Y
        if current = @.Destination -- else return1 E0 E& `% y. H7 T: G. {( E
        then
, u* m' j+ h2 {8 L. s2 ?$ W" N                @.Destination := void;
: z6 L& D- F& z" x. }; \3 n/ p                if @.occupied then+ Y1 ~, s, z3 K
                        part := @.cont;' x* M' \( j( N. B( A+ r
                        @.transpOrder := void;2 e4 E9 F; r. w( j0 F  W4 `2 ^3 S
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,2 [% u0 X8 x  l/ f7 w
                                @,root.eventcontroller.simTime);' b9 F+ T+ Z) Z/ E2 A
                        @.HasOrder := false;
! O4 S- L$ q6 b, ^  l5 \                        @.DrivingHome := true;) a4 y+ N/ L' d6 h# T4 [
                        rgManager.tryToStartTransOrder;
" W0 ^4 i, o( P, A# K                        if @.Destination = void
6 B, m7 |$ K% [( C. _                        then -- no transport order for vehicle @
7 ^# G! g! G6 V' l2 U                                @.Destination :=
9 o4 {; Y% P' z+ l6 A# P                                rgManager.nearestFreeStation(@,track.~);. `  W  {& x. U  @. [1 v# I. ^9 Z" @
                                newDirection(@);   4 C; a3 [1 N$ u7 d& ]+ n3 C) M( o
                                if @.Destination /= void then, |, |, b7 B! a% q! T3 \
                                        @.Destination.NumReservation :=: R* T* l/ P! U1 w5 H+ v. m
                                        @.Destination.NumReservation + 1;
/ B1 X2 a5 H8 b( l; m                                end;
* J: y8 N1 g4 s, j& G, E1 q                                @.CurrIcon := "drivingHome";+ d3 J& V% L$ E% _  v0 M
                                @.DrivingHome := true;! \$ R0 T: N8 M2 X' v5 Z0 I
                        end;, ]* [/ F4 }* [2 B
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station: u9 U! I2 {6 a+ A% G- t$ C
                        part := @.transpOrder;
  r, G0 p* y) ]3 G                        part.move(@);-- load part% _: k. h) q; Y* z- g1 ~
                        @.CurrIcon := "load";
$ ~$ a0 R- J7 }. f                        GlobalDistObj := part.globDestination;
5 i' z6 j* ]0 W. p+ ]4 q. H                        assignLObj := rgmanager.rgAssignL;  [3 ?% I4 n, R" b0 C, `! f2 a
                        row := assignLObj.getRowNo(GlobalDistObj);
& y4 O* \% ~$ N9 c. Y9 C                        if Row = -1 then -- since 705 W$ u4 t3 V, C1 O; r3 U
                                if lan=1 then6 x0 L4 M8 L% F& ^+ b) L
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),* t# }0 B1 U% D% a" O8 o  m/ h8 A- C
                                                to_str("in der Andockstation: \"",?.~.name,"\""));+ `( g: x7 Y* M% N+ A! p
                                else
8 q) b( d0 Y7 ~                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),9 P! Z5 M" I2 t, w( K
                                                to_str("in docking station: \"",?.~.name,"\""));                               
. O, S( o/ r6 S5 s1 g( k* u                                end;
0 }& V: g) y, z9 D0 ~+ F7 m                        else
8 y; l$ q. f: r+ w                                @.Destination := assignLObj[1,row];
# P  f- O0 T& O) L8 o                        end;                       
$ x& Y! j! H) ?: C                        newDirection(@);: ^" s4 O* h( T$ ]9 H1 ~/ K
                        @.HasOrder := true;
+ I. O) r; s( o! n7 a, Z! ?3 X                end;
. W# _- c9 h6 A' Y! p        end;
- P- v' o3 C4 w1 |end;        -- of the method) I( N, r! E/ f) V$ d6 H$ S
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
# Y# x8 W8 _# q1 b+ M& }1 }* P, I: G2 Q6 Z- k, `
这是AGV_putin中arrive的method。1 g- F7 g: O' @8 {% ?+ v% [

$ o5 E- j; N  Y当到达物料速度越高时,这个报警更多,2 j' z1 B' ?$ v
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。' z7 s$ [$ f5 h5 {- [& s
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
( t7 N) P1 l3 R# b$ o+ q/ D
/ e% U$ [) n# Q+ C& J, ~# x1 K另外一个小建议,就是move,所有的move都可以这样3 k" U$ ^" ~% b) J5 o4 j! I
if not move() then debug end& X4 d: @, x0 ?; L0 j
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
7 T% k' D5 O5 r+ s; R+ r& I6 M; Z9 xplant simulation中的free libraries有AGV模板,) n" Q# E' P; ~8 F0 y
里面也有案例。
( ~: D) [; |- z! E我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
1 L. u! W& J  x8 \, I$ v8 o! e* W$ B- _
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
6 I" U/ k: |$ W: C, @% ^3 t) w4 z  }4 j/ b5 Q2 W; o& |4 q/ z; v
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 0 Q& `+ M! c. x9 \' a
这是AGV_putin中arrive的method。
& n, X4 d% K2 b+ j. ]* G& D
) C* x3 G5 G. D$ d; t4 ~" Z当到达物料速度越高时,这个报警更多,
1 V2 I, a8 N( Q9 A) B: r
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-1 13:40 , Processed in 0.031080 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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