设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9109|回复: 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'9 ^% F: o+ u' n2 I
*/
) J' N; D( H6 V' _! y2 |2 cis" K/ Y5 a) N- T, Y
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;! Y" X' r- u* F6 U7 t- K( ?
do
' O/ I  K# H# d! [+ X) J2 ~        Lan := rootfolder.Internal.Tools.AOLlanguage;( x0 ~; k; b" o  q+ `
        if current = @.Destination -- else return& }2 J3 z' r: D3 {5 ?6 b0 s5 \
        then; F3 w7 _9 p4 ]" O
                @.Destination := void;+ a" N& F: a2 ?# h
                if @.occupied then3 x; w: K  p$ G! H; {$ R
                        part := @.cont;% @" o5 H2 |( L! Z
                        @.transpOrder := void;
" V" y: S# [) m% u9 @7 T1 F+ D8 x; a                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,( ~$ J$ z: X6 q8 h& d1 g3 \
                                @,root.eventcontroller.simTime);
% X) N+ e6 F; P$ j; b1 o- H9 u                        @.HasOrder := false;
8 w+ r; M# `* `4 E( i                        @.DrivingHome := true;2 t: y/ I/ H  ^
                        rgManager.tryToStartTransOrder;, ~% d5 M: `- y6 ?
                        if @.Destination = void
' H8 L/ D; R/ U( R8 p                        then -- no transport order for vehicle @
% i9 D, c0 z0 E8 s                                @.Destination :=$ \& @2 M/ ~* J" y0 Y
                                rgManager.nearestFreeStation(@,track.~);' o& S4 I3 G) c  g9 k6 S' y* i
                                newDirection(@);   
9 d  L2 P9 ~# T% G/ y* @  Q; ]                                if @.Destination /= void then  o: P0 `  a& s5 m& a$ V
                                        @.Destination.NumReservation :=
" O7 a7 o8 _$ e: h9 F' c                                        @.Destination.NumReservation + 1;# |, m4 [. |, A& K# Q( Z
                                end;7 n( ]( t6 [, g/ }0 T
                                @.CurrIcon := "drivingHome";8 R! d; X5 @/ K: y) [
                                @.DrivingHome := true;" e& V' n1 B* n2 A! S. Y8 n! Z$ i; I* F
                        end;
1 l, ?* T& F6 q                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
& M: B% E) x! [# ~/ Y                        part := @.transpOrder;# _  ^4 k7 _5 z5 K
                        part.move(@);-- load part
3 f  C2 P+ w) k# I                        @.CurrIcon := "load";# w! M9 N5 ^5 |2 a
                        GlobalDistObj := part.globDestination;
$ Y4 R% O, u, P. u0 K7 k" m                        assignLObj := rgmanager.rgAssignL;
4 g- g( C$ ]  [) W* b                        row := assignLObj.getRowNo(GlobalDistObj);
  m# b$ T/ ~8 W: o, N                        if Row = -1 then -- since 70
, S0 X$ s& S9 k# ]' y                                if lan=1 then
$ R" `5 F9 x- b$ {2 a- f6 {& Y1 j                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
. H( V. ^) O6 V8 W3 s2 S1 h: j                                                to_str("in der Andockstation: \"",?.~.name,"\""));/ V7 g- D8 i/ |" n
                                else
6 v0 ~8 L4 [, {/ ?7 T                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),4 _$ B, ]! o8 c
                                                to_str("in docking station: \"",?.~.name,"\""));                                + Q# _& }# R! }" L
                                end;: K2 ~1 l, C) L
                        else6 ]3 T% e8 L% L6 x- v/ |
                                @.Destination := assignLObj[1,row];
3 r9 g4 K# F/ j# U* z5 w6 {! r                        end;                       
1 D& ?- n5 V2 B' B3 d$ d                        newDirection(@);6 `4 H! e0 S0 K7 B
                        @.HasOrder := true;) H0 t' e" L* ~3 Q; L$ ]
                end;' y' A" u1 H" o& E- l5 H
        end;& e  \# r! e- J3 R% \1 _
end;        -- of the method1 v. ^. V" |1 `, s2 r
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
0 g* I6 f9 R( l( v  o2 j
% n! V( N* d9 o这是AGV_putin中arrive的method。
) Y+ p. ^( D' ^; [' e/ B. ?6 h+ S+ |- Q& d5 C% T" C6 B, i$ w- H1 }
当到达物料速度越高时,这个报警更多,) s8 W* Z3 c3 J6 E, x( C7 j
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
( Q( M) I1 o) t程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
4 Z1 ]0 I" s& E6 p2 H- P* c8 ?  N0 K7 ?* E7 C' J- B
另外一个小建议,就是move,所有的move都可以这样6 T; Y% b* z% O3 d1 A
if not move() then debug end  X3 k# ]/ N! i/ M' n8 t: d
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
' Z1 |: |; `( i/ P) w: splant simulation中的free libraries有AGV模板,& W8 U" x) ]' c( S
里面也有案例。
& `* |5 ^7 H+ t我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
! J9 d- p3 ?' o& L
* C1 v9 T7 W. L5 f/ E3 M  C我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
0 \5 I% }" _! o
" A& }# d0 P) z: M2 \那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
& A6 B$ `& E8 c" B& B. c% C( R这是AGV_putin中arrive的method。
: K# \! D+ e- M; k+ ^3 T8 H9 b  x" V  ~# |8 P+ I4 y
当到达物料速度越高时,这个报警更多,

* x2 O1 ]$ T; V  f2 \3 j3 J另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-14 05:46 , Processed in 0.020823 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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