设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6563|回复: 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'
+ a& Y7 s: g5 _1 D*/
0 h: O$ e- g! T/ g6 j! e5 U6 S* Dis9 F4 |5 Y% G5 k- h9 E
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;- _: c. u7 e# c4 |( T. w7 I* _
do
9 `1 G. h$ B) {( v5 k8 q& ?        Lan := rootfolder.Internal.Tools.AOLlanguage;
, M* q; d/ f3 C3 ?        if current = @.Destination -- else return- _1 E* i/ O( Y6 N( t. `% N2 n
        then3 L9 s$ j' h: }- h" x" g
                @.Destination := void;
* a" L( L  R, S& o/ k                if @.occupied then
/ O6 V7 A! f3 E; ?                        part := @.cont;/ a, O1 u! l( |. u" d3 s* N5 z
                        @.transpOrder := void;" `3 ]( Q& Z) y: R5 q. H
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,* G) C, W- _4 i+ J" Y
                                @,root.eventcontroller.simTime);4 r& O# ^& ^) |; {9 `" A0 P
                        @.HasOrder := false;
+ Y+ h# J' o. g/ q                        @.DrivingHome := true;
" h' q/ \4 S/ E4 H! I                        rgManager.tryToStartTransOrder;
2 b! e, I5 [2 L( x                        if @.Destination = void
0 ?. T4 P$ h  h1 x                        then -- no transport order for vehicle @7 i& f9 Y8 h' U# o
                                @.Destination :=8 b, L* X7 q& d* U' ^; o
                                rgManager.nearestFreeStation(@,track.~);3 w/ S6 a2 [' |' e$ {5 b
                                newDirection(@);   
; w+ l: P; o4 T: C0 q8 b0 |+ D# m                                if @.Destination /= void then
9 A: r6 E4 @( G; ~& `2 x+ L                                        @.Destination.NumReservation :=/ }- J7 h; {/ Y* k' c
                                        @.Destination.NumReservation + 1;7 Y  O7 A+ D3 o3 n8 h
                                end;1 Z% g+ A6 R; u, y  }5 e
                                @.CurrIcon := "drivingHome";
& h! N; R8 {, O                                @.DrivingHome := true;/ P6 b" P3 H& c8 d4 v0 i5 }
                        end;3 u$ s5 P6 a" A* H( r
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
+ Y8 @3 y3 Q1 i' Q. F. w; o                        part := @.transpOrder;
9 u( K& J2 r- s5 V8 ~                        part.move(@);-- load part; F4 d- _, q9 h1 `. P9 z9 X) e$ z
                        @.CurrIcon := "load";
( M8 p+ ]3 ~1 b) T7 d                        GlobalDistObj := part.globDestination;
* }$ c8 _* \  a/ G                        assignLObj := rgmanager.rgAssignL;; U) G6 `" m1 A7 i3 O3 t  h
                        row := assignLObj.getRowNo(GlobalDistObj);
. n( v) c& c, V# U: }                        if Row = -1 then -- since 70
; w% F$ j8 Y3 ]- w                                if lan=1 then2 P' g; z. W3 i4 c/ g
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
( }, H6 j. S# _3 V( h                                                to_str("in der Andockstation: \"",?.~.name,"\""));
( o; w) P: w6 |1 Q$ }                                else
1 C8 Y+ Y; Z; D; @. B; G1 u* c! B                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),! z) a9 ?6 b. G4 j
                                                to_str("in docking station: \"",?.~.name,"\""));                               
3 g9 K# B% o: S1 x. D, \- T5 p                                end;
( g; T  W) K5 l" I% x: D& i" r- t                        else* }7 a  C( u0 r8 H0 Q
                                @.Destination := assignLObj[1,row];0 x. c4 T  z4 Z8 x  K6 r4 R) o
                        end;                        ! A3 A/ |- B' Q& C
                        newDirection(@);" p3 g4 N# Q5 D# G% Q
                        @.HasOrder := true;
3 b, L( h5 ~. w" a0 s1 K- P                end;2 }7 g3 q. `1 R& c
        end;
; I" {! W- l3 P5 B/ iend;        -- of the method
3 J; F# u( a+ U9 E5 R* a, x
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 3 M1 o0 M/ ~% G9 l  y
+ x3 Y' t8 j! ~- D# j
这是AGV_putin中arrive的method。9 K4 L) F9 s* }# q& X: s$ [
, }. p* d& x8 L5 k) z! T& W
当到达物料速度越高时,这个报警更多,, }; H' P* q. v$ G& L+ |8 {  R+ y
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。7 o7 @# M% X; S7 W, k
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
. A  F3 a9 b6 U/ q! ^# h8 c6 m8 p, z" g$ e, X3 k1 I% R) P
另外一个小建议,就是move,所有的move都可以这样( a" f' C/ H# n; |1 S6 ?
if not move() then debug end, N) L% k' K  x6 R: q9 Q
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
: \$ K( r5 r8 J4 n$ V. I0 \plant simulation中的free libraries有AGV模板,3 w; w5 D; B9 w
里面也有案例。0 d6 Y* R$ ~! j
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
+ F+ e: v- b* }3 }4 A8 |* b8 ?  s. A5 t* e+ h, A, D& f* T
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 - T4 n; D1 j& z% C9 A. `
* w( m+ n& |) |- J
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 * _  Q# ?7 D. w! k( V
这是AGV_putin中arrive的method。8 x  d, i- y- n" q, U. N' Q
9 P5 G$ r# I' l3 s
当到达物料速度越高时,这个报警更多,
" F  ^, s) f1 C7 B; W4 N
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-13 03:24 , Processed in 0.025691 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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