设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9266|回复: 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'8 p; m% t8 v  F: z6 E& [
*/% s$ x' [& F/ b+ H( x* j: w2 `4 x6 j
is% |8 s+ w4 n1 i/ |
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
" u  U2 ?5 G6 ?1 U1 q5 Z% ddo0 V3 |5 K9 U2 V: H
        Lan := rootfolder.Internal.Tools.AOLlanguage;" ~' W1 i7 |! W9 p6 g
        if current = @.Destination -- else return! @- ~3 y6 _% }5 v& Q* P% s' ^
        then
5 |: J4 G# @8 p: C$ O8 f                @.Destination := void;! _- c! Q1 p- b
                if @.occupied then- ^' \. j) N( b6 I! ]
                        part := @.cont;
" A& M- L7 q  R8 y/ ]! ?                        @.transpOrder := void;
) q3 ]. U* F$ I' [6 x! Y                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
( C; N- u# b5 t( [- V' G& g                                @,root.eventcontroller.simTime);
3 p! ~0 e4 K' m# w                        @.HasOrder := false;) R4 ?5 t+ L5 ^; d
                        @.DrivingHome := true;3 ~' y$ t5 [# x7 |+ Z4 k
                        rgManager.tryToStartTransOrder;' P8 Q- M# G* j0 s. x9 \- `
                        if @.Destination = void
# [2 Z% Q* K$ B% V3 ?+ @, n( u                        then -- no transport order for vehicle @, D3 A( ~1 s( p+ b
                                @.Destination :=; I( a9 I& Y; g
                                rgManager.nearestFreeStation(@,track.~);
, s* `5 g; \0 \$ }" s                                newDirection(@);   
  X, _! G& z5 b; a& \0 S! m+ F                                if @.Destination /= void then
+ ~) n, f% w  T; K! p                                        @.Destination.NumReservation :=1 b4 P* }7 V2 ]& S: M
                                        @.Destination.NumReservation + 1;; I) [- \+ B, n- B' k6 |, S
                                end;
- J1 g: A, S2 O' T, s, r" }3 r2 ]6 L                                @.CurrIcon := "drivingHome";; d$ v$ ?1 W  P: }2 H6 Y
                                @.DrivingHome := true;
) |0 Z9 Y; Z$ A7 `                        end;$ k! M7 h) z6 d  m* H
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
/ ?* A# \0 f5 _4 `4 R                        part := @.transpOrder;
$ i( }% j" ?- ?# U& N: t% v/ i& N                        part.move(@);-- load part5 J) x8 V5 L0 F8 `* M: \6 N
                        @.CurrIcon := "load";
4 B: w# \6 P# y3 E+ ~1 h  X1 f  x: g                        GlobalDistObj := part.globDestination;
( _. G- ]& a* |! s) s                        assignLObj := rgmanager.rgAssignL;
/ }7 u7 R% {; x8 T( ^7 c' K" }; a0 T                        row := assignLObj.getRowNo(GlobalDistObj);
1 J8 }$ m) a) A. J3 Q( P                        if Row = -1 then -- since 708 @! Y+ x' I3 E+ h7 d* |/ p" u
                                if lan=1 then
; O4 _! U9 o  K# O                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),( e- [7 H/ H6 s9 s
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
8 _$ p0 S. Q1 i7 O* |* L7 J  |                                else
, Z( R# P: d5 r) ]                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),7 E' K- O* B0 N  }( I
                                                to_str("in docking station: \"",?.~.name,"\""));                               
! d; D) q9 o1 N& n& c1 Q3 h& ?                                end;
6 Q1 g; i- r, ~                        else- R' j0 {  @( J, |
                                @.Destination := assignLObj[1,row];3 L+ t+ H) L; V- C4 N1 Y! \
                        end;                        ) \& R: Q7 F% g+ p$ f1 c( M/ A
                        newDirection(@);
) t) k: G! W6 G. l                        @.HasOrder := true;$ a0 r7 I1 x8 ]  N: }
                end;
* s% b' q1 \$ H( O% Y+ ~# p* a        end;- N, c4 \. N6 o0 C$ T
end;        -- of the method
  E. _0 S( t$ ^2 |
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
. s; n: x7 P& F2 \  K! I8 g3 |# k+ [) }6 ^; E5 M
这是AGV_putin中arrive的method。) |! J, x6 [# N, E- J
6 w: {* ^  @: Q" g
当到达物料速度越高时,这个报警更多,
+ R8 n, p# S1 k+ U, S& P: P. k" k: O可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。' ~8 z9 J* b. t- J& D9 {7 V
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?$ r* w! Q2 ?  Q; @
- e+ X( W3 \1 s' r# G* J3 ]
另外一个小建议,就是move,所有的move都可以这样3 R, i( ]  F7 ]: A& V# [
if not move() then debug end
& Y4 B9 w2 R% ^/ t2 G, X3 F这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。% G2 R* y6 H+ T' f0 }
plant simulation中的free libraries有AGV模板,
+ C% V4 P4 r4 N" P里面也有案例。/ F2 T! J8 ^5 Q2 i. }  p8 N
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。" Y! I# Z) l' A9 |8 l: H1 k9 s' s

4 x* Z+ y8 U/ O) F5 y; o我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 9 n2 z5 V+ U6 w# \

6 c% R! S( M' q$ U9 ]3 y# t那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
; R. H0 k! v$ y0 A( U! U  _这是AGV_putin中arrive的method。4 ]  z- r1 q$ w( e

) A/ z8 k: I" C; g+ F& K当到达物料速度越高时,这个报警更多,
1 `. r; T# Q4 U% s
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-21 23:45 , Processed in 0.015793 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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