设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9548|回复: 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'' C6 [. c( t1 K0 V
*/) E0 d3 p! Z' k2 F( l$ l8 I! Y# o
is
# r, z. w, {, j" j* g0 ]0 Q        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
9 s. }2 ^/ D" R  [' \# ado+ x& P0 R8 f" _$ x$ t& k
        Lan := rootfolder.Internal.Tools.AOLlanguage;
6 m7 b* X! d. F, l& F        if current = @.Destination -- else return
" l/ u$ ^6 _- T( r        then/ Q  v$ \6 z  w" T
                @.Destination := void;# F1 Y$ Z* W' \2 D+ `
                if @.occupied then
/ i! c3 y4 ?( F5 I" l& w: \) I5 _' F                        part := @.cont;- A2 K* |$ m1 w, b4 S
                        @.transpOrder := void;- c1 p8 Q6 f2 b% I8 p0 K
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
0 X7 w$ ^8 R6 R$ Z: H. `                                @,root.eventcontroller.simTime);
) h( e- V$ D( T- Y4 Y                        @.HasOrder := false;
% d8 ]  s1 \4 L+ v                        @.DrivingHome := true;
% \6 k2 H1 H# \' J( ^                        rgManager.tryToStartTransOrder;
" [; n5 B1 k, O7 ?% b5 Z  w                        if @.Destination = void# Z7 u& W" z3 n9 G
                        then -- no transport order for vehicle @
2 r( d; j1 F+ C4 g& I  S) z                                @.Destination :=8 B; O4 }9 s. K* R
                                rgManager.nearestFreeStation(@,track.~);& Q" n( |- w! q9 E
                                newDirection(@);   
: P) p& J4 j" e  t: w9 h                                if @.Destination /= void then0 I0 K* C; ^) o; d& Y( Y$ T' G$ o
                                        @.Destination.NumReservation :=' C" n9 p, G: T" D% J
                                        @.Destination.NumReservation + 1;& x0 p; z& J! a5 g5 ^  I
                                end;! q( p9 N  |- Z3 ^
                                @.CurrIcon := "drivingHome";! U3 v3 `* \. g8 t
                                @.DrivingHome := true;
5 g* K& @/ |) p: b4 G$ V  u- G. q                        end;
4 {" v) V6 S$ Q" _$ ]& V( D. H* Q- b                else -- the vehicle @ is empty, both vehicle and part are in the same dock station0 m6 y8 ^+ z1 n# J( B
                        part := @.transpOrder;
) r5 c' [0 q0 s4 |$ i                        part.move(@);-- load part
4 J9 @5 S% t5 r5 b  N# P                        @.CurrIcon := "load";
9 U& q+ A1 X* W8 J' n2 w& c                        GlobalDistObj := part.globDestination;; t' \) v9 l& d5 ?+ M, c' }
                        assignLObj := rgmanager.rgAssignL;" M- B5 d! X7 _( y& G% D$ d4 h" H& }, c
                        row := assignLObj.getRowNo(GlobalDistObj);# y( [+ Y7 c% f) M, i# D3 u
                        if Row = -1 then -- since 70
$ T4 c$ b$ q4 p% m' b; |                                if lan=1 then1 a" `4 h' e! [- k
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
5 F9 @3 s. \) ?4 X                                                to_str("in der Andockstation: \"",?.~.name,"\""));
# {. G. L; f6 p3 g6 F4 V( T                                else
7 {! q, v9 ]7 u& s+ {& S4 }% p                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),+ u) \  j# S% s9 r
                                                to_str("in docking station: \"",?.~.name,"\""));                                $ _. n5 `/ e# N! A
                                end;
$ L+ ]9 ?6 L( T& y) q( l3 S                        else6 T) V) q6 t1 y! f+ b' Z3 A6 Y
                                @.Destination := assignLObj[1,row];
2 B: r* P3 Q1 F2 X1 Z                        end;                        & |1 n, d  Q# v; K& f
                        newDirection(@);9 Q6 f+ n* P6 K- P+ y4 V" q0 f& l  t
                        @.HasOrder := true;0 c0 V9 |5 o) P# x3 m6 B
                end;5 P" b3 G9 F- s6 c0 j
        end;
; O! P7 c) d! A! I% |" oend;        -- of the method
' B: W, q: H) ~
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
5 D/ {! m& l% F" R5 S* `5 v) c
( j. x0 k' n+ A* V* ?' }0 F  [这是AGV_putin中arrive的method。* O$ ], {+ ]3 O, ]

- ?1 e$ p' Y( i7 n/ k0 V, r  \当到达物料速度越高时,这个报警更多,
& u. N2 I+ o) p5 ?可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。$ V- r3 v5 v3 l; {: U1 D
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?. I1 |. f; N+ p0 _5 Q) x

7 x$ B5 b, O  a' A- X( h另外一个小建议,就是move,所有的move都可以这样
1 v" N8 x. |" i/ P! g% h4 X, Uif not move() then debug end
  v- X' ?7 |! O! M这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。$ f% f* f, d6 O8 C5 r: N
plant simulation中的free libraries有AGV模板,9 n0 J4 `5 b& D' I5 s- H* c
里面也有案例。# o1 [. N0 u6 x; {. G7 D5 k1 ]
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。! o4 h- w# X1 C8 F
# B$ x! g& h3 X# W
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
: G; ?% {6 G' C: Z2 d% J/ u3 a6 `6 W* j$ \8 X% [
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 * e+ w/ @; R$ ?
这是AGV_putin中arrive的method。
+ Q8 p2 m5 @) \4 {, ^
% J  l! T6 G* ?5 f; r当到达物料速度越高时,这个报警更多,

* u4 o5 c6 d3 Y. |! L: n  B# _另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-7 12:36 , Processed in 0.019213 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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