设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6959|回复: 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'
6 }- Y" I6 `0 n( v/ G4 l*/
8 q' z1 D: x9 Eis6 h% ]% R& t3 O" w+ ^
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
9 [: h  J- O4 P/ k- Ddo
* q6 U8 b! e7 P" k8 f! h/ X3 n/ T        Lan := rootfolder.Internal.Tools.AOLlanguage;
( b$ R* v2 G. A' _* X# G/ z/ r        if current = @.Destination -- else return1 `9 G& Z0 Y2 L4 @
        then
0 Z0 S: v3 i9 Y2 g' u( L                @.Destination := void;
: h5 L( c4 B) j+ L/ q, W0 |" @                if @.occupied then
* n" D0 j2 c2 H- f                        part := @.cont;
* k2 z; q  l! e2 i0 j' y                        @.transpOrder := void;
0 s5 U  X: |9 l" d) O( ~                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,- T! C, Z5 O5 e% Z- A+ G$ d) c; Q
                                @,root.eventcontroller.simTime);
& ]! C; `: |, U                        @.HasOrder := false;5 v- m+ e% Q+ {
                        @.DrivingHome := true;
! E% T" v7 J" O4 _                        rgManager.tryToStartTransOrder;
: \+ H" f9 \$ m0 r. [  b8 |6 s                        if @.Destination = void
5 k1 o1 s9 ~6 f& B1 ^3 k                        then -- no transport order for vehicle @
7 ?# ]7 v1 @) ~1 i, g# V2 n                                @.Destination :=3 a; L' n, x4 u( S
                                rgManager.nearestFreeStation(@,track.~);4 T/ `1 q) q6 H* U
                                newDirection(@);   $ M9 m% p9 U0 y9 I  u, g6 Y
                                if @.Destination /= void then& {& V9 @6 m* }7 n( A+ B: R4 c
                                        @.Destination.NumReservation :=
0 ?. X+ _% k& d) i- N4 U                                        @.Destination.NumReservation + 1;" m- l- D, f: x/ ?9 R6 U" z
                                end;3 `9 R3 G6 z: t
                                @.CurrIcon := "drivingHome";
& C6 b" A  G. g5 v) |. P, ^                                @.DrivingHome := true;7 i* w6 K. |: N/ E( k8 j' R
                        end;
! n: x7 x# N/ ~& [: q) L! O                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
, D* F- G3 Y, g# O  c                        part := @.transpOrder;
7 ^. G  ?3 N; X, L# X. z                        part.move(@);-- load part0 C* Q3 \% U1 g. G' W5 u
                        @.CurrIcon := "load";% T' d2 `- [+ f' g
                        GlobalDistObj := part.globDestination;
$ n; B, B: K, x& d$ K# g1 R6 F5 T                        assignLObj := rgmanager.rgAssignL;
: @0 O; c. E, E8 D$ o2 {$ g5 b0 M0 U                        row := assignLObj.getRowNo(GlobalDistObj);
- C( i1 c# ^' G" l                        if Row = -1 then -- since 70
/ p  ^5 e9 J; V0 _! O* o                                if lan=1 then
. J) d" R1 Q; e5 h6 I/ ]- V                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),8 k1 @) v9 |8 S+ x. q" }" a
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
' \6 A. R& [" S) i& r                                else
/ C% {+ g/ \) ?  c8 s                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
' p. n* F6 E5 d/ ?) x                                                to_str("in docking station: \"",?.~.name,"\""));                               
& L1 z6 x$ `6 H" Y# v                                end;9 }1 |5 C( z4 j* R8 w" n7 [
                        else; r& h4 H2 u; m, q) }' P5 k
                                @.Destination := assignLObj[1,row];) x' ~& _7 S: x' a4 A
                        end;                       
  o) S6 f: u5 O# m3 @7 \* ^                        newDirection(@);
" C5 d4 B5 d; g5 _7 [% u                        @.HasOrder := true;" g/ i% y0 g# k6 g( F; K$ N0 I
                end;
) `  |, e+ K6 A        end;
: N' N# C7 w0 P* Q0 c1 K9 J# Bend;        -- of the method
- }% @' j3 @. b) m
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
8 m3 _. I: o  U
; h6 g1 `& w0 z2 V+ @  ]% E, Y这是AGV_putin中arrive的method。
, P5 r6 o- C1 _3 X& L2 |0 t1 o6 q0 `! z8 r8 J
当到达物料速度越高时,这个报警更多,: R0 j3 {; s' y6 c5 e" h$ l
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。* ?* n4 Y- I' u) g
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
7 Y7 k" f/ c3 z3 \* V5 |+ D& T9 {! M. B  ?' J" K
另外一个小建议,就是move,所有的move都可以这样! w  S" i  q8 l  S2 r+ N
if not move() then debug end6 L$ [( C5 h. v. M2 P3 R
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
" l- V- E+ j; L$ d$ Lplant simulation中的free libraries有AGV模板,
+ d( S. z, t2 s, B$ w里面也有案例。
) \8 ]+ G9 z+ i2 b2 |8 F& i9 ^我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
+ `* D. ~" w; j! x
! c3 t  C1 e0 n6 \8 _2 B" c我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 7 K: t( _8 `: a: ^% ?' o, g
% L* }% D: {; Q: K
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ( A4 ^+ r  Y+ T6 `+ g6 A
这是AGV_putin中arrive的method。
% w5 \! e( d5 `/ [7 b- D
& I- t9 A1 [% v9 p当到达物料速度越高时,这个报警更多,

& b7 c  @( G" p" r9 I另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-8 10:40 , Processed in 0.022719 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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