设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9811|回复: 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'
4 l6 |* V. s( |1 |*/% D  U+ v) R% j/ u0 t
is
( Q; g$ q' y4 @( X        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
* v8 s- v, l6 m- D+ n! D" sdo
% J  e- \' C; |6 y5 ?9 v$ d        Lan := rootfolder.Internal.Tools.AOLlanguage;( a* z. u4 i& V* @
        if current = @.Destination -- else return9 ~5 R8 M' x; D) U" D& [
        then0 d/ s! d0 ]. a7 M! O  T+ o
                @.Destination := void;
% M9 e4 d0 c/ C8 L7 i                if @.occupied then
% S4 Z1 @; r" H& Z2 ^                        part := @.cont;8 t  K6 [" P- z: p
                        @.transpOrder := void;
, k3 H0 M; _3 `2 w. a# y( j                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
5 U  `, a7 Y" H3 W                                @,root.eventcontroller.simTime);
0 m. L+ P5 b# g) e; p. Q* C                        @.HasOrder := false;+ |& h6 y( f, ?- Q' S
                        @.DrivingHome := true;
3 }0 D# l/ [! d3 x! h0 p. N                        rgManager.tryToStartTransOrder;
; J. {' g5 h* z# s  t                        if @.Destination = void3 A' h& t" _# k, u; ^$ \" F
                        then -- no transport order for vehicle @
  r, P& w, u- ]                                @.Destination :=
, ?$ z, O& D8 `                                rgManager.nearestFreeStation(@,track.~);1 B2 m8 ~9 d1 q/ r) K4 T8 I# X
                                newDirection(@);   4 Q) f7 _1 I. R
                                if @.Destination /= void then7 p$ n: w2 e- j" l- _( [$ Z
                                        @.Destination.NumReservation :=& A; w) E' g. V3 U: M9 m
                                        @.Destination.NumReservation + 1;
& W+ z# ^3 D6 m. s* y* L' P                                end;
+ B0 c: O9 [+ U+ J; t' ~4 {                                @.CurrIcon := "drivingHome";% \8 n5 a  _. S! Z0 \  v& g6 q
                                @.DrivingHome := true;
& W' y4 s- r* Q; @0 T& V3 G% f                        end;7 v8 h: S  p; x' E+ d0 E4 n' |% u
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
9 w7 R$ ^. q% Y7 W( B3 \2 o                        part := @.transpOrder;) q, P" q& W3 f
                        part.move(@);-- load part/ D3 b8 J* f" X2 o, _& z6 g8 J: c$ P
                        @.CurrIcon := "load";
0 w& R% {- j. T! F                        GlobalDistObj := part.globDestination;& I% R! z& K! J- u' V8 q
                        assignLObj := rgmanager.rgAssignL;
6 \, E6 y! L7 i& S- i# A6 X                        row := assignLObj.getRowNo(GlobalDistObj);' W: [3 l2 ~3 b: ~" I$ y
                        if Row = -1 then -- since 70  S9 W) s3 x+ U8 t2 T
                                if lan=1 then5 W! d) ^1 _5 {2 ^' m, e
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),2 @& v, V2 m) S
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
, n8 U! {1 D8 [$ W( O                                else
- c' x4 v! q- o+ C4 J- k" H: I                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),# ]3 Q! H9 |  F# J9 w
                                                to_str("in docking station: \"",?.~.name,"\""));                                + N) k7 T% e( ^( Y
                                end;
; w: y- \+ o6 C/ F- X                        else
- \0 z2 ^+ G7 B1 r( p                                @.Destination := assignLObj[1,row];* f7 ~9 K  V. @( B8 W
                        end;                       
# M/ A8 u; \" U* E                        newDirection(@);- |6 E( s* A% Q- F. U' r: f
                        @.HasOrder := true;2 P- |5 Q1 R% S
                end;/ S# R9 a$ N# B+ F8 w4 }3 b+ _/ E
        end;
* q- a" }; j1 C" M  Mend;        -- of the method0 [" j* e' L; i, r6 u; I$ a' c( p5 A
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
- {/ N3 A9 t& s  ^- ?9 N2 W: D
这是AGV_putin中arrive的method。
; \6 i8 x; u) q  |+ C8 H  m0 S
' X$ E' d$ x; ]. o. G当到达物料速度越高时,这个报警更多,
6 s6 Z* P* c: ]/ H0 P0 h. F可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
+ s8 L6 u6 e* T, ~程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
, ]) v& s& W5 t/ Z: p
* `6 W: C, U& j: @+ P* f9 @另外一个小建议,就是move,所有的move都可以这样- w# B1 q0 {  n0 p+ t, U- v
if not move() then debug end  a: w; u9 [: K, g# [" j
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。! H* V) z1 q# f( c( v" C
plant simulation中的free libraries有AGV模板,
4 o0 ~: l0 I% T里面也有案例。
* |* Q$ k; O! y8 [; R9 w# p* m我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
( Q! u  ^. ^' u1 A2 p! m0 r, g5 K9 m0 j! E& r$ I/ ^  C
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 " l6 ^; [- d' _" @! g/ [# H

/ E4 `: Q  i& e$ ~那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
/ k1 [' T6 A0 p这是AGV_putin中arrive的method。- ~8 v% ~  G6 ~& x, a( W' H# V2 u
, t! y  M! D/ o$ ?! P. E1 F
当到达物料速度越高时,这个报警更多,

9 q! P+ J/ T1 k' ^; G% v另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-26 21:21 , Processed in 0.025909 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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