设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7326|回复: 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'1 Y# P# f5 J! Y1 F! {- V' U
*/
" r* O; o* l$ R$ f' L& i. \is: ~+ f( v6 ]3 w, f
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;, F6 t& ?5 N. w9 R+ h/ l$ t
do4 e' H- K$ N, C- j* f' M; ?  I
        Lan := rootfolder.Internal.Tools.AOLlanguage;) F  W1 A9 v$ @# x4 o0 s8 Z; r, S5 l
        if current = @.Destination -- else return' E! o5 V' j4 r0 Q! R9 U
        then  Y! M* d. Y* y8 F9 W5 A
                @.Destination := void;  Y, \) j0 p% }. O2 J. f: o
                if @.occupied then: I/ k3 b; i& N4 f* i0 \8 z
                        part := @.cont;
/ p% n8 p, s. e                        @.transpOrder := void;
7 `  |1 D9 C8 X                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,, ?' z% p* g1 }0 R
                                @,root.eventcontroller.simTime);3 X  `2 v, U* t( N. Q, a" E
                        @.HasOrder := false;
- e* ?/ d& A1 Y- B2 _0 |                        @.DrivingHome := true;0 T+ D2 O" X/ V9 V9 A7 C6 P
                        rgManager.tryToStartTransOrder;
/ @/ y+ Z8 T% R1 q( B' j                        if @.Destination = void
, S* c" [& l$ F7 t                        then -- no transport order for vehicle @1 ]5 x# m* @: ~
                                @.Destination :=
/ [; ]4 S0 l' [1 r                                rgManager.nearestFreeStation(@,track.~);
4 ]% P) X5 B: {1 P4 v  L+ b                                newDirection(@);   
* t* P* }" Z# o8 {; n                                if @.Destination /= void then- u; l# g) l& \8 J) m
                                        @.Destination.NumReservation :=
* n  a) b+ J  |                                        @.Destination.NumReservation + 1;
8 {* m5 ~9 b  f* f6 ]. B8 U8 q                                end;
# E- F; @* Q6 R# ?/ S                                @.CurrIcon := "drivingHome";
* @: K+ O& H( j# N. @8 T7 t                                @.DrivingHome := true;
; J) e3 G4 z0 Q( F- Y) {  Y6 w+ i                        end;  `2 C  l9 V) `4 ~2 \1 R
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station' g6 u0 [- I- Z: @4 \
                        part := @.transpOrder;5 D3 F  ]  o; D0 w) u
                        part.move(@);-- load part; S0 B. d9 t" W- I2 X1 ?! E- y
                        @.CurrIcon := "load";
4 v& l* Q0 k- O+ K6 l5 D& I+ a                        GlobalDistObj := part.globDestination;2 V0 G. K( k3 R7 i8 o/ I
                        assignLObj := rgmanager.rgAssignL;
. g& o8 w0 d5 ]( g' c                        row := assignLObj.getRowNo(GlobalDistObj);, Y: q7 H" Y- ~
                        if Row = -1 then -- since 70
, k0 n, E- Y. e4 z+ u: _! r( j, l6 X                                if lan=1 then- O  ^8 W0 b. R) D2 g( l9 L
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
- j2 N; c" j- F$ {9 t                                                to_str("in der Andockstation: \"",?.~.name,"\""));
9 V% ?2 }- R  {8 ]( r+ _/ Q! N( B                                else
& ^9 P7 O4 v6 }9 b" s3 W                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
0 ?! m- b( u( E2 }2 q                                                to_str("in docking station: \"",?.~.name,"\""));                               
3 u( N* @; Z3 b! u4 L3 \. D+ c' D                                end;0 L: Q& S7 Y$ d$ d* W$ j, I; D3 w
                        else
, h  T( ^& O3 ^( ^                                @.Destination := assignLObj[1,row];
4 e# l3 I% x+ O, _/ g7 N; f1 e                        end;                        0 j4 g+ `) t( k. E1 ~3 W
                        newDirection(@);& D& O9 [) d4 a' J
                        @.HasOrder := true;
" ~9 a) h* P% ~! H' Z& B                end;8 ?! X; w* ^# Y3 Q
        end;
5 U- E9 h6 v5 P$ a. x3 vend;        -- of the method
$ B, B  d* s1 ]" T# \7 ~: }
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ) G  z% u" [# U2 ^+ Q/ _7 N; Y& b/ X* P
) c/ o. P% M& F& B. o
这是AGV_putin中arrive的method。
7 ^" c7 J$ N0 J$ R+ j. }% R# N* G8 M' M
当到达物料速度越高时,这个报警更多,
1 b$ m) U9 k5 f6 G' t( m7 d3 q可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
; D8 E: g, C( {$ @# l程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
. {7 j& l- }& T, L
5 u) i. M3 W* x; ~3 W另外一个小建议,就是move,所有的move都可以这样% q- s( X7 @" p4 j2 J
if not move() then debug end, z5 l& s. s7 D' f" X2 I4 x8 ~3 ~
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
( A- c* J: }. E9 fplant simulation中的free libraries有AGV模板,( w. ]8 O6 F5 O. d- p  C
里面也有案例。, R% C% u, q" A3 t! r& M
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
+ {! W) u* ], P% I8 h. `/ j, N3 q7 I1 Y# |0 S5 r* z
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 3 y( U7 K, n9 t+ X4 ~
2 e0 b$ p2 A4 [0 a
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
# H3 V3 z5 E5 g7 L! E: _' Q& _! ^这是AGV_putin中arrive的method。3 e- i( ?; H- F5 [6 e; ~! n

5 n" e& P3 p/ J7 O( T) @6 _% E当到达物料速度越高时,这个报警更多,

7 M5 E4 u4 z  w& `. w" ~0 ^4 l" [另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-4 05:47 , Processed in 0.025623 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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