设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8222|回复: 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'4 d3 ^1 ]; C! N# Q  {) l4 ^
*/- s6 _: L* D' k' M2 Y1 l+ q# _# _
is) e: _7 V( [9 o1 I7 Z
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
, b( r6 |2 `& l3 g: Mdo
6 f5 [1 Q  G% M% J) @! e3 I7 G        Lan := rootfolder.Internal.Tools.AOLlanguage;
" O- w& R4 L+ h: r        if current = @.Destination -- else return
: c$ b& l9 h+ u$ b- l        then
2 R2 o0 _2 f2 j                @.Destination := void;* @, H2 n4 b2 \5 F' g  \
                if @.occupied then/ I) A* q8 h3 L1 I( f$ `
                        part := @.cont;
! K  E9 O' k" t, p2 X: D2 \                        @.transpOrder := void;7 F' W: P7 {1 N7 Z; X9 n
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,3 h1 P3 \6 N; M: o9 \2 r" ?
                                @,root.eventcontroller.simTime);) y9 T  K9 \8 L* E% b
                        @.HasOrder := false;' q4 w/ @8 t: Z
                        @.DrivingHome := true;
( \- D+ B2 n  Y                        rgManager.tryToStartTransOrder;- y4 x. K* T4 x" c& ^! g- J% }
                        if @.Destination = void
* M% M2 `8 o6 o) A* r( P; {                        then -- no transport order for vehicle @
! O1 d! ?  B5 \& P! T- a) u                                @.Destination :=: A1 R4 n) m! h
                                rgManager.nearestFreeStation(@,track.~);
& ?$ B. ^3 c5 X% Z$ v2 ~                                newDirection(@);   
3 S' u: z9 i+ i$ F0 [                                if @.Destination /= void then1 m2 E3 W6 ^- T& q: L7 g" N
                                        @.Destination.NumReservation :=
- m9 W- _* E& D* B+ j                                        @.Destination.NumReservation + 1;" W' B7 V& \6 O) q8 i
                                end;
' o, b) z8 s3 Z# J4 r% J                                @.CurrIcon := "drivingHome";+ D* {6 {* q$ i) y. h& [* ~
                                @.DrivingHome := true;
6 B+ u% f- P  E9 X1 M                        end;- t3 U2 D' @' N* u4 \
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station. p3 g$ G0 f+ C$ K5 K* i
                        part := @.transpOrder;9 J1 M4 O- x; _
                        part.move(@);-- load part
3 j! R7 P7 O0 \  X* ]                        @.CurrIcon := "load";6 {2 q5 h  e! K; `5 U$ h
                        GlobalDistObj := part.globDestination;
1 ^& D/ p7 K5 U" z                        assignLObj := rgmanager.rgAssignL;7 p4 f  T# c$ q# g  E
                        row := assignLObj.getRowNo(GlobalDistObj);/ `  v0 e8 A$ X- p$ ~) O* A
                        if Row = -1 then -- since 70
8 ?9 w& Z0 H( J3 M* `1 C                                if lan=1 then
& |9 L6 t  ^" b6 H; D                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
5 ~/ e* p$ J& p& V. `                                                to_str("in der Andockstation: \"",?.~.name,"\""));
$ d5 r9 t' e2 f0 `( {                                else8 ~5 h4 H9 G3 `" ~/ b, C$ f4 l: N, z
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),1 N' M7 s  F4 Z; @- q+ M- S4 E
                                                to_str("in docking station: \"",?.~.name,"\""));                                & T9 a0 p" Z2 u) N  q/ J* R
                                end;. b; a- `9 v" [; c# x2 H% O: {. Z, ~
                        else# Q. }/ v5 x; i4 d, H* O2 S
                                @.Destination := assignLObj[1,row];& j3 J0 T- P# e
                        end;                       
' ]& l" w; h: C                        newDirection(@);' o+ V: e4 }& S* k: K5 t9 p; }4 W
                        @.HasOrder := true;
0 w8 e: }& B" M8 I! b- b7 A                end;
) N8 _7 N, {! j+ O3 K        end;: q0 {4 X( s" _/ J# ]9 ]6 e
end;        -- of the method+ T( m) r3 B8 A" a! D. D
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ; C! ^: {+ {+ ?4 r; ]7 N

. V! S+ l4 v) H% I- Y& X& G这是AGV_putin中arrive的method。
8 z) w* f) x1 b: G, E) d+ D8 m7 U$ ?; J
当到达物料速度越高时,这个报警更多,
! e2 t: t4 \% H5 @. D6 G可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。8 M0 i. s$ l! Z: z  q- L
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?9 p2 t7 \+ c3 j" ?6 Y* p$ t8 x- b
" ]+ L+ T$ M# [
另外一个小建议,就是move,所有的move都可以这样, W; F5 j% ]# g! j- h8 @, ]- W0 X7 X/ Q
if not move() then debug end, J6 U8 H/ R: G, v, @5 _  a. p
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。( U3 S6 q  X( n* `/ P' p
plant simulation中的free libraries有AGV模板,
& h* u: Y: K4 i0 z1 O  O3 u& J) Q) E9 P里面也有案例。: q0 s, h. d4 j. Y& R  t! v, W
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
, \; c! O$ w0 c' U+ y( @( C. w( a! u! H7 |$ j
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
2 x% k* j% Y3 \1 l4 @/ I5 o# T. Q2 _6 u2 N4 e( [
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 9 x8 x& m- W( y" q$ H: l3 G# ?. p8 F
这是AGV_putin中arrive的method。
+ ?& Z0 a' D. S, c' F( L
" Q  r" i$ A: I4 Q% m- l当到达物料速度越高时,这个报警更多,

: x- `! B0 u* e: k2 j- I另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-21 19:09 , Processed in 0.016925 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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