设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9773|回复: 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'
! `6 X  N/ `2 h9 b*/1 u& Y1 K/ r  t' B( X, U5 K5 F3 ^
is
& R% `7 k! a! d+ }        part, GlobalDistObj, assignLObj:object;row,Lan:integer;/ H1 h0 R1 n' c2 N: X- I- C
do! x5 b! K+ O, n. K5 D  u( `. z
        Lan := rootfolder.Internal.Tools.AOLlanguage;
) n' K' M  {7 m1 `* q; O& h        if current = @.Destination -- else return! p8 y5 Z/ ^$ H5 F0 V. l
        then9 X% y; k+ G! `2 |, T) d
                @.Destination := void;
) t4 D/ |. e2 m; Y/ E                if @.occupied then
$ J9 \' `, e# h0 t; j                        part := @.cont;: l1 f, R, R. J2 A! E3 O
                        @.transpOrder := void;( K2 Y1 y. h# w/ n: C4 p9 ]
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
9 M5 g5 O6 |  s! I0 d                                @,root.eventcontroller.simTime);1 T4 ^7 o+ N% l
                        @.HasOrder := false;/ G3 a1 e: d; A5 J  s% N) A3 Q
                        @.DrivingHome := true;
- }( W/ l# r" z9 W                        rgManager.tryToStartTransOrder;
7 b& l- D8 U( q" R# U* L7 P8 _* j                        if @.Destination = void
9 R- q* o6 t, t" c% T; b( ]                        then -- no transport order for vehicle @
- S$ [( i  G7 f( E                                @.Destination :=7 u9 `. Z! ]- l0 c; s  L
                                rgManager.nearestFreeStation(@,track.~);. K) Y* V. h( G9 G; d
                                newDirection(@);   
* ?% S; q; v9 g9 w& Y. w: C                                if @.Destination /= void then( Y. b6 l, C. c" r( N  I3 I
                                        @.Destination.NumReservation :=3 p! j: Z1 x, A9 e0 O
                                        @.Destination.NumReservation + 1;
0 c; b5 H, T2 P+ ^6 k! k- p1 a                                end;% L: L* ?' N5 I3 E0 j
                                @.CurrIcon := "drivingHome";
/ H5 L& E" _) g                                @.DrivingHome := true;
; V5 F/ r% T8 K7 g" h* q; i/ `4 \& _                        end;  r- I$ V) S6 h, q% O8 S2 h7 ^& R& K
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
! b' j8 s% {* F/ ~  j. K) U5 z                        part := @.transpOrder;
5 b& r% t' X1 G                        part.move(@);-- load part
6 r" Q% p( v# A$ U8 S. g; I' |                        @.CurrIcon := "load";
* a" Y  u! D3 a4 D                        GlobalDistObj := part.globDestination;
; d# C1 a/ c0 U- {" m' b  U                        assignLObj := rgmanager.rgAssignL;
3 T8 r" F% T4 x+ @                        row := assignLObj.getRowNo(GlobalDistObj);
2 A. o' ~# W/ `) s5 p                        if Row = -1 then -- since 70  C4 a6 \3 [& N4 T% V
                                if lan=1 then
  L. x2 K  b' I; p' t8 a) v                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),3 u  K# e$ }/ Y/ g, F5 T, s2 M
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
. W" d, {/ S" _" m0 b$ u0 p) D2 H                                else
$ g$ Y" n- e3 c6 j2 l/ ?                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\"")," ]% G6 R/ h; M5 l/ p
                                                to_str("in docking station: \"",?.~.name,"\""));                               
% d: W! k9 ?$ `. u$ B6 F' B                                end;" @# m: O8 N7 j/ _2 V  ]# P
                        else
2 O/ V' \# h2 O1 [6 j! G) A                                @.Destination := assignLObj[1,row];
* H, @& x$ g9 @                        end;                        2 Z' C# k; K( C! r% G3 }
                        newDirection(@);- d9 M( x3 z6 [: r' X
                        @.HasOrder := true;
! ~8 g6 p+ V7 J; ], R+ s4 p! Y1 N+ o" d0 r                end;
7 N0 |) X8 i3 U; o7 M! ^        end;; K  U- S3 a& O- z+ j: y) ^% u* K
end;        -- of the method
9 U% v& k5 j1 G; O1 a$ R1 o
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
' \& I/ B( k& {  \7 J+ ]% G
3 W: r6 [6 T, G9 _* S这是AGV_putin中arrive的method。, m4 r" r1 ~/ N4 l8 f
, y3 r6 z# c& f  ~0 _
当到达物料速度越高时,这个报警更多,
9 @+ S  Q" S! Y" e/ i4 m可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
9 B: G2 J( O- @2 i0 Y$ k' ~3 s程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
7 u: Y7 N5 w% U
$ G* ~# W3 J" |另外一个小建议,就是move,所有的move都可以这样
- b' S( k+ a/ c3 W4 H. @if not move() then debug end! w1 p& O" f; Y( m
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。' B% N6 g! F- {/ ~, \* y$ J( k
plant simulation中的free libraries有AGV模板,
  ], b* ]* G* ~  d里面也有案例。0 B5 G/ I6 n9 E- f# V. a
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
3 j4 n5 U! n) q& P; w5 F" B- y5 e/ P; h
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 : A+ |+ g1 u0 u' n/ `/ L1 l
- W6 u( b  S$ Y# M
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
  O2 J4 H2 d* V& |$ }# N7 ], ^这是AGV_putin中arrive的method。
9 r; E( E5 ~, L& M  e# B' M$ V5 z. B2 p3 M- q: e2 K9 n
当到达物料速度越高时,这个报警更多,

" n1 e' L) }0 V% X# N3 x' k. y另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-24 00:07 , Processed in 0.019217 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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