设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7832|回复: 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'
( Z- z) i9 v7 f*/5 C- X' j, V" f! V
is
( X7 ^( }) R" @/ ?9 w! Z, S# y; |        part, GlobalDistObj, assignLObj:object;row,Lan:integer;7 q' \9 l1 ~8 `
do
9 \$ Y0 t; [& j' v$ r' J        Lan := rootfolder.Internal.Tools.AOLlanguage;+ g5 S9 z7 \, O/ l5 Q! G" [* a
        if current = @.Destination -- else return. L5 i" O" t) i" [( q. x
        then
9 [0 m, ]4 O5 \& n, }; S                @.Destination := void;
1 r( o! u# q5 n" p4 l                if @.occupied then# }9 _! {' B) w) s0 v6 V  n7 t" C
                        part := @.cont;5 I1 @: s4 s. ^
                        @.transpOrder := void;* m* e, S' E- @" |
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
7 _/ B- J) g( n5 s) [. }6 q                                @,root.eventcontroller.simTime);* R- `, t* j, K
                        @.HasOrder := false;
' F3 z5 c* p  m  B+ s                        @.DrivingHome := true;# U0 ?) O+ |& R( K
                        rgManager.tryToStartTransOrder;4 D7 P  Q1 b5 e) E# b* H
                        if @.Destination = void( M$ g7 o8 q1 r. i9 U
                        then -- no transport order for vehicle @
2 ?& n" P! P5 j3 l+ q- N                                @.Destination :=8 C3 @# e6 x9 X: M3 q: I
                                rgManager.nearestFreeStation(@,track.~);6 t! x2 O/ C& f
                                newDirection(@);   
4 _0 x3 `; c7 n                                if @.Destination /= void then
4 i* n3 b! O  }* y" \; h                                        @.Destination.NumReservation :=
4 w% K$ v; ~) r8 s. s! T                                        @.Destination.NumReservation + 1;
$ X( w9 t& C2 k                                end;  |5 W: u8 l, f2 E3 `' k
                                @.CurrIcon := "drivingHome";" s, h  y5 q# _. d! x
                                @.DrivingHome := true;
& X& s4 S  i$ K, a9 z* y' z                        end;/ b% H: Q) j- `0 i' ^
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station1 ]- g( z( [% h2 U' ^
                        part := @.transpOrder;
, C4 h# g! r* S8 q% R+ D# S                        part.move(@);-- load part
! n' T! M& b( z2 a/ j                        @.CurrIcon := "load";
0 X. ?3 k2 Z) g( N) n, p                        GlobalDistObj := part.globDestination;  t9 w- B+ X2 G, `0 d
                        assignLObj := rgmanager.rgAssignL;8 v# I3 B4 v( c8 \* \7 R! Z" H" R' o
                        row := assignLObj.getRowNo(GlobalDistObj);2 }: ]! r: H# ~7 N$ ~3 f
                        if Row = -1 then -- since 70
' R/ Y0 ~/ Y$ f1 W! Z; L7 k8 j                                if lan=1 then
. g1 H  ?7 d' B/ ]                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
: G& t" a3 ~, t* K' A2 Q                                                to_str("in der Andockstation: \"",?.~.name,"\""));' t, _1 \# e+ R8 m: o( d- m# q
                                else
* m6 T4 j( f& D  T- l, F                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),0 k/ D# P# h! I- j! m. m
                                                to_str("in docking station: \"",?.~.name,"\""));                               
, E9 E# G3 [- j- ~4 `$ k' u" Q                                end;
3 ~" Z+ i4 F8 F% Q# x                        else
% Q# s. E2 E- U* |, P                                @.Destination := assignLObj[1,row];
% _5 R1 k7 U: k                        end;                        0 e- a" Q7 L2 \4 g( b
                        newDirection(@);
/ T) |' G/ ]) w, d- T: @                        @.HasOrder := true;
, n( r, a2 x" Q' g8 }8 O9 G+ \                end;; s) ^! l3 X" K! w
        end;  b9 J  M0 X7 v; `; y. E, m
end;        -- of the method2 e* f9 a6 b. j, q. R; n1 L
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
8 {6 w2 v" V+ E- A" t7 e. {9 t0 t* V# H8 Z
这是AGV_putin中arrive的method。
6 T- C3 Z. e* A
* S; R4 }0 m* s, {当到达物料速度越高时,这个报警更多,
5 o8 }6 A# i' c3 R8 |" y可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
. N/ _( S8 x# r9 K程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
/ F- G# f6 ~  z' t5 Z8 `3 {) l* |# P1 a# s3 ~( H/ ^: N
另外一个小建议,就是move,所有的move都可以这样
! E/ `% f% o3 E, j2 `' q- ]if not move() then debug end
3 M" d2 f  a) m/ }1 l( V6 v这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
# D4 x4 d+ f8 Z. |- m# k4 Splant simulation中的free libraries有AGV模板,& L3 W5 {5 c7 `" o4 E5 m# a5 a
里面也有案例。( ?+ O; v+ W  t# r: I
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
& z6 W* E1 n8 }8 W
( i( ]/ @6 i- H4 t  r我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
3 v4 k4 P# @* S- i
8 w# w* g. |. U$ b那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 5 X+ O) F; e2 r4 \) s4 i
这是AGV_putin中arrive的method。  y8 O& J  \$ n  L; R
5 S0 Y: j- i0 U
当到达物料速度越高时,这个报警更多,
% l: _/ G0 s1 U, z) j' O! t0 H# ^
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-30 23:21 , Processed in 0.024458 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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