设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8996|回复: 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'
! O# u4 q7 t' u. I3 \1 c+ N5 J*/& b- V$ ^" T# c4 G
is
( S( I8 h1 E: E  S3 x/ \        part, GlobalDistObj, assignLObj:object;row,Lan:integer;8 i% y# O$ D0 N; |) N8 e3 Q
do  p, E) i+ C# H' c5 @
        Lan := rootfolder.Internal.Tools.AOLlanguage;
# {6 o% q( x$ m( X        if current = @.Destination -- else return' b1 R. h* {" [* J7 F) t( i5 \
        then9 f1 ~% V& m3 D" A! k  S
                @.Destination := void;
$ K' g$ P' _2 y$ B( C! Y                if @.occupied then
7 \: }; q& L" j# l( H                        part := @.cont;
+ Z3 O; s& r3 P  m- m6 Q                        @.transpOrder := void;. G- B# k6 S. @5 d& s
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,2 Q7 M- [: l' g( z3 |7 `4 ]
                                @,root.eventcontroller.simTime);7 x$ S6 Y8 y: M8 p3 v
                        @.HasOrder := false;" F- Z% O8 O7 g$ ~, n8 c* l0 p; M
                        @.DrivingHome := true;
/ R: ^* e4 ~* i* y                        rgManager.tryToStartTransOrder;
4 N& i) \! |" `! Y7 A! w9 P) [$ g6 l                        if @.Destination = void
9 {8 C) [. s( `. K# M& M, a                        then -- no transport order for vehicle @" A# k& A" l# C1 j+ h
                                @.Destination :=" U! v/ }  k# a  a9 H
                                rgManager.nearestFreeStation(@,track.~);
; O' D7 K: H6 I- Q" k6 Y                                newDirection(@);   - g# N  x/ r( y; _2 r9 W
                                if @.Destination /= void then
  h; z9 w) K& }' _/ _. N! m- d                                        @.Destination.NumReservation :=
' `& H+ Y; S( H4 s# f                                        @.Destination.NumReservation + 1;) d6 ]( u2 S( E* X
                                end;  T# @' B6 R4 ]* |1 t; t/ }
                                @.CurrIcon := "drivingHome";
% D5 X0 {2 c* U# i                                @.DrivingHome := true;4 B# h( _5 P4 H9 u& I- e6 J
                        end;
  G1 f3 B) y! i0 p; n- b                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
. f0 \- @7 @0 w: z# t! m                        part := @.transpOrder;
; A: A4 C; U8 a                        part.move(@);-- load part
' \7 d! s$ E4 j1 R8 g                        @.CurrIcon := "load";5 v$ W& W; c- c" V$ O
                        GlobalDistObj := part.globDestination;$ v3 c! G& D  d- X9 ~5 C7 b
                        assignLObj := rgmanager.rgAssignL;
' [; Y. x) C: c. {2 Z- H                        row := assignLObj.getRowNo(GlobalDistObj);* e3 n# l& T0 K# G  w3 l! @7 ]: Y
                        if Row = -1 then -- since 70
5 z' q. c1 k: a6 S6 t                                if lan=1 then+ C4 |/ I3 }- T  u9 z9 D6 k, Y) U5 y
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
+ A% N- u/ g  M3 C* z. B. j% y2 S                                                to_str("in der Andockstation: \"",?.~.name,"\""));
! u) H; E* ]) ^                                else* W0 i9 x+ \' v5 i* t( \
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\"")," l1 G& L, A- d3 X  B  D
                                                to_str("in docking station: \"",?.~.name,"\""));                               
: a$ x2 J- s' }( y( C1 ]                                end;
. X$ Z! O  }* _+ l3 _/ A( P                        else
3 V: c8 }7 Z, j& ^/ H8 v                                @.Destination := assignLObj[1,row];( Y1 I' u" I- L9 R/ E
                        end;                        ; ]! x. c9 s- x* o/ z
                        newDirection(@);* S4 w7 G  ?( E1 l5 I
                        @.HasOrder := true;
) X0 l5 Q& }' L# M                end;' C: S# I* m  r6 i4 p
        end;
( b0 w- u6 B+ C; Rend;        -- of the method
5 I! I( i' ^3 i, O0 U
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 / B# J. Q/ {- }4 ]% i$ H
7 T% A# v/ h$ B" m- w3 N
这是AGV_putin中arrive的method。1 v8 u! i; p( P

" H# d" @0 u$ j- ?- Z% N' O2 g当到达物料速度越高时,这个报警更多,
; D& E' y5 ~7 O可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
" B7 [8 W( r6 c' L程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
- b* U% m& D) x, S; o+ d! m) A' S
8 t% K& F2 Y7 G) ]* O& f1 e' H/ p另外一个小建议,就是move,所有的move都可以这样+ ^; E0 L7 @. v' o
if not move() then debug end: g7 h, l# r  n: `; m8 _- o
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
0 V- J1 r: X# I$ |plant simulation中的free libraries有AGV模板,# T! P" [8 {  |$ X0 M0 g
里面也有案例。
, z( Y# y1 i6 ^* m4 J+ F! H我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。7 g5 @4 n; {. P6 N+ P

  z. U! Z8 F5 R: s) B0 H我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 # X* V' x' e* _- ]" h
6 a- Z5 R7 @" r2 _$ }& V
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ! R1 _: H2 y% J
这是AGV_putin中arrive的method。& l4 y: ^* W7 O" U4 V
/ T2 b% V% p: G+ o2 S) r* }- d# }
当到达物料速度越高时,这个报警更多,

- I5 _; F- d4 ?另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-8 04:54 , Processed in 0.015208 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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