设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8177|回复: 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'
# P8 A# G' Z: ?7 T3 ~*/
0 ~& B8 X  [' U  o; Bis
7 ~! K7 {7 H5 g# l- u        part, GlobalDistObj, assignLObj:object;row,Lan:integer;6 J+ k; @; m- b/ v8 }
do& L" z3 r; z* u! C' @0 W
        Lan := rootfolder.Internal.Tools.AOLlanguage;- v+ m7 q. U* s$ Z* \
        if current = @.Destination -- else return
' w  U# U; W- P: ^; e        then
% k; ?5 B- K% f* H                @.Destination := void;
0 N( {' _3 F& r' e7 g                if @.occupied then
: t! F4 E' e4 _- h0 L# h3 Q                        part := @.cont;: Y9 z4 V- y7 d& v$ a: K1 V& ]
                        @.transpOrder := void;% q$ J% [2 w9 T  x5 R
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
3 J5 c( d  q0 S2 F( T8 }                                @,root.eventcontroller.simTime);% T% L0 J, _! |$ A$ l6 p
                        @.HasOrder := false;  E+ z9 D$ G3 ?- `
                        @.DrivingHome := true;
0 d8 i1 }# O5 y! K, J                        rgManager.tryToStartTransOrder;
* t8 r  w- y* z* t2 G" S+ O8 r                        if @.Destination = void0 F) J& ^! B* @. u) r
                        then -- no transport order for vehicle @+ [1 M' s: j  |2 Y
                                @.Destination :=
  {7 N! X0 r: ^- _! u                                rgManager.nearestFreeStation(@,track.~);5 ~2 n1 ^+ i$ x9 D  x5 A+ g
                                newDirection(@);   
! i2 g, x; b& e* R% X                                if @.Destination /= void then; o( Z" \" [$ @! s2 P# O8 l
                                        @.Destination.NumReservation :=
& C. D9 e8 s9 Z* G                                        @.Destination.NumReservation + 1;
4 H7 M+ ~7 n& B  S1 S$ x. N/ z6 a                                end;9 B4 B0 j2 F5 }/ z
                                @.CurrIcon := "drivingHome";+ J* d" d* l6 j& x* z+ Z
                                @.DrivingHome := true;+ r9 U9 [, Q: X( J7 J1 M
                        end;
5 B. Y( G: G$ P                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
5 C* J; A. ^1 z, C2 o$ [- r+ x9 K5 _                        part := @.transpOrder;, X4 L) H- g: p. y" f( ?
                        part.move(@);-- load part
3 G! Y3 n0 X& s                        @.CurrIcon := "load";; ]2 p0 a/ y0 D! P8 l* K
                        GlobalDistObj := part.globDestination;
, L# q0 r6 j  O- J! d" U                        assignLObj := rgmanager.rgAssignL;
1 v" I( s" G, Q1 J9 [                        row := assignLObj.getRowNo(GlobalDistObj);
6 x% n+ ?* w, \, F* |% Z                        if Row = -1 then -- since 70
( ^1 r% U+ Q& b7 f) T                                if lan=1 then
5 r7 x& @; G8 S  t                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
! f7 t% U8 I7 Z7 O; H+ q) R                                                to_str("in der Andockstation: \"",?.~.name,"\""));
) U0 b5 f# E. U/ {! z7 K1 q                                else9 k* G7 z' G. O" I
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),* h, X% j/ {2 @6 p$ `" S8 R& q) ?
                                                to_str("in docking station: \"",?.~.name,"\""));                                / R/ n3 q) M: o' o  b
                                end;
& T1 Q' w% E  d) ?. @1 F                        else
9 K4 M6 ?/ X3 V) O, y                                @.Destination := assignLObj[1,row];
1 m% p5 ]$ N2 z                        end;                        1 @2 s/ ]1 K! s4 \2 p
                        newDirection(@);
% s4 r/ p. L* C& ]  z                        @.HasOrder := true;
+ _3 F0 [6 Y& Q; _9 ~7 F  c$ c# x                end;
! q" O9 K  L0 L+ d9 p- b7 M6 p        end;
0 R4 m8 m2 {1 D  ]9 Iend;        -- of the method$ x% \, ^# W7 l! B
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
4 w1 r( ~, |* f1 h( y9 ?8 g9 C+ Y
这是AGV_putin中arrive的method。
: ^0 Z: U. X2 V) u! }$ K
9 _  I8 @/ B" h+ c7 j6 I当到达物料速度越高时,这个报警更多,
7 Y2 a/ u+ W5 E4 r: h& ?可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。6 a" e! P: z9 ^& K5 p: \/ v
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
" K* u6 y  x  g" m% g/ O; d. u* Q$ [7 Y8 P& e6 K1 j/ J
另外一个小建议,就是move,所有的move都可以这样
: d/ O& ?* U$ [: i8 I8 g. Hif not move() then debug end4 `" F0 ]. e" h  n# c6 [( Y
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。, S1 \4 u" U$ \  B
plant simulation中的free libraries有AGV模板," n2 F. w( s" I) u) L  C8 X, B7 h
里面也有案例。
" S5 k0 e, B  E+ K3 b我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。' Y1 m$ \4 Q3 @+ T6 A8 @1 `' N6 ~1 v: v

$ C( K5 G" |2 @" n! ?0 y我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 " S* E' P* ]! ?& `7 {6 L
* c4 u( x3 u/ g! @+ @0 u7 q# |$ b
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 0 ]: m# y3 F" F7 A9 ]
这是AGV_putin中arrive的method。
! s, V3 z, u1 @# g' @/ }- o2 m% ?
/ h0 V% B6 W; b/ u7 A当到达物料速度越高时,这个报警更多,

! m3 x1 [% J+ H3 G另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-19 08:14 , Processed in 0.020692 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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