设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9832|回复: 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'
" e  h" `% {2 w( G*/
+ p" v! `' [+ Q# ?1 xis. B5 L: t! C7 U$ [* L
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
( q7 C3 w( A" m4 qdo# P4 u+ m9 }  m: _, F' u$ x- v
        Lan := rootfolder.Internal.Tools.AOLlanguage;0 N0 O' U) j( a" _
        if current = @.Destination -- else return
& H% r) g1 N. b2 z        then
) W$ N2 X- J9 k' G8 s$ C) L1 M                @.Destination := void;4 `* s& S, |5 s& T
                if @.occupied then: n5 y; h7 K0 p  L7 L& Q- Q
                        part := @.cont;' f' U/ O. c9 V- a" v
                        @.transpOrder := void;
* W, A1 P9 m; N1 C) J3 J8 Y% l                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
8 D. Z( Q8 P( T# j                                @,root.eventcontroller.simTime);. R& o/ J7 B1 {! n6 T6 v' q+ o0 X
                        @.HasOrder := false;
  @# e) Q& G  J3 ~3 m( {, Y                        @.DrivingHome := true;# l7 y- q9 \- S6 n  s. c, `8 T3 }
                        rgManager.tryToStartTransOrder;* Q: n2 B- I) U  r8 G9 q; S
                        if @.Destination = void
1 g& M+ f; u1 V* Y( |& Z                        then -- no transport order for vehicle @
5 v3 Y2 z/ j0 y& p                                @.Destination :=
8 R& l6 R6 Q* E                                rgManager.nearestFreeStation(@,track.~);' f, P0 f7 [) J6 s" F0 t
                                newDirection(@);   2 E0 Y- s6 d" v9 N- q
                                if @.Destination /= void then
6 m* C* k( P" M1 q; L0 \0 |1 x                                        @.Destination.NumReservation :=5 t$ U! t6 k0 a2 p
                                        @.Destination.NumReservation + 1;. F4 u1 |/ P* H: Q& _! f" `
                                end;" j% T4 ]8 t; B
                                @.CurrIcon := "drivingHome";$ z, m$ }( S- {% M- q" v* B4 ]- g
                                @.DrivingHome := true;0 T8 q) M: J; x
                        end;7 R$ E: n5 k, {$ Q% C" s" r
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
, Z& y7 v: A/ {) Z( h                        part := @.transpOrder;
! L; ~, {, [0 D# w' v# ~2 f                        part.move(@);-- load part
, ]- e$ G# v5 |  [, l0 d                        @.CurrIcon := "load";$ a$ p+ _) L- o; w
                        GlobalDistObj := part.globDestination;+ f% r: l" l4 Q( F) M
                        assignLObj := rgmanager.rgAssignL;9 i, {- B' e$ K! b
                        row := assignLObj.getRowNo(GlobalDistObj);
1 e' _% u- q, J3 Y9 I                        if Row = -1 then -- since 70: ^4 T3 l  m# w, x  l6 T& W7 `' y, i
                                if lan=1 then; r% s; a$ m: L4 _1 f: x. {. h
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),! S5 X! R# x: ^6 Y; }0 ?) T" C
                                                to_str("in der Andockstation: \"",?.~.name,"\""));, a, X6 ]# }( E6 ~7 N
                                else
( C4 l/ p0 g! H; l( T                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
$ {& D8 u. {+ _                                                to_str("in docking station: \"",?.~.name,"\""));                               
0 j" F  w7 E6 R$ M                                end;
6 W" L1 m+ q3 p' d3 S! ?$ O/ i                        else7 L1 S! `9 |) |1 ?  ^; H& \( {; e
                                @.Destination := assignLObj[1,row];8 |6 e  m- N5 l6 i8 y( t2 N* c! H( G
                        end;                       
  ~! G) U1 z) r- F2 b                        newDirection(@);1 q) \- \: a  `
                        @.HasOrder := true;, Z$ f9 E- K) Z( O# L
                end;
0 u* o% Q/ N) q+ P$ B# C1 A        end;
3 X1 @* V. u# d3 X* G% U) mend;        -- of the method
: y5 G# h- ?% N- [/ z1 H) j$ \
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
9 @# y9 v  q2 z, Y/ e) n7 x$ K' t3 O* P* h8 v) b
这是AGV_putin中arrive的method。" w4 Z+ w# B; f1 G' Q/ M
* a$ U& v8 K: Y) b! n) x! g% ]6 O
当到达物料速度越高时,这个报警更多,
/ }* c3 N$ W* B& }可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。: d1 k- S2 a/ Q& T3 z0 B' ?
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
7 Y3 F" S1 o7 o. }; f4 D6 y- \& n5 G/ U
另外一个小建议,就是move,所有的move都可以这样
$ }! u6 r" n6 Q( V6 q, ~! lif not move() then debug end3 d# [: @1 j8 r
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
6 y: I: a8 u+ h1 Xplant simulation中的free libraries有AGV模板,
  m0 |2 y% T( V) d& `4 O里面也有案例。
- J2 S, z0 @0 `6 @2 }9 c6 J我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。- ?% Z4 S9 K+ Q6 m' |

( n4 b' y) u0 S  H, R' N我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 9 \# }" w4 V, l" K! M
) @2 m' u' p  x. @  v1 W
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 / p3 J7 @' ^/ @6 {
这是AGV_putin中arrive的method。3 I* f$ v% _  r
( R( n; c( X! ~0 H* x1 `# _
当到达物料速度越高时,这个报警更多,
  P0 z( V5 W. f% J& S6 O4 F1 b
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-28 00:41 , Processed in 0.018771 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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