设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8296|回复: 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'7 R% o; I; G" I4 o; V
*/7 l/ l0 t+ H1 H* e* X; k$ b' d
is" s0 J3 _( g% f
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;* N; q, q0 r+ z3 O9 B' [
do
7 G4 E+ z/ e5 c! r5 d$ X        Lan := rootfolder.Internal.Tools.AOLlanguage;
+ A1 r- \0 D$ V8 \        if current = @.Destination -- else return+ q* _$ ?/ i4 T' X* f
        then+ _# |# Z' ^, A& y) W
                @.Destination := void;
& O# c  M0 w0 n7 b; t                if @.occupied then
+ L6 S( H' x/ c" e. V4 Z& B' f                        part := @.cont;
" K% {" [; X5 V9 W* }) y5 G3 F+ d                        @.transpOrder := void;7 h: W% ^4 \8 ]5 X1 I$ X# ~
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
$ k3 j& V8 {! }3 f8 a                                @,root.eventcontroller.simTime);, M( b# l& U7 M2 _: r1 h
                        @.HasOrder := false;
! @4 ]( d% L' c                        @.DrivingHome := true;! [% W- @8 I; a+ c+ j; x5 h
                        rgManager.tryToStartTransOrder;
: }! Y4 e. i( S3 [                        if @.Destination = void* {% H% @* N' X: D9 G9 x8 q
                        then -- no transport order for vehicle @9 \( u1 y- a" l6 \9 E' s
                                @.Destination :=% [& U, p0 Y: c+ x
                                rgManager.nearestFreeStation(@,track.~);
1 C6 P& O  G$ g; Z7 z8 K) l( A4 I3 E0 A, H                                newDirection(@);   , H" f( q, K6 T) Z! @4 I( D7 _
                                if @.Destination /= void then
) o4 u7 t/ m7 |                                        @.Destination.NumReservation :=
( n6 X% [, l. q& H* o                                        @.Destination.NumReservation + 1;
7 I* D% E, b" A9 I                                end;$ d5 k! W. h7 J2 W
                                @.CurrIcon := "drivingHome";
2 b% F. R& b2 o- V0 }7 {& c                                @.DrivingHome := true;
$ n* z! I0 }  T, F* d# c                        end;8 u0 C( T0 J9 v
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station7 I4 k3 r, J; }+ K( S
                        part := @.transpOrder;. O  M6 [7 {/ w. f# q; i' I. p- H, T
                        part.move(@);-- load part$ F4 [! ^- |, l" k
                        @.CurrIcon := "load";
5 b- D, q8 X7 e6 C7 A                        GlobalDistObj := part.globDestination;: k4 Y2 U1 p9 ~: j! y/ Y& c
                        assignLObj := rgmanager.rgAssignL;1 \# Z8 M3 K8 f* c" ~- P
                        row := assignLObj.getRowNo(GlobalDistObj);
+ l4 S4 v8 @& _, r3 r# m                        if Row = -1 then -- since 70
: ?& t- k) e3 |3 k1 @) Y                                if lan=1 then
9 p4 i' t* R* H. i/ v( Q                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
# l, U8 u, D- {$ o) ?* o" F                                                to_str("in der Andockstation: \"",?.~.name,"\""));3 o" n3 E# \9 Y1 F4 u+ u
                                else! Z+ _$ m* `5 v0 k! z3 [, B* ~* G
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
0 u6 w+ m) C2 {- M                                                to_str("in docking station: \"",?.~.name,"\""));                                : c( q5 v* R, J$ V" d2 k" [: N- W7 T
                                end;9 M+ b8 U/ a1 {! h9 g3 r9 W
                        else
( G( @0 `0 ^% m) G                                @.Destination := assignLObj[1,row];
- s0 z8 K4 ?7 H1 _% h                        end;                       
6 n+ Q0 [7 |+ T" R                        newDirection(@);
& Q; b1 ~  ~5 L                        @.HasOrder := true;
8 Z6 P- ~: }2 W                end;6 {! Q+ U0 m8 t# J
        end;
9 n% Z6 p$ l7 b2 `* nend;        -- of the method2 b- c5 O" |, _+ [
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
8 L+ I' Y$ Z7 L0 I' a: ]0 g5 d9 H4 l) D& I9 ]4 b2 g- a( e
这是AGV_putin中arrive的method。
7 A# ^2 R% R( d, Z" P% H
" K% \! O6 K  r+ j当到达物料速度越高时,这个报警更多,( R: {' v" M. @5 P% D$ l
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
( R, M9 k$ J3 \# b! [4 z" Y& w程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?# {2 t( V5 B1 S% u( u

# B8 t% o; [: u/ f/ U' F0 u* s, w0 w另外一个小建议,就是move,所有的move都可以这样1 B$ \8 X1 [3 ~- ^# x! _& J
if not move() then debug end8 B8 E# Z4 p) G! T6 o" h
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
& F3 `5 _( `" G0 ~( Hplant simulation中的free libraries有AGV模板,3 D7 h- o: }' S9 f4 u, V$ ?' @
里面也有案例。
% j' V" x. |; V- y! O我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。* E# L: V$ A! d3 c- S
- t+ Q( f+ ?1 Y- _* h7 a  {* i% A
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
% ~3 I1 w* ?' ?5 u
9 M! O! v/ g! D那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
+ p* b0 h+ p4 N! G* i0 L这是AGV_putin中arrive的method。9 w- N( A0 g; W9 T

0 a- q" f/ _* y" n4 E) ?0 w- Q当到达物料速度越高时,这个报警更多,
3 e3 i0 C- ]8 ]2 n! T
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-26 06:39 , Processed in 0.019897 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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