设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7167|回复: 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 \: L% a: g; g+ ]*/
5 A+ |4 E3 D6 K, W7 H) h+ Qis8 k# q( u. {1 Y. {$ C. o
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;) {* {" T* K( M/ ]8 V0 z  O
do
" G1 I4 D2 b  T% }        Lan := rootfolder.Internal.Tools.AOLlanguage;
. ^5 t0 r! ]2 }        if current = @.Destination -- else return
; C0 J: N2 U$ h) C        then8 _  ]" Z# {0 ]8 ~5 \( o
                @.Destination := void;
: t; ?$ [; ?# S                if @.occupied then' a' y0 J& z7 I  [( P, B5 C0 Q3 |3 q9 ?
                        part := @.cont;
0 R4 Q8 C" V, R2 K) a; h                        @.transpOrder := void;7 O9 I8 W. f9 |# L( t9 r$ X
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
7 B4 h# V8 o9 C) r" n                                @,root.eventcontroller.simTime);" x( }" h. H. X2 _' R/ A' \8 L
                        @.HasOrder := false;
+ ?4 o; O  D1 ^! `/ I* W. F0 d4 l                        @.DrivingHome := true;
& F2 p8 k) u& G& E" z+ F0 s; r                        rgManager.tryToStartTransOrder;
; l5 U  X5 R( M                        if @.Destination = void
  i3 F; n8 S0 U( \6 d                        then -- no transport order for vehicle @
# V" Z9 D  m; ]+ X) ?0 ~9 F                                @.Destination :=
1 G3 ^# S( g  j" v  M1 \                                rgManager.nearestFreeStation(@,track.~);
7 {- P. u% [+ O1 f) K* n. d6 g                                newDirection(@);   
, g+ j0 p/ I  ^4 @9 s                                if @.Destination /= void then
; G" e/ [$ G% g- }) ^" g                                        @.Destination.NumReservation :=
  z2 _$ e7 ?3 l. u                                        @.Destination.NumReservation + 1;
2 t6 F+ `, v) Q                                end;
# _. O4 c: A$ A* i7 k$ F                                @.CurrIcon := "drivingHome";# Z5 q9 c, {) T7 w1 W% m9 i$ A
                                @.DrivingHome := true;; W$ F5 \* W/ B+ m) N) ^  K
                        end;3 G$ y( r8 o  o- N; S- H# ~. r
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station( G% i2 B+ w5 h% @. J9 N2 L1 o5 y
                        part := @.transpOrder;
1 a% z, W+ {% X+ L2 P                        part.move(@);-- load part
' _) D$ r4 j0 I* s. {# |8 D                        @.CurrIcon := "load";& m* h! g$ y# U# C$ y) R5 J
                        GlobalDistObj := part.globDestination;
6 u$ r5 S9 e  D0 Q3 g% J                        assignLObj := rgmanager.rgAssignL;
/ |+ t0 _9 q5 [# ~* P7 D                        row := assignLObj.getRowNo(GlobalDistObj);
  _  [# {* {( ^                        if Row = -1 then -- since 70
6 Z3 i. ^0 b7 s3 @8 g, ]% Y+ v" i, }                                if lan=1 then. H8 C) y0 T" |3 D
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
9 J( M, R' _7 S; V! X. j                                                to_str("in der Andockstation: \"",?.~.name,"\""));- p& r4 F6 B! p' b+ |* ^( c
                                else( n6 q$ ~( D  S% x4 J0 M5 l
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
1 T" B. }; z1 h7 U# ^                                                to_str("in docking station: \"",?.~.name,"\""));                                " L* F0 d2 y" \7 Y2 f4 s  U
                                end;
7 a) G/ C$ S  u3 O) w, E                        else
# M- M4 Z. `' O* D* i                                @.Destination := assignLObj[1,row];
4 r0 C& o9 W1 T* K) |- l8 F, \                        end;                       
# ?7 l) N8 l# z                        newDirection(@);8 C3 Z6 g+ N  p2 T% c8 x( g
                        @.HasOrder := true;
9 s5 k: Z+ M" V/ c8 f& o                end;- f! Z& z/ b4 e/ R8 C" I& o
        end;
6 [- Q  z4 M% i% L( K6 W& g" aend;        -- of the method; m: N* X% f, n- C2 s0 D8 a
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
) A# n: Z8 U5 E  T$ s
1 B$ U9 L6 S  g8 A1 E4 z这是AGV_putin中arrive的method。
# b% n/ @3 t4 v' Y. M
/ o1 W6 Y2 a- y6 f8 \$ o当到达物料速度越高时,这个报警更多,4 v+ a. t* Q/ x4 {+ L. s
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
4 D2 `( }! ^4 s, d程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
* J+ K8 ^) A) b* z5 L" [- B+ j
* S9 ~6 l( j+ H另外一个小建议,就是move,所有的move都可以这样6 o) M! h/ j( O+ J: U3 w' P
if not move() then debug end
$ G3 g( O! P9 T0 v; j) l这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
# @- r% _3 @1 U& rplant simulation中的free libraries有AGV模板,3 L. k6 q4 Q- r" ], h6 X& l6 B; p2 }
里面也有案例。
3 K' I& b- ?- F2 }# d# z我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
/ N# `( C( w7 D% P
* K* A; M$ E7 P( _我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
" I2 F+ W/ f$ O# G& K( W) ~0 Z& W7 i: z! D7 D. n% w( c3 Q
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
7 `% r& y7 f" B% O+ u/ W这是AGV_putin中arrive的method。
8 }/ }( q$ D5 O( M% }1 c+ l5 z% ^  R# D) m
当到达物料速度越高时,这个报警更多,

, t' W1 s; p$ i" n" `另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-23 22:47 , Processed in 1.289846 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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