设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9371|回复: 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'
0 U, F0 R5 R8 |% U  s*/6 [* O( K( X4 ~( Z+ k/ M3 r
is
% L; U( @, W# r0 j: h% k        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
+ `6 q  S8 ?+ L# }5 T9 jdo
7 b  r" t# Z* l; |2 `+ d+ c        Lan := rootfolder.Internal.Tools.AOLlanguage;
* j7 A7 x7 d) }9 M" Z% L        if current = @.Destination -- else return( q; @! p* S; r) \; F9 V
        then# n( ~+ |) O; f& E9 J1 ]4 |# I
                @.Destination := void;% T  B$ Y: J. }  J' c. \: ~
                if @.occupied then
. S0 M; ^, N5 h* K) q                        part := @.cont;1 n, D. G, o3 }* e
                        @.transpOrder := void;% S2 ^% f) p1 N5 `, M  m
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
4 q3 ^: A: I3 [  B# p, D1 s2 `                                @,root.eventcontroller.simTime);2 J! ]5 r) l5 h2 c9 ?" H
                        @.HasOrder := false;" K% T9 O) _/ `' R7 s+ i9 n
                        @.DrivingHome := true;  Y2 `, `( d* n# p* V2 W9 ]& ]
                        rgManager.tryToStartTransOrder;6 h5 L5 i, b! J
                        if @.Destination = void
4 {. T- Z% ?5 W! `4 |( o( m! ^* N                        then -- no transport order for vehicle @
3 z6 {4 \1 y. W5 e; j4 Z7 N- |                                @.Destination :=
1 B5 J& s: t0 c0 M0 D( B                                rgManager.nearestFreeStation(@,track.~);
* d6 w; ~0 ?8 m: F9 F% u2 X                                newDirection(@);   
' R0 K1 B0 v! U0 g                                if @.Destination /= void then
8 X; ~5 B) k* \3 j6 G                                        @.Destination.NumReservation :=) P' v. U1 P3 ~1 K- H3 u2 R
                                        @.Destination.NumReservation + 1;
! X$ b. {2 j% R3 ^* b9 o* o+ E9 @                                end;
- P0 g! S, u, `& A- _9 r                                @.CurrIcon := "drivingHome";
- c9 y& J* S2 ]2 I                                @.DrivingHome := true;
  Y! \3 V  C, d* U                        end;
( b2 C7 Y! _8 |                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
/ I" A  {: X8 c8 q$ ~0 e) V/ {+ f0 M2 P                        part := @.transpOrder;* ?! o6 K6 a; l2 q+ X. T2 i
                        part.move(@);-- load part& p% d: v( l( z- |5 E/ z% z
                        @.CurrIcon := "load";
  w2 o# Q6 Z0 I  M- w) }1 c                        GlobalDistObj := part.globDestination;8 z# X' d! {/ q: j' }
                        assignLObj := rgmanager.rgAssignL;/ Z: }. R1 n7 Y
                        row := assignLObj.getRowNo(GlobalDistObj);
" X( S) X; |3 a: [" i* h' o9 L8 d                        if Row = -1 then -- since 708 X# z  C6 p7 v& b. m9 R+ _
                                if lan=1 then
' M  O, ?! j' E- v6 W' ?                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
+ x& A- _! Z" D8 N& N' d                                                to_str("in der Andockstation: \"",?.~.name,"\""));. i% ^/ X7 `1 a, \& Z$ G: P% [1 w
                                else2 k. D$ ]0 Z4 @0 x
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),5 N( S! ^& ^7 U9 H# o. \
                                                to_str("in docking station: \"",?.~.name,"\""));                                & }2 N& }$ \# G! S; X
                                end;
- P  U& O' k9 T& b% B' l- R                        else
" b8 v0 S, X, v8 g( Y. Y& K1 n+ k                                @.Destination := assignLObj[1,row];
0 ?- K6 B+ _  `$ p+ l, v  p                        end;                       
% P  D4 ]) K2 Z+ g0 N; |# @                        newDirection(@);3 U6 \* u" E  g4 n) g
                        @.HasOrder := true;/ i$ d9 @. M4 G4 ?& t5 J$ z3 a  x
                end;5 }# l- w) ]$ P- h3 p' J$ W
        end;, {7 m, ]) b3 [" O
end;        -- of the method
" d7 V7 M1 P0 a4 Z$ y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 : g1 g* M+ d0 i/ |- @$ V+ g& F3 a
8 B* o2 z/ o1 ^1 O
这是AGV_putin中arrive的method。
7 {! \* w5 ]& G+ }, f* \; u. Y( E* K0 R* ^/ H2 [% R7 v/ R' v9 J
当到达物料速度越高时,这个报警更多,
7 O2 K. ~: R0 w( Z/ n+ K4 _) W可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。* ~# @- U0 {, M2 \6 A- @9 Q
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
  r# {3 p+ S9 o% d: S$ }! {" {; |
另外一个小建议,就是move,所有的move都可以这样
. I$ S1 k& C$ g* [; `2 e1 xif not move() then debug end. |. F; J: N& V
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
9 Y4 \8 B# m7 M$ F: Hplant simulation中的free libraries有AGV模板,  ^: S" C2 d; V
里面也有案例。
0 v$ M$ O/ Y9 s  I我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
9 @' |2 o& Z/ ~3 N" [8 G% n, i$ w6 r; @: q
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 # M0 o$ s5 `1 S# a! I0 i. W4 K

! A1 r. o7 [# Y: r4 F' b* r那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
0 e  ~9 R) q0 \: s/ i) ?这是AGV_putin中arrive的method。
, @; a8 Y2 X# T0 G+ V) v. |. ]  r3 b( g0 ]
当到达物料速度越高时,这个报警更多,
, k% V- C- M1 \3 J- S4 }
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-28 12:11 , Processed in 0.016940 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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