设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6289|回复: 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'
" t% s; m2 R6 G" X*/6 W8 f+ N& U  s9 q! ?; h
is
" l/ w$ F; C8 a: w5 S# T        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
3 @' a6 V2 D- J4 rdo
* }7 `: b2 ^$ ?! B7 a7 Y: a9 ?        Lan := rootfolder.Internal.Tools.AOLlanguage;7 T5 {8 V% o  P5 z9 i  @
        if current = @.Destination -- else return
$ _4 q+ o% S- {6 }& ~        then3 R0 ^1 |2 }2 y
                @.Destination := void;
  L+ |* B0 v! J9 P% J0 h                if @.occupied then+ ~; b& F: {) j/ [: r9 j9 b0 H& _1 m
                        part := @.cont;
/ `# G: a3 ?8 j; o" [$ K                        @.transpOrder := void;4 c" R& |. T4 ^: O0 E& w
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,8 l0 ^3 G1 _' G; K. N# M
                                @,root.eventcontroller.simTime);
  p0 F& N$ E7 F* \4 X* a# [2 X                        @.HasOrder := false;5 G6 L% w% \+ A4 d! o6 j! d0 f' F( T
                        @.DrivingHome := true;: I( b9 V! C8 v' L% s
                        rgManager.tryToStartTransOrder;
" F1 H- F/ F5 ]- E: ^# A' _* C                        if @.Destination = void6 T  q( |$ y2 I+ U8 Z
                        then -- no transport order for vehicle @
* \" `$ c! U: T' J4 M4 }                                @.Destination :=
4 z4 _# r9 s" T8 O( K4 v# q6 B                                rgManager.nearestFreeStation(@,track.~);! N# l+ V6 u8 o" V9 d
                                newDirection(@);   
2 _* @) ~, j2 V3 @$ f" T                                if @.Destination /= void then$ J5 y! Q; n4 E5 {
                                        @.Destination.NumReservation :=
6 ~* h) s9 g  S: V1 T                                        @.Destination.NumReservation + 1;
2 }3 t) f) N; p. Q: a1 E6 b: `                                end;
) ?# d3 ]  w" o                                @.CurrIcon := "drivingHome";2 I$ @$ x- |" u
                                @.DrivingHome := true;
9 [. @1 u1 X( q/ {                        end;3 F" [- l, s' y9 \2 p
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station( c" q9 ^& ~9 W2 W
                        part := @.transpOrder;5 B) ~, e; o; p/ O3 N, z7 s& u7 O
                        part.move(@);-- load part
) G, A/ |" ?6 T3 B, o                        @.CurrIcon := "load";
9 `4 H% w* U- H% Z                        GlobalDistObj := part.globDestination;
3 D1 s" G/ A% |: u                        assignLObj := rgmanager.rgAssignL;4 t3 D4 @' n; F0 `  X
                        row := assignLObj.getRowNo(GlobalDistObj);
' V" @% N+ s- A, P                        if Row = -1 then -- since 70. ^- h$ E8 J9 n3 a3 K
                                if lan=1 then; W" `3 F6 s3 e$ V3 ~
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
) \" {: X4 `* @- o% H                                                to_str("in der Andockstation: \"",?.~.name,"\""));
1 o2 S; y3 l  R# N                                else
, m; H( \' j  h                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),  U+ P) S2 W+ @2 n
                                                to_str("in docking station: \"",?.~.name,"\""));                               
5 L1 x1 j# M/ z9 Y* O3 T. M; H: ^                                end;
, {% e& h" O2 ^( w( Y                        else
0 U; H4 V: z4 }0 W                                @.Destination := assignLObj[1,row];) v: b- C9 N6 L8 s2 u$ a( \; {: C
                        end;                       
5 D8 T7 E" L0 @5 k  R* e                        newDirection(@);
0 o# a9 V( }' ?( Q$ ]. d( Y                        @.HasOrder := true;  \  t8 X0 i0 K6 L9 x, g0 F
                end;4 }5 @' d: A, w8 p0 R
        end;+ C  A" d! {$ v' P& N
end;        -- of the method" w# ~, M# _* F9 l4 |+ P6 {: D9 Z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
& K% y5 q2 u8 k( `* `+ b9 U" n1 V! P4 A8 [) O, Y2 O( ?2 p3 \
这是AGV_putin中arrive的method。
+ e3 T2 K/ w' j# Y7 B8 E6 V7 h2 H+ K, @, a  K0 |9 n" _( k
当到达物料速度越高时,这个报警更多,
; Y% \0 ^3 S! P8 E2 `1 g2 N! W# U可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
3 t2 }" n8 _* F' B1 K2 y程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
! m! A/ P& ~2 N; [
$ c/ T" [0 b. g8 }! q另外一个小建议,就是move,所有的move都可以这样7 x7 O% B9 R8 n
if not move() then debug end
  o4 K5 m* {; ?" o5 A这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。. n: }% i: Z4 {  E6 N  H( y$ \4 l
plant simulation中的free libraries有AGV模板,
9 u7 F* c9 G& f. g/ W- B里面也有案例。
5 ~# J: w$ i2 r' ?6 o) {我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。" L9 t. }- c+ z( W) y/ ?4 \

4 f# ~6 l: Q7 r/ r( F+ @& s) C我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
) a* o1 E: C' k+ k/ a# D5 [* }) z4 H6 k4 J, A" d
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
  a" k* Y! Z, b  k% T这是AGV_putin中arrive的method。
, {, b5 p! F# e- i# n9 S( A1 V  ~4 Y
当到达物料速度越高时,这个报警更多,

9 E/ r" \. j, r另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-28 23:57 , Processed in 0.020402 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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