设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8741|回复: 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': D& T, N- @( L
*/
7 r6 R# u. p1 b6 L$ o7 T& yis3 M6 z/ Y0 h& i9 Y- ^
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;" Y! m7 E$ f) h
do
+ S9 `/ F( W! H3 u7 Z* j: ~, F7 j        Lan := rootfolder.Internal.Tools.AOLlanguage;
' x% y! ~3 f5 j5 F) @' b' f' V        if current = @.Destination -- else return
$ ^/ Q9 v) \* ?; M0 |" i, u# W        then0 v3 P. t5 E: O* o
                @.Destination := void;$ C: S0 g' @# H4 R8 G
                if @.occupied then2 @" C+ M. M4 I( B5 j7 {  b
                        part := @.cont;, q7 y# Q( r: T1 e( }
                        @.transpOrder := void;8 n7 w( O" X$ T  j
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,0 B/ m3 t2 \  N8 y& k6 M/ z
                                @,root.eventcontroller.simTime);: ]( m% r# f' n7 m5 _+ U* M# [
                        @.HasOrder := false;0 R$ X  |9 w* |+ L
                        @.DrivingHome := true;, j% V& E$ p: u9 U1 p1 @8 x
                        rgManager.tryToStartTransOrder;- O5 t. W$ A/ F: v$ x+ a$ N
                        if @.Destination = void
- B2 l% n& g6 w                        then -- no transport order for vehicle @' n! n. z; v" S* L+ V# M$ b5 y" j* `
                                @.Destination :=
& D' P2 m2 M" h3 ~( I  \: |. V                                rgManager.nearestFreeStation(@,track.~);. i9 v: }3 h+ a: ^: L1 q$ {, M+ W
                                newDirection(@);   
# s/ _9 z( ]7 e. _) R# w- Z$ d0 E                                if @.Destination /= void then2 \  T& ?8 ?5 ]2 o, H
                                        @.Destination.NumReservation :=
5 x" S% ^- c8 X' X0 S0 F: H                                        @.Destination.NumReservation + 1;8 J# u' ?2 F: ~; h
                                end;
8 E9 B! R1 r  y/ t; m! }                                @.CurrIcon := "drivingHome";9 ]4 B& r" A$ C- K# \9 b
                                @.DrivingHome := true;4 n& M9 d, O7 T1 g/ A
                        end;
" c% H4 `9 S' D& D* }% J                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
- f1 ~) B: f% K, j4 a                        part := @.transpOrder;
9 w/ o+ I4 |7 V& u9 k) p$ p                        part.move(@);-- load part
) R! k' u! K# F6 z, t% |                        @.CurrIcon := "load";
0 t& H6 @' l0 j7 |                        GlobalDistObj := part.globDestination;
4 b# F7 w" G; R& R% y5 X3 t( y                        assignLObj := rgmanager.rgAssignL;5 e5 u0 \6 t  a0 T4 K
                        row := assignLObj.getRowNo(GlobalDistObj);2 ^% e4 D: o, m5 W2 z0 A6 a6 e
                        if Row = -1 then -- since 70
4 T7 \3 i! w. V4 ^! `                                if lan=1 then( }% O! o4 I: l2 f! I- J8 n- p- Z
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),8 Y  L$ D  f' ]
                                                to_str("in der Andockstation: \"",?.~.name,"\""));$ d! {1 T  y# i  S$ [
                                else
/ [" d$ J, G% C7 ?/ I* ]                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),6 D# I7 m8 l1 |' U2 ^' [8 E
                                                to_str("in docking station: \"",?.~.name,"\""));                               
  ~* p2 y- l' X: q  Z3 m                                end;
! R8 p/ s7 d; P9 n& W! U! Y                        else' n( B9 B  T4 N
                                @.Destination := assignLObj[1,row];
! n+ C# _. A/ _5 \5 i3 @                        end;                       
  |- v0 ~7 Y9 i7 R0 L" d% h, B                        newDirection(@);
! e9 G" J/ k: d* V/ @, ?* e                        @.HasOrder := true;/ Y" c) n" ~  t* j1 P
                end;
4 I/ s  K% B! t9 r1 v        end;
8 t3 |! \$ v' y& G% T: ?8 J; |end;        -- of the method( R1 l( x4 J9 z: W; u' D* N
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 : u! o; N7 e+ ~+ N4 C  D6 r
# L) l6 i( l! |$ x* P+ G' j6 m
这是AGV_putin中arrive的method。( T! [2 A* o  f6 c
/ s* K+ k& y) @! t1 u& n
当到达物料速度越高时,这个报警更多,/ V7 l. e, ?- S2 P
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
) Q; w: z  w+ _0 U' n$ i% S程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?8 x6 f" [$ \, {9 Y4 b' q* c# s9 F; R

( n; H0 n& R4 R7 b" Y& C+ }, k) k# w另外一个小建议,就是move,所有的move都可以这样& N8 Q  E# s6 B# X' l
if not move() then debug end
5 t  t2 u! B  q  r+ V这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
0 ~1 c5 L6 D" I2 n& W4 E4 \$ ~plant simulation中的free libraries有AGV模板,
. B6 w9 \3 I  r里面也有案例。) `9 _" ^, \2 G9 X' ?7 q
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
& |, u5 w. T) ^1 z
- A$ @- q/ |1 M0 j6 C" A$ {5 b我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
) x, a5 _# L3 [7 G1 y% O; b
7 }- g( `1 p5 I( |. v那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 % s7 l) n4 s2 U" R6 ]
这是AGV_putin中arrive的method。
5 a* |- Y  {" O5 o& H& \& A7 T% h/ q# \+ f+ E
当到达物料速度越高时,这个报警更多,
) z- ?# u$ g8 v4 a6 p, h" W0 N
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-23 20:41 , Processed in 0.015449 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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