设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6070|回复: 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'" j. o2 }3 S( q  U# I6 O: L
*/
6 i6 G$ G8 Z  Z$ X5 c, w  Nis  n3 |2 X; v" E: f$ k  F4 P
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
- r& s% Z0 W5 F! `5 hdo
7 ?% E5 @% Z! q* d. k        Lan := rootfolder.Internal.Tools.AOLlanguage;
5 n" W: f6 p( Q) c* Y; G        if current = @.Destination -- else return' O$ v& q/ \* s# S: B
        then( y/ @$ D" z  k: }3 L7 I# Q
                @.Destination := void;, s0 r% w. y1 E* k+ V
                if @.occupied then1 o1 U* G# V# u- f+ X* N
                        part := @.cont;, v) n7 u+ L* @! G1 V, [4 y5 A
                        @.transpOrder := void;$ o. Y( V  A' l% A% P2 y1 b4 U% J
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,8 L* A  w$ y. ?  V( c9 m
                                @,root.eventcontroller.simTime);
& j5 l  z* j5 k. E* i5 R5 O0 M: A1 Q                        @.HasOrder := false;
3 p! _) v( H/ h5 ]4 S% J5 j                        @.DrivingHome := true;
. f4 m( y0 S5 k9 ^8 ^                        rgManager.tryToStartTransOrder;
, A$ i. X5 {+ Z2 i( s' b% e) ~5 U5 |                        if @.Destination = void1 M( l- \( a5 k' y" w8 |
                        then -- no transport order for vehicle @
0 u8 n; D4 z# |% [! h                                @.Destination :=/ P& A0 T0 E1 U1 K& J0 L9 w
                                rgManager.nearestFreeStation(@,track.~);" |: z, j5 F9 Z# Q0 `& N6 C
                                newDirection(@);   
4 R5 G2 w" I7 U                                if @.Destination /= void then
# {9 v" @! w5 H* T  v4 p                                        @.Destination.NumReservation :=
: Y$ o. p5 D9 \+ _; b                                        @.Destination.NumReservation + 1;# T0 [8 ]/ I5 C4 c% l
                                end;# G5 A% T* A6 b% V& H7 F
                                @.CurrIcon := "drivingHome";
" D5 j* }9 a3 Q' t% f: H) C3 v                                @.DrivingHome := true;/ Q) H0 R# H" L. y9 z
                        end;
. X8 O& r9 L' Z" q$ H3 [                else -- the vehicle @ is empty, both vehicle and part are in the same dock station' R: O$ l+ n4 q, l! K& u
                        part := @.transpOrder;
1 _1 T( `- @3 U1 R* j; ^9 V6 y' D                        part.move(@);-- load part
) q' J( k# O* U! j                        @.CurrIcon := "load";2 [; q( S( F( e/ j
                        GlobalDistObj := part.globDestination;% L5 g9 G& H2 H; a- e4 |8 g
                        assignLObj := rgmanager.rgAssignL;
+ k' m3 n4 Y5 y- X                        row := assignLObj.getRowNo(GlobalDistObj);
9 _$ L1 q& e3 P+ G  `- V8 w                        if Row = -1 then -- since 70$ b: r' W7 y. |
                                if lan=1 then9 |1 H. u0 y% u/ u# Z+ c
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),. Q1 e7 L& ]6 }# Q
                                                to_str("in der Andockstation: \"",?.~.name,"\""));9 Y" X* I; w% J5 p7 |( a" @
                                else
( K* F+ `8 S! s0 n5 M( S7 u                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
4 M2 f- l- a* E                                                to_str("in docking station: \"",?.~.name,"\""));                                4 V6 `& k1 Q  q# J# \# q" }
                                end;: a  g' B+ U  W3 P" [. [# S
                        else5 m! {- X4 l. l, m( z$ s& N) k
                                @.Destination := assignLObj[1,row];
' I: |2 t4 k4 y1 Z1 v* r                        end;                        $ X6 n7 A0 ^# e/ c4 Y
                        newDirection(@);2 @( ^6 C- ~/ Q2 ~
                        @.HasOrder := true;
* N5 p" J9 a6 x4 i( H1 g# \                end;
% T( V/ y: n4 a6 g4 N- _( Q        end;
1 s; X+ f! ?: K4 f7 Mend;        -- of the method
0 Q5 o1 C: t" T/ ~5 c
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 " e4 `4 S, ?5 f% ^$ z

( M; m0 D) ?, ~* v0 ?; a- Y: L这是AGV_putin中arrive的method。
/ U1 v4 V! D" W0 X' {; w; b0 e5 F; u$ h1 g# U5 d5 m6 p
当到达物料速度越高时,这个报警更多,( q, L  b( q+ I& ?* t4 H+ q; G
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
' O* h! N: b5 v2 z4 ~  R- e: C程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
( A/ ~8 u' o. o( d8 p% l) t  m, F  h& \. v- g' m2 ^$ m
另外一个小建议,就是move,所有的move都可以这样0 i/ q3 O- I, P" i6 D
if not move() then debug end
& H  R5 I5 z. Y7 r1 a# B' y这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
' @# j. ?/ i; K1 k! [; Nplant simulation中的free libraries有AGV模板,
; v/ [# m  s' e" j" Y, B. Y- J) w: `* B里面也有案例。
0 c' M  e' |4 J. V我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。+ N( u$ c, ]7 p# @* T# U

4 m6 i6 d1 F( n8 D7 _$ Z我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
9 w9 d- ?1 e& `8 f6 s" f: {+ n" G
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
" C* o8 L# s& ^7 E. W( @这是AGV_putin中arrive的method。. e/ M" V; [3 o% P5 ?4 L1 [( a; x5 ?
8 A0 ^. m( Z3 ]& D) t/ J# m& s
当到达物料速度越高时,这个报警更多,

$ C, J, O2 V5 I# J另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-16 00:54 , Processed in 0.019491 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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