设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7942|回复: 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'
2 a( H7 Y( o7 K# M3 }) O0 ^*/, c, C. P. k/ A5 `+ ~
is
' i( t6 ]0 ^; I( ^$ V) V        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
% _: w; a  w+ I4 B5 ~do2 J% c" _% n  h; j' _
        Lan := rootfolder.Internal.Tools.AOLlanguage;+ Q, N* A- V, {3 z9 O8 K' O! O
        if current = @.Destination -- else return& W& _( K( d; q
        then7 a7 C' I, n7 i) j* h5 H
                @.Destination := void;
' O, N2 V, C6 W! Q9 R3 j                if @.occupied then5 A, T$ F+ U* m! a
                        part := @.cont;& {; F& L; e: M0 Y: J
                        @.transpOrder := void;
# p4 \( m0 L1 x: ^+ Q  }! _- _" a                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,0 U( t6 K% ]5 K2 H
                                @,root.eventcontroller.simTime);( y. A8 F: O2 K4 M! Z' P
                        @.HasOrder := false;
/ A; T) e) ~9 f) {7 V0 o                        @.DrivingHome := true;
5 P' R+ g5 ]4 ^0 R! w, Z                        rgManager.tryToStartTransOrder;) W3 K& l( }$ j/ m* ?
                        if @.Destination = void
. x! ~" T$ r$ a' B/ @                        then -- no transport order for vehicle @
4 `0 _& z' i3 Z9 P& g6 b' k( A                                @.Destination :=
( `, T: M  g7 Q: r. ?                                rgManager.nearestFreeStation(@,track.~);
) N5 Y* M! `$ F! [                                newDirection(@);   
% M' m  ^( S5 [! A5 B5 z8 C                                if @.Destination /= void then
- X! k+ H: i  K                                        @.Destination.NumReservation :=% I1 M3 L: w  K, e; v
                                        @.Destination.NumReservation + 1;
0 A( O5 S6 S) O  J1 E* h# o                                end;7 `2 ?9 H( l7 s# j. R
                                @.CurrIcon := "drivingHome";
( G+ p" D4 l& n5 B                                @.DrivingHome := true;
% j4 Q9 W$ \- _4 w& V! a% }                        end;; c* S: _4 w+ V/ d8 E
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
$ M; r4 I' f4 d                        part := @.transpOrder;
2 a4 d+ h# G/ r- y                        part.move(@);-- load part, D6 Q; ]8 V$ |  z
                        @.CurrIcon := "load";
" \/ X) T/ a1 a, S                        GlobalDistObj := part.globDestination;
4 S# b% L5 i- @+ A+ O6 T" {1 X  D3 o                        assignLObj := rgmanager.rgAssignL;* c# P" V& ~" u) n
                        row := assignLObj.getRowNo(GlobalDistObj);# b+ h) i$ Z' q
                        if Row = -1 then -- since 701 r1 D2 {! Z8 A8 v% `/ p
                                if lan=1 then
, c3 _4 q$ T, D2 b/ d% H+ g                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
; q4 V2 k  ^* {" V1 y# Q                                                to_str("in der Andockstation: \"",?.~.name,"\""));
3 n9 D' d1 k( B, k% x  Y                                else$ L) y0 V, K% D
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),: Y, X6 E& Q# P' {2 k% d* [
                                                to_str("in docking station: \"",?.~.name,"\""));                               
9 f/ i) f$ E1 `. C1 H                                end;
% S1 r1 _  f) O; O( l( Y                        else5 z, t" I& ?1 C+ D0 o+ _
                                @.Destination := assignLObj[1,row];
0 y0 ~. a5 H3 L" c. _                        end;                       
5 Z7 Q$ S- i3 Z; E" W                        newDirection(@);/ U. w/ V- E( G, f
                        @.HasOrder := true;
6 {3 C7 e6 ~. {7 }4 J- J                end;& X1 ]+ H- h4 H5 Z( P. p! V
        end;4 d2 K: X$ j' V
end;        -- of the method( G& u' W7 D! Q4 Z* f6 O, U
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
2 K5 n4 \, x  I$ D1 q  t( R, _4 a! p: R5 x5 c5 B
这是AGV_putin中arrive的method。
. y1 }' O8 r: N. D3 y
" d# h& @) ^/ Q$ a. o% T当到达物料速度越高时,这个报警更多,
/ D( `; e+ k/ K' j# K2 |/ C可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
( v- v8 m7 A( d7 O程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
2 }  r2 O$ B* C" Z; ~4 N' J9 s7 D+ I) W! J" j# k3 W" E: Y+ q
另外一个小建议,就是move,所有的move都可以这样6 {" U- H$ H! d; V! b
if not move() then debug end7 m: t2 C% }4 U' q# ]9 P
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。8 h2 }6 d5 P. V+ ^5 S
plant simulation中的free libraries有AGV模板,
+ N1 Q6 ~# V* d3 c6 d里面也有案例。
7 L* R5 y- d9 n8 S9 s我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。1 [- K5 Q$ p& W' Z3 U# V$ r
8 ~; ?, O" b; j5 g0 R4 W$ A' D
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
6 H& s! u7 D* K5 {
/ j: v/ Z0 \: {- ~0 A) [8 {' V那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
  X1 g  N+ y' q$ r& y这是AGV_putin中arrive的method。
4 b; p# ~+ U! @  r( X
( v7 q' L& y6 u1 ~0 J  q  J( p当到达物料速度越高时,这个报警更多,
6 f. I( X+ H9 J  p5 M& T  f
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-6 21:04 , Processed in 0.018972 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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