设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8602|回复: 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; M) y: P9 [*/
# V  @* |* U# mis
' d7 ^4 A# ~7 I: a; ?: n        part, GlobalDistObj, assignLObj:object;row,Lan:integer;7 c4 ^, h8 {- B. S3 q' X1 r
do7 F  D( i( L* F. _5 C- A0 w% n
        Lan := rootfolder.Internal.Tools.AOLlanguage;
  U+ c- `1 n; c9 |        if current = @.Destination -- else return0 {3 ], h0 B  p  {( B
        then
5 x  p. D4 q0 \                @.Destination := void;; ?9 s' c9 ^' J& P! x
                if @.occupied then, a4 l/ @* z7 k) P+ D
                        part := @.cont;# R" m! h% E7 s, d" C
                        @.transpOrder := void;
# T% L( m; `( i& ]% A) m                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,0 i9 Q% ~* k6 V+ K" y" `
                                @,root.eventcontroller.simTime);1 o. N3 ~, I3 @+ b3 x5 A) H3 X
                        @.HasOrder := false;  z: H$ D5 t  ]  i
                        @.DrivingHome := true;% v9 f  i( @( e9 f9 g2 h
                        rgManager.tryToStartTransOrder;
* w8 `3 N% Z/ ^) q$ ?* j$ S* S" c                        if @.Destination = void* A3 {8 G4 K. ]1 O' J
                        then -- no transport order for vehicle @, G' X0 u, T8 A6 M6 ?; a
                                @.Destination :=4 s( y& M  t/ Y( d$ Q
                                rgManager.nearestFreeStation(@,track.~);4 S, @* z0 Q1 G1 l! f+ _
                                newDirection(@);   
) X  L2 z7 e6 N/ E8 s9 f                                if @.Destination /= void then3 \( z0 W' s3 z5 U  Z
                                        @.Destination.NumReservation :=4 |2 R: |6 \7 y& x5 P4 }$ o
                                        @.Destination.NumReservation + 1;
3 `1 r+ W. w0 S7 T. T) A                                end;/ K3 X+ M+ U& @/ p1 j  {& o, R; S
                                @.CurrIcon := "drivingHome";
! ]9 H5 I& G( X1 f- F% Z4 R1 Q                                @.DrivingHome := true;) i. ?: ~  y; `! }+ I1 \
                        end;
: ?" S3 Y$ k8 \6 J3 o7 \                else -- the vehicle @ is empty, both vehicle and part are in the same dock station9 \# M5 y; F  b  M9 R4 I; X, F
                        part := @.transpOrder;  S; g" D& B/ z8 \4 j! r6 V
                        part.move(@);-- load part9 L1 n( Z  n; n2 R- h
                        @.CurrIcon := "load";
' f/ M- a! j7 L; `                        GlobalDistObj := part.globDestination;
, D0 r" W. ~8 c* h5 }; x                        assignLObj := rgmanager.rgAssignL;% b! ^# g3 l$ I" g# Z- A
                        row := assignLObj.getRowNo(GlobalDistObj);3 ]8 f& v1 m/ c2 X# r* ~! k
                        if Row = -1 then -- since 706 i9 I# t$ d- w$ r- _; q+ i& g
                                if lan=1 then) G+ H% I# U% x7 \' z9 I
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),! K0 ]  b- c: {! }; d: g1 `1 r
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
, |  e& i% m9 {: l6 |                                else
2 P9 k, |6 k: k: i* R8 u: v3 V                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),/ _) c4 u' O$ B: N3 {
                                                to_str("in docking station: \"",?.~.name,"\""));                                / D/ J# @! p2 Z; Y
                                end;
3 p( X5 ?+ J$ k                        else7 S9 }: q% b  G7 K4 n' D5 Q$ O/ C
                                @.Destination := assignLObj[1,row];) L8 t7 s9 F2 K, Y. \
                        end;                        * r! B. w* t$ w
                        newDirection(@);& E* ]' f" \% ^) G$ p1 Z0 ^
                        @.HasOrder := true;
$ A3 M7 e7 S! f0 A* L9 e/ X# Z; ?9 w                end;8 p% ]2 x' O, B
        end;0 |5 A% `8 J7 t( I; a( C3 a0 U& i
end;        -- of the method
, U* Y1 a) y) x! b, n! [
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 % V* s) u9 t: c6 K5 A

; `, Y! C8 U: U0 A' e6 V  Y这是AGV_putin中arrive的method。
- ?! i5 O/ L1 K3 ]) O- E8 L) Q% b8 d: a7 A2 E' }3 L- r
当到达物料速度越高时,这个报警更多,
' Y0 T4 i% B  n$ ~可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
/ V: p& ?2 I+ v7 J: ~6 F/ `$ _程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?4 x5 I/ F' W# S0 ?, ~
: {" {% Q2 J& {( H
另外一个小建议,就是move,所有的move都可以这样1 \2 K. u/ }- a6 {$ a/ p8 f
if not move() then debug end
; ~% f! |$ O; K这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
6 u2 H0 L& R* z' R( P! k' D/ x( [plant simulation中的free libraries有AGV模板,$ B/ u; \/ D% k0 q7 \; Y
里面也有案例。
0 S) i) ?; N3 ^. ~' y/ Z! ?  ?我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
5 @+ B" P8 d5 ]. i
5 z' ?4 s8 _: C我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ( m; r, x9 r" t) C4 N+ y

0 p3 m2 P2 l( H6 O- L% ~* D那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 : w( T1 E: E5 f) h( v7 c3 D0 W
这是AGV_putin中arrive的method。0 Y& k% i( e1 I+ ]9 S
# ?8 B& F. _) W4 s
当到达物料速度越高时,这个报警更多,
. F, j+ L3 I. u1 J' r" [- q
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-15 00:10 , Processed in 0.013940 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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