设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9626|回复: 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: d3 k9 X8 T
*/
! @8 Z1 i  [' \% Xis( F/ \% v: A6 b% }6 A& w3 T/ x
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
+ _3 L1 ?$ `8 x0 M  H+ Kdo
( n* L- u) z( [8 z( W4 Q- ?        Lan := rootfolder.Internal.Tools.AOLlanguage;
6 J+ d& U! i# E6 @5 X+ [2 Y        if current = @.Destination -- else return3 R* w+ t* S1 ~; r8 o
        then2 L+ n! V: c# R# ?
                @.Destination := void;
6 n5 _% |7 _9 D% V, r" s+ \' a" b                if @.occupied then
8 a( b. b8 ~8 i' L                        part := @.cont;
) ]0 E6 ?, H: W2 I- ~5 B! j$ ~                        @.transpOrder := void;
6 Q* F' _4 q: J. Y9 Q- H                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,. h  ^  G& |$ Y9 }0 G
                                @,root.eventcontroller.simTime);
1 e6 `4 y+ C; @7 _0 h                        @.HasOrder := false;
2 j) S, T, R, o                        @.DrivingHome := true;  R3 ^8 d. H8 f$ d4 R3 P& `7 j2 H
                        rgManager.tryToStartTransOrder;* Z2 P0 M) Z( Y: N  P
                        if @.Destination = void
, ~( {' l' ~& O7 I& k                        then -- no transport order for vehicle @
/ v7 }' ~% f9 I* T$ m) g                                @.Destination :=2 O& ~" @+ p1 R' _3 d+ @3 H
                                rgManager.nearestFreeStation(@,track.~);* h( |; `5 X% y+ W0 u5 }
                                newDirection(@);   
  _5 i/ c- o$ b: |                                if @.Destination /= void then3 N+ K! z  n+ Y+ x$ j
                                        @.Destination.NumReservation :=
# C, h; m6 i: l4 j8 ]/ a                                        @.Destination.NumReservation + 1;
4 v3 s" _0 L7 ^6 t1 K8 ~7 S; J, S                                end;, ^* S0 L' ^: b9 J# s
                                @.CurrIcon := "drivingHome";
# Q- c7 s3 y! U# P5 F& ?. Z5 q' a                                @.DrivingHome := true;. g+ W5 @" g- t( e, Q
                        end;  r: O) j2 x: A: ~  v
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
% M9 _' T+ ]# @" m% |' D                        part := @.transpOrder;: ~6 T9 Q% D; D, \4 A7 t
                        part.move(@);-- load part
- @% ?1 s" O! n/ ^                        @.CurrIcon := "load";
6 {6 d! `; W4 J1 {2 |0 m- ?; g                        GlobalDistObj := part.globDestination;
( b& b1 o8 D* p) v& t3 K& g0 f- M                        assignLObj := rgmanager.rgAssignL;8 m9 }; I' e" c( D# X1 K# J5 |& t
                        row := assignLObj.getRowNo(GlobalDistObj);
5 \& x" [2 g1 L0 s! G                        if Row = -1 then -- since 70
7 i# M  h; v8 M/ L3 p3 F                                if lan=1 then
- `9 l, A- v3 _/ U4 H  r: l+ G                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
2 w9 o2 I. D9 @! D- O' o/ R' S                                                to_str("in der Andockstation: \"",?.~.name,"\""));
7 }' |3 G( v; |                                else
( i1 d$ b: u. v                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
5 b8 y; i! y, i9 ^4 m. {                                                to_str("in docking station: \"",?.~.name,"\""));                                7 I+ X8 ^- O; n7 k+ A! t
                                end;
- u2 n3 w5 Q1 @% z$ T& o6 `' H& ]( U% f                        else0 y# z3 U) t( {, i
                                @.Destination := assignLObj[1,row];" p0 j2 a/ Y1 j; G  m2 M
                        end;                       
" t  o) T$ }. b1 ?- `3 D$ I                        newDirection(@);' d* a& @! [* ]# ~9 h& a
                        @.HasOrder := true;
; B1 \  x. H9 x) j) q* |                end;6 I; m: K) S( l" c8 |& W# t" Q
        end;" U- U& i( q* A% T+ @9 k. M
end;        -- of the method
9 f; [; w; x3 i& f6 B
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
" h$ Y' e' G  i8 |' n7 Z% f4 Z" D. r$ A' L) ^( p
这是AGV_putin中arrive的method。* F3 q/ t4 t+ f2 H/ [* M

- o: o' d; y  Y5 n+ e7 m1 g# Z当到达物料速度越高时,这个报警更多,
4 i; ?. V6 \' Y  L3 V% l可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。3 G$ F/ e$ z/ k/ Y7 T! e: h
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
; A& V, x; b$ z! [2 L0 E) M6 s" E( Y* |8 o8 H/ K3 g. |1 E
另外一个小建议,就是move,所有的move都可以这样* w% v$ F) w/ n$ |
if not move() then debug end" i1 K+ P! b& q2 R. `& U0 }
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。1 c. b: X2 }( x$ s  P+ {( w+ s
plant simulation中的free libraries有AGV模板,
. }0 d5 Q# R! {5 ^里面也有案例。
/ @* j. {2 ?7 Y$ H我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。: z8 g# }1 H- L/ h/ D, _: y0 `" O

" X1 B+ U4 z2 Z$ o我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
" y/ b4 g5 o, Q% _4 @5 S
" \) E9 S' I7 `3 X: R* `那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
+ y) i% H4 S, h4 t这是AGV_putin中arrive的method。
; j: T3 R- l" d* g. c" g0 a8 m; c" u( B* e6 R" n
当到达物料速度越高时,这个报警更多,
+ t& k0 D! c: Z  O
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-12 17:03 , Processed in 0.021081 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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