设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7741|回复: 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'# G% y7 c- F* C, A
*/
8 R: K9 w. ~1 l/ X+ W' g0 pis
8 g. ~  O& f: u, E! U/ \* Q  f' x        part, GlobalDistObj, assignLObj:object;row,Lan:integer;- g. {/ g, P9 [* [- o
do: Z6 u# k/ ^2 K/ z
        Lan := rootfolder.Internal.Tools.AOLlanguage;
4 E$ W& k" O. x8 x1 U        if current = @.Destination -- else return: E; _- K  t' h2 _, x
        then1 _  E9 d6 w! j; |. y
                @.Destination := void;
+ T$ Q1 h* x7 X- Q  T                if @.occupied then
! v; Q5 c( g0 H( z                        part := @.cont;- a# Y+ p. t8 ~. e$ b5 C( U; P
                        @.transpOrder := void;
* F1 t+ d2 ^& T% i7 _3 I! J# C  U                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,5 j+ ?$ U- G$ l) P) z
                                @,root.eventcontroller.simTime);8 i8 }7 w' L  @' q' m2 L
                        @.HasOrder := false;3 f+ p9 ]- C, W
                        @.DrivingHome := true;
5 P' C. M' \+ {* ]1 o  Y' @                        rgManager.tryToStartTransOrder;' O( u, s3 b/ P( b; @2 V
                        if @.Destination = void2 J- P9 n' I" i/ ?1 a6 N
                        then -- no transport order for vehicle @9 G+ h" c9 I% }) x
                                @.Destination :=
' K* Y3 ~" [3 l4 K2 t/ m8 M9 m                                rgManager.nearestFreeStation(@,track.~);" Q2 D" ^4 y% v1 L! M; p* ~
                                newDirection(@);   
3 ~! R/ Y) f9 {3 g, Y+ I% y  o* J                                if @.Destination /= void then  M9 c) G( E7 J' ?
                                        @.Destination.NumReservation :=
6 E* n* {1 u2 Z# W% e; {                                        @.Destination.NumReservation + 1;
! h9 L& C* R! z2 W) z4 q3 a                                end;
. s; A6 ^0 H9 S( }% b+ S                                @.CurrIcon := "drivingHome";
$ s9 ~8 ?2 l7 C6 i8 {                                @.DrivingHome := true;3 L$ t9 `. Z$ c& }& y: l
                        end;
# D+ x$ X$ _8 \                else -- the vehicle @ is empty, both vehicle and part are in the same dock station: A) _+ O2 e$ U
                        part := @.transpOrder;1 S" q* O2 N1 `
                        part.move(@);-- load part0 m/ f( H% {$ c; k
                        @.CurrIcon := "load";
  h# q) I' R, ~                        GlobalDistObj := part.globDestination;* R" ]! y' e; k4 q5 V
                        assignLObj := rgmanager.rgAssignL;" \( s$ W) F% i  j, K
                        row := assignLObj.getRowNo(GlobalDistObj);
4 h$ y% b- _1 v7 h2 D# R                        if Row = -1 then -- since 70
$ d* M. w9 `. d( z4 @                                if lan=1 then  I) W" [) _2 O- ]) [9 K* ^: s
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),. F% S& R$ y4 s9 `( w
                                                to_str("in der Andockstation: \"",?.~.name,"\""));) J2 ]+ C6 T% i
                                else) X! a/ N5 f' c
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),  v% O  ]4 R4 w8 D# R% f% Z% w
                                                to_str("in docking station: \"",?.~.name,"\""));                               
' r# H7 `# K! z* ]0 K$ V: [$ {& ~. x                                end;
5 j* S0 Z  B3 c% [  |4 j% G9 d                        else( F  a3 c3 K1 h- @9 v
                                @.Destination := assignLObj[1,row];
. p3 T+ R  U9 m( J6 s                        end;                        5 x! I" J6 u3 C- F; _& |# s% Y
                        newDirection(@);. h1 a/ t" @! R$ {9 A& h2 D! _- Z
                        @.HasOrder := true;) ^+ ~9 T; C. J0 N
                end;
& h$ O$ a# P0 m5 E        end;
  S' D$ t4 M! H, Wend;        -- of the method' ?( I, B4 q: m2 h+ {
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
: g' y* W  T( Z0 \1 d. F% C+ t2 a3 A2 h
这是AGV_putin中arrive的method。
$ e0 H# g: L# h" y
7 ~  X" j: W: J4 ~0 ?: F2 c: @当到达物料速度越高时,这个报警更多,: e7 V8 r$ O7 i) V/ \
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
5 E2 J+ I1 W  q9 Z$ ~6 l/ G程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
1 m; K0 c: _6 h$ m% o- k5 M* A5 r" M' e' B
另外一个小建议,就是move,所有的move都可以这样* {  \' P9 Q' p  ]8 C: x
if not move() then debug end
* X, s* g: i7 n2 s  c0 N这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。; p$ A, ?, ~& z+ g
plant simulation中的free libraries有AGV模板,
6 o# _/ {6 ^2 a' S7 G, k里面也有案例。' {& N: s5 \/ Z
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
; f' W. g3 N& e4 \! M* o2 d  S; C/ c* V6 c- R
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 $ o- v2 R% G9 [& x

+ f2 I& o/ j- x  o, L5 q( u那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
% z. h' u0 V  t  @! R/ V这是AGV_putin中arrive的method。
8 C7 x% ~" k5 o4 r1 `* g7 f
$ y7 ^- O+ @& x6 x$ m当到达物料速度越高时,这个报警更多,
5 q1 V$ G+ s; \2 v
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-27 02:10 , Processed in 0.022635 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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