设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8725|回复: 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'
' m; L/ ]: Y$ z*/
! B' s" Z7 ]; o2 |is
. G5 ?- {; B1 m! \  b  B        part, GlobalDistObj, assignLObj:object;row,Lan:integer;2 h* F: x1 p7 h# J. W1 }
do
. S5 s5 k. F) V: A& J  V! v        Lan := rootfolder.Internal.Tools.AOLlanguage;( U4 C9 J, f- V9 p* e
        if current = @.Destination -- else return
! c" H" A' F! J# [8 q5 Y        then6 d$ u4 E( t/ q& ]- U7 V  G$ t
                @.Destination := void;& Z8 x6 a& N2 S* @# B
                if @.occupied then& Z0 u" N4 @. S! L- a
                        part := @.cont;
3 T" h+ j# T% j$ X                        @.transpOrder := void;, U6 N" a4 q3 H# @+ R
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,% v- j4 u7 N  a
                                @,root.eventcontroller.simTime);
  h  x" m$ j7 {1 [( Q/ H                        @.HasOrder := false;/ o7 |) u  W5 I8 I& L
                        @.DrivingHome := true;" Q) W8 @1 G' Y  {; w& J* M
                        rgManager.tryToStartTransOrder;
# ~+ m" S# c, d% ?( \                        if @.Destination = void
- o& C: f, o4 V                        then -- no transport order for vehicle @
# o+ W1 J' X5 C, {; R! Z  f( @                                @.Destination :=
' `' s9 S* X# I6 l+ s                                rgManager.nearestFreeStation(@,track.~);- x  S+ ~" B1 Y
                                newDirection(@);   
* i. y: A: j- q" i! h9 }! N                                if @.Destination /= void then
# |0 v% g3 U% |4 w, h                                        @.Destination.NumReservation :=- v8 h# x2 i+ a# u& v4 }
                                        @.Destination.NumReservation + 1;
% e1 Z1 N. ^8 R" z+ m  `, t                                end;
1 c% ^' _% f/ _* i$ V1 J                                @.CurrIcon := "drivingHome";9 s, ?6 I1 r. t& D/ s
                                @.DrivingHome := true;: i; m& z) ?% u0 x0 p  K4 f* @; c
                        end;
/ c. ]# S. k( W- E; o                else -- the vehicle @ is empty, both vehicle and part are in the same dock station; d0 p0 n+ Q( Y2 B* O7 ^5 o
                        part := @.transpOrder;
  M6 e0 w$ w2 }9 X7 \                        part.move(@);-- load part6 p8 M9 b8 ]4 A3 r
                        @.CurrIcon := "load";4 i& h6 P; I- n1 ^3 [' Z
                        GlobalDistObj := part.globDestination;, l6 }3 T: f. v) ?: s  T
                        assignLObj := rgmanager.rgAssignL;
6 Q1 z2 Y  ?+ s                        row := assignLObj.getRowNo(GlobalDistObj);' _" Y" s; U9 v! ^
                        if Row = -1 then -- since 70# b1 f; {: U! {) U$ |# w* V" o
                                if lan=1 then/ B6 e9 p, m3 B" y' ]. L
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),5 i, D  Z5 K3 I1 f' ]) Z
                                                to_str("in der Andockstation: \"",?.~.name,"\""));" n/ U" i0 m% I3 G. ~
                                else
, o1 q; K7 z; z. V                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
' S4 ~/ s2 C+ [2 W( L                                                to_str("in docking station: \"",?.~.name,"\""));                                * {. z! Q+ t: |2 F+ A
                                end;/ ^8 w* o/ B0 ]# y, `4 O8 ?0 m
                        else8 p8 P5 N& H* F/ e  \+ S+ m
                                @.Destination := assignLObj[1,row];; E  `3 Q) D; {' i' S5 Q; L
                        end;                        & D$ d9 e; n% p+ L
                        newDirection(@);9 Z( I+ |6 {0 Q( n4 }% N" a$ J& k
                        @.HasOrder := true;
, [) o% Y* d! C" B! Q                end;8 @# B: ]' t( p
        end;
" H. \2 j4 w3 ~- X  a1 `3 Q6 }end;        -- of the method6 r# J2 M4 v% _' `  n- U
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
" r$ P# e- \% o
) k) G0 ~  B: B% U. r) y这是AGV_putin中arrive的method。
8 S) r" w) m, z: Q* J1 j5 s
% G( A1 i$ ?, v, U当到达物料速度越高时,这个报警更多,
: c8 v# l: T9 ~( x- @# K* v可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
, r* V8 A2 {% |1 O; e4 z5 d! l; E程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
: @1 x+ G/ P) A9 d# Y
3 F8 }( i% |, A$ S另外一个小建议,就是move,所有的move都可以这样
/ i* ^+ ?: a- @if not move() then debug end- L5 g+ R1 |! S& L; Q, U" @6 v4 y
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
+ r' }+ {( N! Z2 l  o. ~8 eplant simulation中的free libraries有AGV模板,
" }3 w8 \; S) Q9 N! e, _" @里面也有案例。
" r, R# |- ~3 ~/ @( d# U- G我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。% g. g8 `2 p! v2 t( Y5 T

' ~3 i) c, I0 n0 u2 j我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
. S  K4 x% i7 D, x1 L  c) e5 R5 c3 S' {
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 6 Y5 a5 |# p' ~( t  ]! Y
这是AGV_putin中arrive的method。5 t0 d7 D' K0 f2 U9 i/ r

- n9 Z5 T+ H6 X; Y0 B: Q! {当到达物料速度越高时,这个报警更多,

0 e6 b$ s7 f7 b0 J3 N另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-22 14:56 , Processed in 0.015211 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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