设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9345|回复: 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'' a) d7 H7 x$ ?9 t0 N5 e
*/5 q- l% w% X0 F" t) v' `
is
- _$ I$ B4 S+ f( [% T) w+ }% M        part, GlobalDistObj, assignLObj:object;row,Lan:integer;$ `8 M; \* Z5 C3 g: @3 n6 k( f
do
% C; L7 b- ~9 v& Y0 o* |( u        Lan := rootfolder.Internal.Tools.AOLlanguage;
% X. W0 i" j  j! \7 _        if current = @.Destination -- else return* C3 ]9 w$ E6 `! l9 @0 K* F
        then
. _! ]$ G$ `- s0 X+ n) P/ V                @.Destination := void;
$ s7 i# \( b0 C8 _  r                if @.occupied then/ @9 x5 m1 y9 y
                        part := @.cont;
' o5 @2 ?% Q) x$ u                        @.transpOrder := void;
8 ^1 ^& X5 ~* ~& o# ~                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
6 B/ W  a4 J" A+ Y$ F0 e' l8 g                                @,root.eventcontroller.simTime);
  L+ V9 p/ j" r- i! c5 m                        @.HasOrder := false;
0 c% }9 x, P! `% E# n9 m                        @.DrivingHome := true;
7 p7 M  o4 ~2 B                        rgManager.tryToStartTransOrder;
$ m) d8 ~, R% K+ N, |6 R                        if @.Destination = void
9 `$ w9 s5 `3 Z6 ^* K8 O                        then -- no transport order for vehicle @$ N/ d- |9 J; k% J% G& F+ ^( t
                                @.Destination :=
9 F8 f* K4 W: ^                                rgManager.nearestFreeStation(@,track.~);
4 ^# m2 F0 [  B' k+ m9 @0 Q/ W6 Z                                newDirection(@);   
7 E/ {+ l4 K) c; @8 |$ r5 l/ {& D- R                                if @.Destination /= void then
9 w* h& G1 p3 ^( y4 W9 |                                        @.Destination.NumReservation :=
2 S2 h/ r$ }2 a; S% r, V( L                                        @.Destination.NumReservation + 1;
7 F7 X3 y$ g% t8 f* L9 r                                end;
; f( }" J1 |& i: s( G3 O" G                                @.CurrIcon := "drivingHome";
  n& f2 j1 Z. T- Q0 n, b8 _                                @.DrivingHome := true;
1 |# n8 d) K' _, Y                        end;
; L/ J9 T' u( B6 ~4 Q- k                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
+ j4 n3 p. M3 A, v! I! n  M                        part := @.transpOrder;, l  V1 Z/ ~$ j$ E
                        part.move(@);-- load part
+ C* }7 ?( q0 Q$ ]( p                        @.CurrIcon := "load";' E0 W0 A/ I8 z1 s/ {+ M* L3 }
                        GlobalDistObj := part.globDestination;
, N. I5 B0 `" R! U5 ^# x                        assignLObj := rgmanager.rgAssignL;
, A: j$ v9 {9 A                        row := assignLObj.getRowNo(GlobalDistObj);
: h- W5 }% c9 z# R# t% A2 `4 ]                        if Row = -1 then -- since 70
# w; R5 ?" T1 v* U$ y# t                                if lan=1 then
: e! ^  i" Z8 q: x5 i                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
6 u' M2 A  T2 F% k# ]                                                to_str("in der Andockstation: \"",?.~.name,"\""));
  F: r7 @3 E6 g3 |5 ^' V                                else
( T9 G6 J0 m2 L3 I6 G% `                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\"")," a" V; v" p! ?7 E# e9 _2 B
                                                to_str("in docking station: \"",?.~.name,"\""));                                / c1 B3 E5 B( E
                                end;
9 B4 K* T* b$ D) _                        else6 I: q6 ], r" I6 ?
                                @.Destination := assignLObj[1,row];
; s0 m2 p1 \" Q2 E* K                        end;                        9 L+ b! y# |6 N& h- y' H$ v5 k6 d8 o
                        newDirection(@);
. T7 T4 S" }, q                        @.HasOrder := true;5 m0 ]4 r* T) N  b! b0 ^
                end;
1 s" P% d& |; k1 f) b9 J        end;; }: ]6 p+ X# m9 Q$ T
end;        -- of the method& m8 `' J3 U/ J7 p) L+ }, l% Q+ o
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
& f% X7 ]  [3 f  }$ r" g
1 w$ K2 Y  \& `) S8 o* p. ^这是AGV_putin中arrive的method。
1 W& a) f# o, R) i# f* g5 X8 K! }* g( l1 ?' t! Q& ]: p% b
当到达物料速度越高时,这个报警更多,
: T# u! ?; n6 T. C+ k2 E- b可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
3 ]+ i1 X0 m& }/ E1 l% c% |程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?: F: L+ w) M+ ~9 X; P; Y9 ]
+ R, e3 y6 g' d  q3 j
另外一个小建议,就是move,所有的move都可以这样
, s5 D$ F- _6 y% M* K5 ~if not move() then debug end* V, T8 `1 B/ A& Q
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
2 }1 E! |' S, O; D$ d2 d. ]plant simulation中的free libraries有AGV模板,4 b, l$ G9 ^6 a3 I
里面也有案例。3 D8 T0 `$ H1 h6 `9 h! C
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
8 I& m5 T  ^' R8 ^. T6 o& ^- [% p# g* Q
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
& \6 l! ?1 \5 I6 G2 B% i4 \+ v) [/ m3 d) @5 K: v
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 / b4 o6 b4 p, M
这是AGV_putin中arrive的method。2 ]" _, U5 u7 g2 y& J+ c
/ p2 ]! V, S/ s' H" N
当到达物料速度越高时,这个报警更多,
* P: |  v- {- `6 ~$ y  D+ K
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-26 21:54 , Processed in 0.012603 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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