设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9577|回复: 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'
; V) v* Z+ I" a1 K2 c! J+ T*/! W6 ?& o; @+ i* k- T  _: L  w3 H4 j
is
0 y0 \- R* s" _" X& Q1 T        part, GlobalDistObj, assignLObj:object;row,Lan:integer;/ q6 |' V) d, v. z
do
( }6 ~) e) ?: u2 u7 ]& w# w; U3 x        Lan := rootfolder.Internal.Tools.AOLlanguage;& Z2 ~; }( v) x$ ~9 n# A" d6 w
        if current = @.Destination -- else return0 A0 o8 Q& C) T6 [- O1 k( Y/ O
        then
  @! i" w2 M9 C: y                @.Destination := void;
, S  h5 n. A5 X5 F- L/ }                if @.occupied then3 N$ K% P! @. F% Z6 F3 V/ e* A
                        part := @.cont;$ ?6 @# Z# X5 o( h3 w$ b
                        @.transpOrder := void;- P8 L' Z2 ]7 [/ h& C
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1," x8 J9 U7 w/ G% [( N
                                @,root.eventcontroller.simTime);4 I! l$ u2 F6 p/ M( i6 c
                        @.HasOrder := false;
6 I$ e) R" l( p" j                        @.DrivingHome := true;
0 F3 ]  q  \4 ], Y% B( w, ^2 ~                        rgManager.tryToStartTransOrder;1 m/ X2 S6 N& C
                        if @.Destination = void
* g  s6 T$ v  @; t" D                        then -- no transport order for vehicle @% G% D  I8 W1 {1 {
                                @.Destination :=
6 f# C9 }/ g- ]; |                                rgManager.nearestFreeStation(@,track.~);# [- E% K$ d: d( U  K7 i! l- r
                                newDirection(@);   
! Z3 r8 O1 w5 H$ X9 g$ ]                                if @.Destination /= void then* V4 d( A8 Z+ s) w' J4 R
                                        @.Destination.NumReservation :=
! _- i. P8 c1 y                                        @.Destination.NumReservation + 1;
( }  M: k: C/ q% l; D                                end;$ ~" W/ C7 Y% b/ \  ?
                                @.CurrIcon := "drivingHome";
3 R5 Z8 ^4 r: X: g5 P3 C: |8 O0 O                                @.DrivingHome := true;! i& M2 t0 e, m$ @$ }
                        end;
6 L) |# Z) Y. F* ]" D+ i5 Y                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
1 \7 Q8 }* F. J                        part := @.transpOrder;
  `9 j1 {) V/ S" g$ Y: @                        part.move(@);-- load part' I& _0 ?, l  Q  |) d/ k$ E4 o
                        @.CurrIcon := "load";- ^# p* ~( k$ m7 l
                        GlobalDistObj := part.globDestination;4 s' \3 V$ B0 h, o
                        assignLObj := rgmanager.rgAssignL;
# \* A/ _7 u7 X( k. {                        row := assignLObj.getRowNo(GlobalDistObj);
" n% C; o( x2 n  x' |, a  ^                        if Row = -1 then -- since 70
2 X; R. `3 A* g                                if lan=1 then
1 c5 S2 X8 A) N" f) m                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),( B$ U. ^  n4 Z. m% a0 l0 k) j
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
- ^) Y3 {5 B/ b                                else/ l) l$ ^$ D& ?% ]
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
/ z* e5 Z( m5 ^                                                to_str("in docking station: \"",?.~.name,"\""));                               
/ l5 \, M# l/ E  _. |                                end;
/ p  S3 m2 ?7 |9 O" n                        else
* i2 a2 Q: W6 z( A3 {7 L                                @.Destination := assignLObj[1,row];; T/ ?5 P8 i* h' s8 K+ }  u% n
                        end;                        ; X" k( k+ m7 p2 \' ]
                        newDirection(@);# N3 ?" f$ @1 d6 v
                        @.HasOrder := true;4 D. g3 o- p8 v1 R' L
                end;) P& ]3 d; A6 L5 k
        end;6 C' F# Z7 D% B8 t! g- n* O
end;        -- of the method
3 v/ e2 e6 K, [4 {; u+ u
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
6 S. b9 ~9 r% k3 ~# U: G( o2 @( c7 t  \3 G( d
这是AGV_putin中arrive的method。
* n( l- \4 g7 L6 D* H$ j6 M3 d( u  {4 v1 \! L7 Y. S4 J
当到达物料速度越高时,这个报警更多,0 \/ F9 c2 Q& s' y$ N
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。% S! x! e, [% \' A* n
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?, p  F  e7 T- a, T# }7 |0 w
0 F0 w3 \( O7 I# @
另外一个小建议,就是move,所有的move都可以这样
7 K& V' h& q1 D* K# G2 Jif not move() then debug end5 x( x  @3 Q. d( [
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。9 G: n  k( l( R3 {- o1 ^4 H
plant simulation中的free libraries有AGV模板,/ V- O$ {2 ?- h! z
里面也有案例。8 B5 y$ v3 q* v2 d' @
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
4 X2 i8 X8 ^$ m: F$ E6 [' C# `1 T! e. U5 o9 U- q+ o
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
  b; J. v5 N$ {$ G3 H: I2 b5 V( D/ o0 @; `& l0 Y+ [) [
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 0 @4 Y, H" ]3 }3 J* E5 I
这是AGV_putin中arrive的method。3 I% j2 A0 K9 i/ `6 v1 |) [' B
- g4 B( Q/ m3 c' g5 Y9 S
当到达物料速度越高时,这个报警更多,

" q% j0 X- _3 P1 D. N另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-9 08:46 , Processed in 0.017476 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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