设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10286|回复: 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'3 ^5 ~0 |1 M# E9 |
*/
! r. N  _/ _& {7 U4 b1 C0 k# Ais
1 ^' I5 a* S( E; q! \% L        part, GlobalDistObj, assignLObj:object;row,Lan:integer;3 d, \2 O7 A, g8 i
do
5 E( r* p2 B9 r2 G! y        Lan := rootfolder.Internal.Tools.AOLlanguage;
/ U/ l3 L( q8 `6 ?        if current = @.Destination -- else return1 R9 l3 l* b  P9 G9 f4 H
        then3 ^0 }# Y3 B& G! a! d3 _
                @.Destination := void;
9 l0 r/ H$ A, ?' n                if @.occupied then# j8 J) \) W" X+ e5 p" |$ F9 b: x
                        part := @.cont;0 f0 T! Q6 m3 g& f6 |$ O+ k: q, a
                        @.transpOrder := void;) Q* I2 f! ?2 D; j3 Y8 h
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
6 R4 a" I; g, |3 ?. H' ~0 Q8 o1 J                                @,root.eventcontroller.simTime);
: n  d8 g) d7 X, }& I                        @.HasOrder := false;
5 U6 R/ ~. ^. Y9 e6 r9 ~, c3 D                        @.DrivingHome := true;; V; @9 l# `0 F0 h
                        rgManager.tryToStartTransOrder;3 b+ y% d  G( y4 n3 y4 [5 d
                        if @.Destination = void. P. j( y1 S! p' N# c
                        then -- no transport order for vehicle @
% i2 y, b+ S) A+ i" G( m                                @.Destination :=
' T7 w5 }' l$ r+ a                                rgManager.nearestFreeStation(@,track.~);8 e: z  N9 ?# r  i* s  b" M" T
                                newDirection(@);   3 s' e/ B' S- i$ J0 z1 `. ]& W
                                if @.Destination /= void then
) D& v8 y: M, ^! d, n                                        @.Destination.NumReservation :=
2 K& u& A. O- n4 _3 p# `! m, {                                        @.Destination.NumReservation + 1;
& N# @0 Z7 ]" V0 R" F* t                                end;% F; n9 b9 Q" i- J  @- W
                                @.CurrIcon := "drivingHome";* {2 z5 W5 |9 Y4 ~* A, J$ H
                                @.DrivingHome := true;6 R+ l. ^- }! l- o2 j8 a& ]
                        end;
9 a. \  G2 y/ c& V9 r( `: l1 B# ]7 [                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
9 N( ~! \3 j1 q0 L3 e/ ^                        part := @.transpOrder;
! ]* @8 c& P% u! r; r" ?* X; |' }2 i                        part.move(@);-- load part# n7 c# q+ \  n1 R
                        @.CurrIcon := "load";
/ T# i0 q$ e& \0 X                        GlobalDistObj := part.globDestination;
2 r! @% z0 u0 \1 o  ^0 w' H, \6 d/ d                        assignLObj := rgmanager.rgAssignL;' v! H4 P" i; `5 X& Y
                        row := assignLObj.getRowNo(GlobalDistObj);9 |. e/ _+ E& m: S, P4 `9 U. @
                        if Row = -1 then -- since 70
% Q- R$ L4 X4 b  }: `                                if lan=1 then0 j; X: J7 o9 @6 V/ T2 x5 m9 @8 W+ d$ \
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),  {5 f: q% C! P" d$ _4 \
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
# \  B% S( T% w( R                                else
4 ]+ I* F! G* Z' J3 r                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
) M! c1 W) @: J! m7 W. Z1 a: L                                                to_str("in docking station: \"",?.~.name,"\""));                               
% P4 U2 ?  ?  t- ^                                end;+ k' v: P8 m9 s9 Y7 k' i" F
                        else
) ]- i6 X: X+ D' f- D                                @.Destination := assignLObj[1,row];. q' u4 X8 z8 m6 V9 g, i
                        end;                        $ {( M7 }( o' i# @1 Y8 r* D2 y
                        newDirection(@);
" `" C1 B4 L6 p4 U: L8 v- c% }                        @.HasOrder := true;. x0 J  M% @, c" }5 Q& C, w5 X! u* O. X
                end;
+ u* v5 j6 z3 r: Q        end;* d3 E# X* B; T% r
end;        -- of the method/ c; V0 E" h% q* r
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 & G' J% d8 T* X! g. E# D* i

8 s+ G# E% b# F2 w) J% h这是AGV_putin中arrive的method。; d! W9 C6 e3 T& X
) z$ v% [% l' m/ E
当到达物料速度越高时,这个报警更多,
1 `, Z  \* \  w5 K, F可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
$ U& Z& I4 c7 G9 `& F# \& p- b# e程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?3 J% k' j# i  f# M7 @
8 y0 B) c. z& M
另外一个小建议,就是move,所有的move都可以这样4 n% f; c# @. t7 D% e7 @; ~! D) j
if not move() then debug end8 ]' f9 i+ C0 W5 x( R
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。. o0 M9 @1 f8 U% ~9 A8 E
plant simulation中的free libraries有AGV模板,* ^% q: _1 t: l" M4 M0 N
里面也有案例。! g) A- O3 l1 ~0 Y* v
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
3 u2 I( Q- q0 J' p+ E! S$ a2 T0 I- l% u% p
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
  Y4 Y( V4 w  r# j% ^5 j6 Q- S+ r/ q* a0 A1 f$ p
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
+ m* r8 S& o+ F, X0 N" k# q这是AGV_putin中arrive的method。% c+ H' n7 D; q1 v( \' x8 d  u; ^0 `
+ G( r0 S9 D* K6 _
当到达物料速度越高时,这个报警更多,
0 v; L3 u% a' R% B" G
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-24 13:31 , Processed in 0.022189 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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