设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8943|回复: 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'/ ~9 ?/ `/ L8 N; J2 ^! g0 R4 ?
*/
4 v! Y% b) F8 Cis
( {* f  _& a$ a& W6 c; f/ ^        part, GlobalDistObj, assignLObj:object;row,Lan:integer;5 Z* }& f. Y1 r/ ~) v# z
do0 G  D0 V& O, A
        Lan := rootfolder.Internal.Tools.AOLlanguage;; S+ g! o7 Y3 a* F9 X3 R
        if current = @.Destination -- else return
# b1 Y9 F' l* Z9 q6 i        then
5 c! D+ u6 `  l                @.Destination := void;
/ U0 y" o5 K0 E6 Y                if @.occupied then( q5 D6 {9 q" ?& h1 ]
                        part := @.cont;
7 k9 T0 \4 s; Z2 g' X& U# i, d1 J& l+ u/ P                        @.transpOrder := void;/ j" X# G3 c; f
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,1 F+ s5 e1 A& I8 J* w" o+ V7 |
                                @,root.eventcontroller.simTime);
" q, D+ s9 t, {0 u' e9 V/ l( \. \                        @.HasOrder := false;
9 X" C9 W0 R1 i" }. j% r' o2 F                        @.DrivingHome := true;
& R2 n" I; _- x9 j$ d, W                        rgManager.tryToStartTransOrder;
2 W% H) T- {3 f' A, j3 `# m                        if @.Destination = void
7 v% P% s9 ^% j                        then -- no transport order for vehicle @# H8 c) I2 Q0 S) c! i& P
                                @.Destination :=" J' `3 M) \: S- k+ O# p3 \4 M0 P
                                rgManager.nearestFreeStation(@,track.~);
& Z7 }& @4 `7 P2 c                                newDirection(@);   
2 g, f! }( c: L: M  @% S                                if @.Destination /= void then) ~3 P# E& x, ]( \+ p5 @" N
                                        @.Destination.NumReservation :=) h5 h" R$ `" [" D( I
                                        @.Destination.NumReservation + 1;
+ |# R1 t3 d' N8 P" X                                end;
$ H: }) E1 n+ o6 h& q# e  h1 B6 S                                @.CurrIcon := "drivingHome";
) ~  _6 y) Y8 |+ d- }                                @.DrivingHome := true;; X* k9 }/ N1 U+ G9 d* \8 p
                        end;$ K- P8 G$ P$ t* R) Q
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
, t* Z+ G. v" U& M                        part := @.transpOrder;
: p- k/ d! g7 _$ ]5 t5 ?                        part.move(@);-- load part" }2 o7 ^! p* _4 ^# l9 v$ V6 _% o
                        @.CurrIcon := "load";' ]( B- n" T% V0 m$ @" r' n% }
                        GlobalDistObj := part.globDestination;
2 R7 ]0 {, m  ?* Z' X                        assignLObj := rgmanager.rgAssignL;
0 q  u$ @8 D$ C/ F5 m. Y                        row := assignLObj.getRowNo(GlobalDistObj);
" o9 `8 a: R. Y                        if Row = -1 then -- since 703 {; I: N" S& T$ `: M
                                if lan=1 then3 K$ y" r1 L1 u9 S9 B
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),9 C4 @9 C/ y$ u# \& g+ w8 x
                                                to_str("in der Andockstation: \"",?.~.name,"\""));: G5 U- s7 A8 K1 j; d# N6 x7 {
                                else
5 \1 V. D0 E# a4 F4 b, [' j2 W                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\"")," o+ P4 V( K. m  s  y3 v$ g
                                                to_str("in docking station: \"",?.~.name,"\""));                               
2 Z- b! Y' O! D2 F                                end;$ W  x$ E$ J9 `, i. a
                        else
2 ?' B, a" q! p$ z( Q4 J& }. m                                @.Destination := assignLObj[1,row];
  k7 S" H7 n! {7 X3 l$ M                        end;                        ; ^& S5 A* F+ E: F& W
                        newDirection(@);
: {/ P" v9 b- e  w3 _" R: \                        @.HasOrder := true;
) C' o( Y' K2 G                end;5 O+ d( y1 n$ ]* [9 F
        end;
& @9 Q$ L7 b" W# R* w# r/ d8 I7 |end;        -- of the method, L; h3 M: L6 m  x% K
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 6 f% {% e* a! P7 `8 S: F, i
& _! n) L% E  V2 u  l
这是AGV_putin中arrive的method。" y" Q  ^0 n2 n# q
( {9 y* n8 @  |5 D8 @: C
当到达物料速度越高时,这个报警更多,
# r, n7 z; M) N: ]* l4 }+ C可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。  ~  h, a" Z% G  Z
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
) T  t) F/ ]- U* R+ J) r' x5 N; o  j. Z9 O) z
另外一个小建议,就是move,所有的move都可以这样, q* Z; E8 x* b' I- }, a  Y/ i
if not move() then debug end7 U, P9 W% j0 D7 l! E; ?* o3 B- k0 ^( O
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。3 H3 ?% s' n; Q4 V' k. q
plant simulation中的free libraries有AGV模板,& u2 b( b) l$ p8 @& b2 d6 Y
里面也有案例。( P# V+ S! h% B, ]
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。; i/ [8 @; _. O& C) e/ x- K! ^

9 P) m  D8 g/ H# y- h# ?我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
$ x# M  {/ k' k7 j
6 `7 m% N# c& w/ i* v那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
, ^) ~0 w! G( K6 J  C% `' J$ r这是AGV_putin中arrive的method。
/ |: j! N4 Y) ?+ d: r5 d
2 ^5 H1 `* r/ f( x6 c当到达物料速度越高时,这个报警更多,

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

本版积分规则

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

GMT+8, 2026-7-5 12:57 , Processed in 5.403799 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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