设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8324|回复: 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'. A7 q/ ~( g/ M- J# u9 h
*/) _" v# }% [1 N% u
is
" q7 m* ~9 m+ v% h, J1 c  p        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
) E3 `7 T8 V: J* B+ D# Tdo
! I1 r9 P# o; H+ i6 ^8 V        Lan := rootfolder.Internal.Tools.AOLlanguage;
0 t8 w9 i. M4 k# l' C8 m. T2 v        if current = @.Destination -- else return
) M- ^( l, Q- s: C" O2 ~' \  V3 S        then, }' V1 j4 z$ Y9 p) @* ]$ B) ]0 V
                @.Destination := void;% ]0 l2 x/ E" G* S6 a
                if @.occupied then) T! Z+ P" [; M& {) G- K7 @) T
                        part := @.cont;5 k* j' q& I+ f7 A5 C8 ?- a9 i" o
                        @.transpOrder := void;4 E$ b& y8 y$ g+ u8 \
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
6 [( P7 W% c( X: q7 z                                @,root.eventcontroller.simTime);& j( ^. ~" W6 t  @' W4 U# a
                        @.HasOrder := false;
# d) p  U* F8 p) w" J, f" |                        @.DrivingHome := true;
8 ~( t+ B8 C, P( y, o" ?                        rgManager.tryToStartTransOrder;
6 q7 K5 s. I1 \' Q                        if @.Destination = void
. i' `* s& D2 Y& g1 ?5 m: h- Q8 ~                        then -- no transport order for vehicle @
! \! L# |% o6 @) c' F% V                                @.Destination :=' U6 M% W* O  x4 v! h' r4 U: T
                                rgManager.nearestFreeStation(@,track.~);
1 }- R7 \; \5 E* Y2 k, @                                newDirection(@);   
5 g) V4 A. T1 m8 a                                if @.Destination /= void then: E% O( P( V4 @2 o7 H- ~: J# x
                                        @.Destination.NumReservation :=
2 Z0 C  M4 b' _. t7 S5 Y                                        @.Destination.NumReservation + 1;) x1 }6 i' ^5 |
                                end;
/ S$ o% C, o- a                                @.CurrIcon := "drivingHome";
: U! D  z  T4 X$ H' w. J                                @.DrivingHome := true;7 e6 r6 L. o, z$ c
                        end;* E/ v" s7 {# d2 _
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
2 @. U! v8 O4 N  W                        part := @.transpOrder;
8 `* Z! H+ c$ U9 D1 V! M                        part.move(@);-- load part& M8 a7 K: P( O) w: d; C
                        @.CurrIcon := "load";7 K$ t3 v# j7 p8 y
                        GlobalDistObj := part.globDestination;
+ E3 w5 M6 a; J/ g3 L                        assignLObj := rgmanager.rgAssignL;
, a. e+ X$ W+ ^* Z                        row := assignLObj.getRowNo(GlobalDistObj);5 a( G5 U6 h  P. U8 H) B
                        if Row = -1 then -- since 705 \9 S1 k/ g2 k) T
                                if lan=1 then. P# x+ |* [* r+ e- j: a
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),! c# y4 ~* {& F7 f
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
( ]& c5 |/ [. o( J0 T% Z; m+ a6 T                                else! x  j) Y/ w! P/ J; ]; U3 J6 ?6 O* k
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
" q5 L8 ~9 z( s$ s                                                to_str("in docking station: \"",?.~.name,"\""));                                2 K" L! L# w( L1 f: R
                                end;0 v2 I1 E6 N  T3 r: G* t
                        else
7 O) P& }+ s' {9 L1 F                                @.Destination := assignLObj[1,row];2 m/ W" l1 n" W+ Y( G, q7 u
                        end;                       
2 J6 D$ h  p2 _) p0 o, F                        newDirection(@);/ b0 g, s# F9 [/ I$ G. w$ U* Y+ v
                        @.HasOrder := true;
! Z1 D) f' _1 j" L- |/ Q                end;8 z3 J4 i4 p2 F' V9 J
        end;
; k5 ^- O. t% G7 D1 jend;        -- of the method
" J& c  ]7 b+ V5 r% K; ]# x5 q
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 4 t8 W$ o5 P/ r3 ^& u  r

, J/ V3 o# s1 K/ c) e( l& ]这是AGV_putin中arrive的method。
* L( [  D$ ~7 O, }0 p3 @+ u, z. n. i2 \" n
当到达物料速度越高时,这个报警更多,5 U: L7 @0 M* g' M- R7 A2 z) W
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
, U, v* E5 v9 i+ B程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?0 T+ U7 V0 K9 x7 P* P: }& g

& Y" W2 b1 M$ s% r( A另外一个小建议,就是move,所有的move都可以这样- A4 q( i' K4 t6 l! [2 I
if not move() then debug end
! }  R! R7 m% V$ x$ A9 `/ K7 k4 ~: V这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。# ]/ X: H8 G5 B
plant simulation中的free libraries有AGV模板,) a3 h8 V. r4 {1 B* u' I; C( ^
里面也有案例。
1 F5 q/ ^* f2 O% M2 [我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。$ Y/ }" J* E" v: \$ Y
; ?9 T, G% x  V+ r) h
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 : j6 s" z0 L5 y

- s  |+ U3 I& M6 S8 ~那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 4 R  X! l8 s. s9 t; s
这是AGV_putin中arrive的method。
3 Q7 v8 D+ l! Y/ q3 _) s$ y1 H( w5 y( l1 f& U
当到达物料速度越高时,这个报警更多,
: s" _/ q" T# @4 H7 k+ T4 h' u+ D
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-27 21:28 , Processed in 0.020091 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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