设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7562|回复: 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'
" {& Q, H- q+ p) h# G*/
& ^9 K( m5 n' m$ ]/ Uis7 k5 F0 g+ F- d8 T
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;/ d2 e. ]9 x) V: i" P' k
do6 y# y, y8 e/ h  U9 |
        Lan := rootfolder.Internal.Tools.AOLlanguage;, D) h$ \1 ?! }0 a
        if current = @.Destination -- else return9 j, c- \5 H* n4 w. }  r7 X  ^7 u- Y
        then8 [* A/ c# q8 x- ?. ^% N$ f
                @.Destination := void;# y! L/ j: f: `6 v2 P8 y3 b( o1 b
                if @.occupied then. s9 D# Q6 \- h* o; r
                        part := @.cont;) d* m3 ]* g! Y- u1 a
                        @.transpOrder := void;
8 N/ m# N4 G7 n1 Z) Q! I; j2 @) ~+ v, a7 N                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
  D3 J5 b9 Q+ s* N) o* U                                @,root.eventcontroller.simTime);
! z6 s% N! y7 j5 b/ A( q7 i& j# ]5 I: `                        @.HasOrder := false;
  Y4 S/ ~' ~- Q+ X                        @.DrivingHome := true;" J: F& |. S; z% [) W/ j- X
                        rgManager.tryToStartTransOrder;
4 G# |7 [4 C) T7 P0 _, R- E9 Z: a                        if @.Destination = void5 W) f/ A. }' ~3 _" `% I
                        then -- no transport order for vehicle @2 k% r: e9 l' ?; C' e/ a' W# H
                                @.Destination :=9 B/ i4 G3 A' i' f" m. ~4 N
                                rgManager.nearestFreeStation(@,track.~);2 y' U1 e0 X  p# s+ C' B0 j
                                newDirection(@);   0 I1 F) [; t6 y
                                if @.Destination /= void then
; }" x, Z0 Q0 p6 [                                        @.Destination.NumReservation :=! `5 h. s! T1 B, x% t  w
                                        @.Destination.NumReservation + 1;
" S$ _! l: v: n, h5 l                                end;
1 A* _* u6 p# @  N                                @.CurrIcon := "drivingHome";
: v& Y8 ]4 k$ T# D# l  {$ g& c                                @.DrivingHome := true;% p- u' z7 ~! S6 l" O
                        end;
8 G/ ]5 w. j1 z2 b7 s' G9 X* Y                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
/ a* ^5 ]) f) m% u                        part := @.transpOrder;
* E9 \  l0 y4 R2 N: M1 G                        part.move(@);-- load part$ \# L8 p6 k6 h( n# V4 e4 H; y' Z
                        @.CurrIcon := "load";" U; e! Y3 `6 M  r
                        GlobalDistObj := part.globDestination;/ u  n7 j4 o7 Z* R
                        assignLObj := rgmanager.rgAssignL;3 K; t( G6 h1 {; y# p. U8 E
                        row := assignLObj.getRowNo(GlobalDistObj);2 A" n: @7 f, f; v! u/ m( V
                        if Row = -1 then -- since 70
* k  z' L0 Q/ C# g3 c% d                                if lan=1 then/ K" j5 X/ m  g: E
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),; D; a# |9 N1 ]/ P3 U9 ]& H8 E
                                                to_str("in der Andockstation: \"",?.~.name,"\""));: i) [, u$ ^( l3 r5 I* a
                                else
2 ?% o$ V8 S! E' K3 }                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
4 A' ]! p) u+ W- E" }                                                to_str("in docking station: \"",?.~.name,"\""));                                * I5 m- o0 ^4 p6 }4 Z
                                end;
) {, S/ V/ X3 I0 B9 G/ ]; J                        else
& ?% K* M, g: Q# ^                                @.Destination := assignLObj[1,row];: o  E% a* n5 o3 b
                        end;                       
  O/ g1 ^: m: b) V; d% W) @. P. W6 t                        newDirection(@);' c; m1 o: r/ V1 |  C6 \* A6 \+ s6 S+ F
                        @.HasOrder := true;
/ X: R  w0 o* j+ m                end;9 l/ I" B! m0 S2 i2 d# R
        end;
7 c4 [" N4 p% ~* }( s# Mend;        -- of the method
1 ^; ~& {- F1 d1 N, V# J. ?3 }  Y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 7 s- u' a+ J4 x/ s! F% J9 z
, b) M; E. q% R: h, k! n, R0 O$ c
这是AGV_putin中arrive的method。
8 c* @) f9 H7 O7 ^: c$ G
) t5 w( M# B# N7 j$ _0 D当到达物料速度越高时,这个报警更多,+ e# \0 \% y, `+ Y7 j
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
* `* Z7 q, q8 Z1 x, \程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
* }9 ]* ^8 f! w$ |
; u( U6 }/ q& n, D; h1 Y$ [$ p' m' K另外一个小建议,就是move,所有的move都可以这样5 l, Y, a# p/ j
if not move() then debug end! i! j( t5 j9 B0 D
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。) \2 y* S5 G# w! y- V2 S
plant simulation中的free libraries有AGV模板,
+ Y4 K" w3 I( c5 j. F& {里面也有案例。; e: Z( `) y, Y
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
) d1 ?$ {( }; i5 V" w0 k8 V& G- T) [9 a
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ) n3 o) m% O" D! R( A  B
! P. K: q9 m# M( c1 h# K, j) r& g
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
4 W0 Y$ J* Y& t, a这是AGV_putin中arrive的method。
4 d0 _3 Y# Z, x  Y7 t# w
7 t  I' r9 B( h/ k! x当到达物料速度越高时,这个报警更多,
+ R1 |. ^2 e; ?: U/ K$ z! l
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-17 22:00 , Processed in 0.021235 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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