设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5677|回复: 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'& C9 P1 K' V' d/ O5 f
*/
+ T& s% w9 {$ p/ C) ]2 R& T; W" ~is
- [0 b# V6 ^+ G        part, GlobalDistObj, assignLObj:object;row,Lan:integer;0 j: t& S8 w# ?- `
do
- t& l# {4 f. c( P; F, ^- m2 B2 S        Lan := rootfolder.Internal.Tools.AOLlanguage;
, |9 l3 h( M! {9 T: X2 r        if current = @.Destination -- else return, w2 I7 c" o6 e* o
        then  D! [, E& T- B8 _
                @.Destination := void;
! d7 v' b; M5 r' x                if @.occupied then' ?  Q. W5 u% O& k0 B2 K" R$ j
                        part := @.cont;& l6 J5 n1 U+ }/ x4 s1 \8 C  e, U
                        @.transpOrder := void;- N  C" X% \0 _. X1 f
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
, r9 ^9 o/ [8 t0 R! x                                @,root.eventcontroller.simTime);* Y& E6 w# U+ B
                        @.HasOrder := false;
; N+ \  }6 \4 W' n& p                        @.DrivingHome := true;/ M: @& C3 O9 x, s9 Y2 C2 N
                        rgManager.tryToStartTransOrder;- c* c' F* f& D# a
                        if @.Destination = void+ r7 I- `- D4 M) ~" M
                        then -- no transport order for vehicle @/ m& G6 R3 h) @; A2 W
                                @.Destination :=5 o& G' A" D% ^9 S
                                rgManager.nearestFreeStation(@,track.~);
* B3 ?% [+ H! \0 p) m                                newDirection(@);   
0 A$ p8 B4 O# l- ^                                if @.Destination /= void then; L6 R2 c1 t% E. C$ ?& @
                                        @.Destination.NumReservation :=
. P+ a% D: _) O7 R9 l                                        @.Destination.NumReservation + 1;0 w1 R' c; y& b
                                end;1 y8 O7 A, |4 T& S. n, G
                                @.CurrIcon := "drivingHome";
- ^% H+ ?. O9 ?# r- h3 y7 [                                @.DrivingHome := true;
% A& B( E( Y9 K( _# @. c$ W                        end;1 E1 y0 L2 H, t1 A8 U& u4 y
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
- S, q+ u" u4 }9 Z                        part := @.transpOrder;
0 p& j5 V- z1 C- S: ?$ G1 f% R                        part.move(@);-- load part
9 z  u3 Q3 G- J, n+ Q; G                        @.CurrIcon := "load";
$ [: a! }' A0 H, D                        GlobalDistObj := part.globDestination;3 h1 O- u7 _- M/ C
                        assignLObj := rgmanager.rgAssignL;
# ~. `4 e7 `+ Q$ ^                        row := assignLObj.getRowNo(GlobalDistObj);
! P. A- x* i( V0 u                        if Row = -1 then -- since 70
6 O6 ]! {0 R1 @- Z" U( K                                if lan=1 then
8 H/ G' E" |2 h& ~0 a                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\"")," ~9 O0 V+ i  c; \3 d
                                                to_str("in der Andockstation: \"",?.~.name,"\""));' n  v; J( X2 n
                                else- h' p, L7 ~2 W% q1 {/ ?% C; m1 Y
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
- i. I8 z5 A" Z1 b( ^, o2 S                                                to_str("in docking station: \"",?.~.name,"\""));                               
# X4 M6 C% h  o4 q, S                                end;
" {% L. |  B! r" i! M  t                        else$ R% {" i! B6 Q
                                @.Destination := assignLObj[1,row];
4 Q3 I" @* }) O4 h8 n! C6 y                        end;                       
# r3 M2 Q, c% z; f9 e+ X+ ?                        newDirection(@);
7 b( H; [9 C- O2 p                        @.HasOrder := true;3 t- N" j- O$ O  ]3 a
                end;
( C1 B- a8 W$ M2 U9 A  U2 k        end;2 b4 D6 \5 @6 u
end;        -- of the method0 @+ e4 B* j' y3 z9 i0 V; s
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑   _7 g" `" j3 M3 N0 u

4 a8 r" ^1 O+ P% E8 C这是AGV_putin中arrive的method。& f, H- U5 s  \9 [' A9 `* h
1 K3 A! \2 X" Q  D$ }
当到达物料速度越高时,这个报警更多,
4 Z  R( J9 ]" R可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。  w- F7 A- j4 z( q1 j
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?  q& C/ z7 }# ~2 m& z& l

  c( {3 W  L' Y另外一个小建议,就是move,所有的move都可以这样( t( p! O1 D3 h- s% Q, S: I+ Q
if not move() then debug end
+ l. o3 k2 k2 K) |4 S0 b% r这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。1 [1 i' F$ I7 {& A
plant simulation中的free libraries有AGV模板,* G9 k) m/ R% N2 v: A" ?" `- V& n
里面也有案例。. u7 ?, l& M# N
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。+ d2 H) P* t- }6 Z) |+ x* N
1 F% @3 c" L- t
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 - T3 P- @. N% i  K# H% w$ |; f$ G5 I

" _! v" e) z" |9 z# g" A1 X那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
1 l; {. b! Y& g7 l这是AGV_putin中arrive的method。4 ]1 t/ M6 s1 m( I! Y9 j
6 b& O* U: ]0 _4 I" r5 {
当到达物料速度越高时,这个报警更多,
9 w7 p4 p9 G$ h% y6 {  K/ W: }
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-13 17:10 , Processed in 0.018569 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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