设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8944|回复: 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 }9 y9 ?. m4 [, A- L* B
*/2 g/ K% z- N7 e9 {  l' a
is
1 R; S1 |- K# v0 O- R        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
* {7 c: t! C" P$ F$ Ido
; [: `- v! c: x( ]2 K5 R' G6 V: z        Lan := rootfolder.Internal.Tools.AOLlanguage;% m! R6 C  v8 s7 f) Y% D
        if current = @.Destination -- else return
2 w' c1 s9 [. ]' ?$ ^6 {) J        then
6 o$ M+ ?( C; V( V9 s/ h                @.Destination := void;
9 _' I! k' L4 k                if @.occupied then
9 I! ~, a- \! O* r6 P; O% S/ o                        part := @.cont;- ^* x& `4 t5 M  }
                        @.transpOrder := void;
2 F. ?8 Z( P# f& k5 O6 l                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
) X, X0 u9 a8 J( t                                @,root.eventcontroller.simTime);  E2 A  N; ^0 c+ g
                        @.HasOrder := false;
0 [4 F! w5 d- ]/ x# Q" R" {                        @.DrivingHome := true;
/ D  g, c" `1 v% F4 P& R                        rgManager.tryToStartTransOrder;: b1 v, c3 |( ]5 R& F
                        if @.Destination = void
- K# j, d2 Y" f) S% a3 I1 G                        then -- no transport order for vehicle @
5 V+ G: _( V, _                                @.Destination :=3 l  a& {; \4 J! [
                                rgManager.nearestFreeStation(@,track.~);
  `' o1 V" g6 t                                newDirection(@);   
' ]4 O  O) [; P: m8 J. Y9 N) g                                if @.Destination /= void then! u' s# A6 Z( }% g; ?
                                        @.Destination.NumReservation :=4 T7 g: R" M" F* p- m2 I
                                        @.Destination.NumReservation + 1;: B- X3 \. H# _
                                end;+ ]3 O* G8 X& \6 r. ^0 N
                                @.CurrIcon := "drivingHome";6 X2 g5 e, k, a& f+ H: [: O
                                @.DrivingHome := true;
* q/ y( Q# y' P: Q  N                        end;
5 h* H- `! P2 A' i  m                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
) l# ~! |! M% z7 o% j% }1 b! u                        part := @.transpOrder;# J( y& n3 K  l& p9 x
                        part.move(@);-- load part" m1 C6 h, E% ]& t# d4 S+ W
                        @.CurrIcon := "load";4 ~9 j% a- r$ _1 I% J/ X5 m
                        GlobalDistObj := part.globDestination;" L/ o0 N. z1 v4 l# ?; R6 U
                        assignLObj := rgmanager.rgAssignL;
$ S, A: c/ B; k; d9 ~# T& U# L                        row := assignLObj.getRowNo(GlobalDistObj);5 T; E2 _) o9 l4 @  O# C3 s: |6 Y
                        if Row = -1 then -- since 70
7 B, C: L# x$ {5 m                                if lan=1 then. n& \# G5 d& G
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),' i( H6 G1 U8 X) x/ E
                                                to_str("in der Andockstation: \"",?.~.name,"\""));' V; L7 I/ r$ J) e' Y& C+ E* Y
                                else( l7 L7 i1 l9 ?, z, |; m
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),# L% I& K7 X: [% n* g
                                                to_str("in docking station: \"",?.~.name,"\""));                                # _9 E& Q2 l8 ]# z8 J
                                end;
  B0 r+ f5 A  h+ Z" O* S                        else
& ~% V1 B" V: t! {3 E* J                                @.Destination := assignLObj[1,row];" A4 l1 g6 J6 F! x
                        end;                       
3 E" s$ [, i+ p) f                        newDirection(@);
8 a1 R6 K- B3 S, v( r6 L& a                        @.HasOrder := true;# f. R  G) J1 l5 ^9 g6 i* C
                end;
9 V# @: X1 L4 K. ]! g7 U        end;
& N0 _; `- h0 h6 G! bend;        -- of the method  @  y7 r) P$ R  Z; ?
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 8 A: D  w. J4 m" D8 ]. w6 c

, V9 ~1 J, F. b% m这是AGV_putin中arrive的method。
" L) q' |0 J- i! v4 F3 o1 `- b1 f% I2 T$ C
当到达物料速度越高时,这个报警更多,
' n4 ^! H) [$ j7 k) K& N2 S! B: ^- [可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。7 k0 }0 o7 R3 L7 m  p
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
" X  o; R$ d0 I. H: b
5 O, d3 g8 G( p! g: k另外一个小建议,就是move,所有的move都可以这样7 [& ~% \: m* X' }) ^% D7 e
if not move() then debug end) @% H! x, i! }( C8 J
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。/ M; h! G! F" L  G+ S$ q% Z
plant simulation中的free libraries有AGV模板,$ r& l5 N! @* P- s
里面也有案例。. I4 D* Q, K" N
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。5 S. ]3 i5 ?% \+ O5 M. V
7 L+ r6 Z& u' s0 w3 O1 D6 ^
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 8 M) W2 _2 ?  [3 |$ s
6 Y) t  I4 n, ^; E
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 5 A2 O1 q/ D: n% ^  _+ X9 x0 e
这是AGV_putin中arrive的method。
9 l  r- \% i' O( q3 g8 ?# P4 R6 E5 N& i
当到达物料速度越高时,这个报警更多,

) Y- O& i9 Z" V# ?另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-5 13:09 , Processed in 0.017345 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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