设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9629|回复: 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 u+ k1 k3 v% \1 B. ?
*/* x7 f& s" E) C" E/ Q7 C
is
8 s" i# J. `( S' ?2 n        part, GlobalDistObj, assignLObj:object;row,Lan:integer;+ T1 ^+ n, S6 ?& ?& @5 u  H! l
do
) C& s' d$ A5 {. E+ m7 Y" F        Lan := rootfolder.Internal.Tools.AOLlanguage;" H6 [. K$ Y- D4 l
        if current = @.Destination -- else return
! R$ ]! {3 c( L9 c) T* H" e        then
# T9 Z7 f6 t! l4 Y% T' |/ ]                @.Destination := void;
5 }8 h) [, X2 F6 e+ j' b) p3 G9 k                if @.occupied then9 ]3 J) T8 G2 c. N; k
                        part := @.cont;4 f. o2 T  |4 t- w; _
                        @.transpOrder := void;9 @" }! ?7 _5 Y7 M( A2 y" D
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
# n. ?! `& [8 X  }% b/ d( m# X! R                                @,root.eventcontroller.simTime);
* e1 L+ `- Z7 E                        @.HasOrder := false;
8 g3 o9 p4 c2 o                        @.DrivingHome := true;
$ [: o0 I$ i& u& i; T                        rgManager.tryToStartTransOrder;+ m2 o4 a$ N2 u: t9 }
                        if @.Destination = void! s) ]! l2 I$ [: u2 Z
                        then -- no transport order for vehicle @8 V9 f; s8 ?- r5 I2 L( k) x) z$ C
                                @.Destination :=4 F& F# y5 A  a1 P; o8 X4 b8 c
                                rgManager.nearestFreeStation(@,track.~);
$ ]* H6 s( z. S$ m                                newDirection(@);   
5 n4 ?, w$ r3 L( M, h5 a                                if @.Destination /= void then- d6 H% e) B  R; F  W- F
                                        @.Destination.NumReservation :=  y: d) l* q5 E; r% e; y* k- L* j
                                        @.Destination.NumReservation + 1;  g) M$ Q& x" y2 s, E: G, z  G4 _
                                end;
3 J1 V# R2 ~! W* U                                @.CurrIcon := "drivingHome";
# i: I3 F+ S* R9 }* R$ a                                @.DrivingHome := true;
, @, @4 s5 `) G0 l. w/ ^1 D3 }                        end;/ J) e- i3 C* C  L1 m
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station- Z& \3 u8 j; J. f) p' R) v' L
                        part := @.transpOrder;# Y8 `- u  v9 s. F7 w
                        part.move(@);-- load part9 p* x0 O/ ^7 Z$ x
                        @.CurrIcon := "load";; q# e5 t6 F8 a7 n* q+ P% I3 G
                        GlobalDistObj := part.globDestination;
3 S; W- ~1 I: |. I4 `                        assignLObj := rgmanager.rgAssignL;
! t. n, F% I" c! x                        row := assignLObj.getRowNo(GlobalDistObj);
; T2 k( G2 }6 g2 b1 d                        if Row = -1 then -- since 70, y# L1 k" x* `- g7 V& r
                                if lan=1 then6 s: C# H/ J  m# i
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
7 a  x7 |% G$ \" `/ N                                                to_str("in der Andockstation: \"",?.~.name,"\""));
2 }( C' N0 I5 Y+ P+ N: H                                else
& R) C' ?, V% \6 [& C. q                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
5 o% I9 o$ F5 O* z! Z8 [7 }( I                                                to_str("in docking station: \"",?.~.name,"\""));                                ' H# l& ~  w8 o
                                end;
2 t/ f1 i; X/ j! d                        else. a; C( x1 r% j9 U# d' F  ~! @4 Q
                                @.Destination := assignLObj[1,row];
3 \# U! e! s( T) K7 Y                        end;                       
1 F& ]$ @8 Q4 T# Y: ~: a# W  ?  F: P                        newDirection(@);
# O1 e9 Q5 z1 b5 P- y                        @.HasOrder := true;
7 J' D+ {- O3 `0 U                end;
5 L3 h( S' O, ?( r4 \' q- J: J( A        end;9 g" z$ x+ _) Z, l/ }& S- |- o  q& |
end;        -- of the method6 w* B' X6 B, G
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ! q+ @) F$ M: R7 ]& J
5 Y1 t7 T# P% x' m) P9 }/ K0 o
这是AGV_putin中arrive的method。6 A6 r8 Y! K6 _# d$ l3 R
& D) T* k' Y2 z6 O
当到达物料速度越高时,这个报警更多,0 z' K  e; Y9 B% g6 h
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。9 m/ N) U2 m/ @1 l
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
/ X  q5 v9 C! r+ K6 C
5 ^4 `* L: ~/ m2 v9 x+ U另外一个小建议,就是move,所有的move都可以这样4 a% i3 p8 n; W9 R. N
if not move() then debug end3 e. J4 g0 h1 `: W) P
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。" o' t/ ~4 J% q, _: l+ P
plant simulation中的free libraries有AGV模板,
& K& g/ H; \% G0 S! ~4 J里面也有案例。9 M: ~. H9 q8 S( a: o
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。, Q* y8 W: P3 Y! c2 k( z

; y. T7 s8 E- ~+ x. Z( S我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 - P& V: R4 l: ]; v  ]

! E3 H; f9 o9 X0 p8 q# z! g那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
" Z' N' j, R6 X* n5 [/ L" M) e这是AGV_putin中arrive的method。! ?5 F) B# ^. f6 O0 L8 q% t
3 U9 T- Z% A3 Q) V9 |" x0 [, N3 c
当到达物料速度越高时,这个报警更多,

/ t$ q! q6 \6 ]4 d另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-12 23:15 , Processed in 0.020426 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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