设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5469|回复: 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'  w- b4 Q% }% p' B8 d9 E
*/% r/ l: v3 E# }# T7 `5 D. p
is6 E4 z. [) H; x+ j; ^
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;9 B# [# B% N! d4 C% b& ^0 I
do
' @* {6 T! O" T( _4 q        Lan := rootfolder.Internal.Tools.AOLlanguage;
  t& p; q) q; `" V5 k5 P8 \, o        if current = @.Destination -- else return% t  y8 `2 r, M7 J/ m& D5 P) H/ N
        then
' S# j/ O5 V* P' m0 b                @.Destination := void;
2 s# v, J3 O) e8 o5 b( J                if @.occupied then+ o* _* G8 t% _7 }4 E: w
                        part := @.cont;
4 F$ u5 m; {  a: z* d3 c- i' m! y                        @.transpOrder := void;, _4 e! _! x$ B% N9 {8 h8 b
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
, `* A+ ~& J" n3 m2 w                                @,root.eventcontroller.simTime);
1 z, s1 }1 q; r                        @.HasOrder := false;
/ J" f+ F. B' W0 k0 j                        @.DrivingHome := true;
' w. v8 {- d. l5 ~; M' g& M% J7 m+ u                        rgManager.tryToStartTransOrder;) E# B0 P  f6 j
                        if @.Destination = void; }7 K% [/ C8 }4 p
                        then -- no transport order for vehicle @. {) J: F- d9 B. e8 v; r$ y
                                @.Destination :=2 \% B+ @2 a2 A2 C
                                rgManager.nearestFreeStation(@,track.~);5 ~( v1 e: p; i
                                newDirection(@);   $ [# y3 ?) t7 C9 m- i0 X: H
                                if @.Destination /= void then
5 D) R/ O: k0 \( p* I# `8 l                                        @.Destination.NumReservation :=( `% @2 ?% X9 R% G
                                        @.Destination.NumReservation + 1;
  Q& e$ G% x* }                                end;) ^* y) X4 t: U, L
                                @.CurrIcon := "drivingHome";
( D, R0 b) l' C* i+ ~                                @.DrivingHome := true;4 r8 s: J1 i* j! o" Q
                        end;3 I8 @: s7 X- O) M$ m: e
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
. g# F2 R: }( d; Z, A: v, {                        part := @.transpOrder;
4 t7 @. Q0 {: y' \8 ^+ `                        part.move(@);-- load part1 r7 U  R0 @# D+ `7 Q0 \
                        @.CurrIcon := "load";  x; |7 a9 d7 U9 g9 z* L" S( a! v4 S, @
                        GlobalDistObj := part.globDestination;
4 E: U9 ~2 R6 U0 i5 W+ p! Z                        assignLObj := rgmanager.rgAssignL;$ u$ ]9 }5 M. ^" }, o6 Z
                        row := assignLObj.getRowNo(GlobalDistObj);0 U/ t+ F( _9 v& \& J* `
                        if Row = -1 then -- since 70& w7 O$ e) N, q0 B+ ~& C
                                if lan=1 then
, q. R3 N; q! F) X                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),! S6 u6 Q0 c5 J, v' b( D+ p" p$ ?
                                                to_str("in der Andockstation: \"",?.~.name,"\""));2 c9 L# X+ b/ E# ]$ C
                                else
# f2 A- D$ N4 z9 Y6 S- r( W. a                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),+ l, r' [: V- j; i1 m- @( w
                                                to_str("in docking station: \"",?.~.name,"\""));                               
* n) z' C* _7 G9 @) X2 C2 k                                end;8 h/ `" U" j  B$ N( B
                        else
3 A7 r# [( S* R( M) S. V- J$ J$ s  D                                @.Destination := assignLObj[1,row];3 [7 g7 U6 e# ^
                        end;                        & p  g5 L9 Z, S! r$ w2 p$ A5 Q1 f
                        newDirection(@);: F* p. H) G3 A8 ~' U  |
                        @.HasOrder := true;0 }" y" i9 v" ^. p% D
                end;
4 p' R9 y3 D/ v( `" f' y        end;
% A# t+ c! {, wend;        -- of the method
3 u9 [1 Z9 L- N0 ]( G) f
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
2 s& X+ ^, K) ^* C3 f! V
( e  N) T, _% K* M& d0 s. }这是AGV_putin中arrive的method。
7 _$ o/ D6 p. n: F( q
- Y- P, x( D' _/ V5 _当到达物料速度越高时,这个报警更多,6 r: ^9 e% @+ S- C. m  }; R
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。. ?: x, y  E, A8 b6 [; s8 w; P
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
0 P- E# r( _4 |+ r- B7 J
. t$ j3 R' g: C$ }/ @) Y另外一个小建议,就是move,所有的move都可以这样# c& c$ _; j, A! {3 X
if not move() then debug end
" `* C  z9 _% @6 R% N7 R- c, `这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
6 X. [  n1 b3 B; eplant simulation中的free libraries有AGV模板,
) o' X0 w; m' p( Q5 j" r3 s4 }4 V里面也有案例。
7 h# D+ v# ?4 \& _我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。8 x: u" f' k5 n6 y

  X% R7 B. z8 S, z1 d  Q2 I我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
& \: d3 r+ l' v* }4 ^3 m; M5 i  G. K6 c  b6 \5 E+ U% c
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 , e8 u# c2 P5 k" |
这是AGV_putin中arrive的method。
3 y" {# E, W, U, V+ k- K/ v' j) ]. [; j& v( N. f
当到达物料速度越高时,这个报警更多,

9 z, f# W' B3 @另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-25 23:31 , Processed in 0.019994 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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