设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9008|回复: 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', y/ S/ L8 k6 u  J  Z+ l1 T1 n5 ?' H
*/( w. y0 e1 U: p% N: ~0 X
is
. `/ U! E9 ?# [        part, GlobalDistObj, assignLObj:object;row,Lan:integer;8 t' ~7 }- v% e8 U) ^! m
do
* f) _+ a. p% |6 F5 M) C        Lan := rootfolder.Internal.Tools.AOLlanguage;
; `0 M% ^" Y1 D. p' }8 `2 u& D        if current = @.Destination -- else return
2 T; H9 N5 A: j* ]        then& s: M( f5 K: k6 t: f8 Q
                @.Destination := void;7 D0 d8 o1 e) I4 U- h  i. U
                if @.occupied then
# c! Y- ~# S9 n5 Y- M. w9 \                        part := @.cont;
& w0 o- Q* z) U# s4 D                        @.transpOrder := void;
' i; |+ [6 X; V- m2 I& m7 }5 f1 X                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,) g- k/ C6 e; {6 A4 p, ?
                                @,root.eventcontroller.simTime);
% `3 Q9 c' U) ^9 O5 E  K                        @.HasOrder := false;
- a( x+ }5 `8 ?9 [+ W                        @.DrivingHome := true;- H" }9 I$ \9 A
                        rgManager.tryToStartTransOrder;- G7 L' k9 r% N+ v! G; q
                        if @.Destination = void& O# R# m' s% F. s. u
                        then -- no transport order for vehicle @; ~" D( m( Z- ?* e; A" c
                                @.Destination :=
: f, g2 r2 U; e  E6 v  i1 I1 V  @                                rgManager.nearestFreeStation(@,track.~);7 D( X0 I  X5 C( N
                                newDirection(@);   # n/ G2 S! D  t  J) d- A5 P! H$ O3 d
                                if @.Destination /= void then9 [: Y" h% I2 O) V; Q
                                        @.Destination.NumReservation :=: H& @6 I& o0 \2 b0 J
                                        @.Destination.NumReservation + 1;
& x, {# j# }; ~5 H                                end;3 b9 ]$ K9 \- P: |9 V
                                @.CurrIcon := "drivingHome";! K5 ~3 S" |% X
                                @.DrivingHome := true;
+ \8 ]3 ~& _, ~) _                        end;
0 }1 O! E' d" L1 f, V/ S1 O                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
# Q( Y1 q6 Z: u9 X# u& y                        part := @.transpOrder;
! Y$ T& C4 g$ ~, o" L% N                        part.move(@);-- load part3 y! g" j7 x+ q% r
                        @.CurrIcon := "load";
& d4 [7 o  {9 U% S8 ~8 p3 z                        GlobalDistObj := part.globDestination;
# ]4 o4 s0 c9 ?* L# V& Z                        assignLObj := rgmanager.rgAssignL;
4 Q, c+ l& h7 k9 Z( a                        row := assignLObj.getRowNo(GlobalDistObj);
1 j; A9 n% J7 A4 c- {                        if Row = -1 then -- since 70
+ d0 l9 `6 g7 E7 q  L% \4 H( ^                                if lan=1 then
* h# m$ V0 Y7 v1 e                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
. q+ e1 u; R' p5 X. o                                                to_str("in der Andockstation: \"",?.~.name,"\""));
! A" J  f3 }4 o1 A& h5 m5 j5 ^2 z                                else' l; v9 n5 b! u/ c5 r9 t- E
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),4 ~% E9 ~+ x/ L1 ]8 J
                                                to_str("in docking station: \"",?.~.name,"\""));                                  j. s/ E  U" `6 w1 _
                                end;9 ]& C- C- X. t, F
                        else
6 B% O( N  `& O                                @.Destination := assignLObj[1,row];
3 D* }; }* A% l! D% h: c                        end;                        , x+ V- F' B$ W0 C0 v/ x! |* q, n
                        newDirection(@);
1 j/ v1 y* A7 F' ~                        @.HasOrder := true;
7 z4 g  ?. b  K8 N! c. X                end;
+ n' x! }5 }6 g. r) X        end;( M* L2 a; z6 C; e
end;        -- of the method+ g4 n3 W7 {$ f4 ^0 n1 E! e* J
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 5 b( u3 R1 \* f6 K
! k- h; [5 A5 T: r. k
这是AGV_putin中arrive的method。
% \" i' Z% E0 k0 [1 z; s. G
" J' X9 V! O4 M* G& f- [: e当到达物料速度越高时,这个报警更多,, d3 ?- o* G* ^. x3 y) f3 H7 n/ P
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
) ~1 o9 X3 n( }+ v, H9 Y4 k1 v程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?* ~; y2 y% }  Q4 I

$ O" b) c" \: d/ U# c- G  X( T另外一个小建议,就是move,所有的move都可以这样- F& P4 v9 u! w# h% a9 k+ m" A+ P
if not move() then debug end
+ A! g% f* R* n  e8 `( O% F( s这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
7 B4 T( d! f7 y; }) M* Cplant simulation中的free libraries有AGV模板,
4 A, e/ @1 O2 r2 p1 B/ e里面也有案例。7 i% I1 C( R' q3 J; s  P, A
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。! u/ S7 [# E/ _0 y' k' c
2 Y* k: r+ f0 X% ]  D% m* R
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ) g3 `. K6 Q* c, @' k/ _
( U3 `* F$ T- _' o2 @$ U5 G$ U
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
' i5 L. U, f2 B3 e& c这是AGV_putin中arrive的method。
* \6 e* l. ?3 [0 p4 [) H& d3 N! ]  v- R4 E7 \4 `
当到达物料速度越高时,这个报警更多,

+ ]2 M7 B: M; I8 U1 S另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-8 16:01 , Processed in 0.035874 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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