设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9029|回复: 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'! p6 S( a. _" D" @# R+ \
*/
/ K) m* u5 c2 ois5 s! b' S, u% }0 S
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;( v5 Z% b1 g2 N) L- @9 H* Y4 j, H
do
6 D1 Q$ ]7 J5 `2 ^        Lan := rootfolder.Internal.Tools.AOLlanguage;  T7 B9 ]$ h6 q& r
        if current = @.Destination -- else return
7 E8 s; L4 _' g! m( U' `) ?        then: L6 l3 t' o. V
                @.Destination := void;
8 q% J# H, j- c2 @" Y9 F! p                if @.occupied then/ E( E  q' c% p& o" s
                        part := @.cont;
7 u8 O& ]  _2 `4 m3 p) I                        @.transpOrder := void;
: ~2 |/ B) \  p/ T( f# ?                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
" Q7 J% _. g5 ~                                @,root.eventcontroller.simTime);! w3 e  C% K5 H7 S8 u% {
                        @.HasOrder := false;% p/ R8 C+ m* j9 F9 N  w% V
                        @.DrivingHome := true;
  z$ ^; m8 Q( k( W: f& l* j                        rgManager.tryToStartTransOrder;' z- f$ z" ]5 m8 ~( H" G: Q9 r
                        if @.Destination = void
8 N. l; q6 D$ d! {' D                        then -- no transport order for vehicle @! _$ X5 F6 i8 o4 f. m' G
                                @.Destination :=
: j$ e9 O, N6 a; b8 ?                                rgManager.nearestFreeStation(@,track.~);
2 h: x% t* E/ _1 T, j( ?                                newDirection(@);   
/ }6 _, r+ y( ^* P' j                                if @.Destination /= void then
9 ?; c$ V+ Y3 H                                        @.Destination.NumReservation :=
7 r  o# g" h7 v' m5 b( L                                        @.Destination.NumReservation + 1;
( Z2 A9 e& f" P! `  b4 B0 Z* T                                end;
4 T; A/ }1 p! ]8 `# u+ F2 M                                @.CurrIcon := "drivingHome";0 X' i. \/ [  n' O
                                @.DrivingHome := true;0 H6 @# S1 y  _% h; B+ F2 D
                        end;
- j! ]3 y  u: }; `- u8 o" w- {                else -- the vehicle @ is empty, both vehicle and part are in the same dock station1 K) W4 s( D+ @5 g; j
                        part := @.transpOrder;
, J3 ~, i  Y% Q$ S. l) j                        part.move(@);-- load part3 @" V4 a2 A; s/ ~( f* \9 i, J% n
                        @.CurrIcon := "load";
- y" c0 E. A  B' y( y1 V! v                        GlobalDistObj := part.globDestination;
6 p' i$ ^( ?+ q8 h/ l                        assignLObj := rgmanager.rgAssignL;5 X" V% j2 b* [3 [$ M- ]% C
                        row := assignLObj.getRowNo(GlobalDistObj);; A" c& C  Y9 ^; m7 }' R% d0 G) x* M
                        if Row = -1 then -- since 703 @: s" x+ l1 n7 n% c. Y+ T
                                if lan=1 then$ Z/ D& f) d& b% O+ @
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
5 C" M; y! k, ]( ]& z; E6 @                                                to_str("in der Andockstation: \"",?.~.name,"\""));
: H8 ?' t$ o6 B6 e                                else# a* Q/ v! y! f* U0 c7 B
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),7 |8 O# j* z+ Y! Z$ I, t1 _
                                                to_str("in docking station: \"",?.~.name,"\""));                               
* ?, k4 s$ T$ s; t9 l% l9 I0 [                                end;
& Z$ ?; n) H8 s" R9 f: s: P                        else$ B. Q* ^8 \3 H
                                @.Destination := assignLObj[1,row];' A, {" _& d/ ?* v' p
                        end;                        8 N6 [  B5 \: [1 R1 ~5 \
                        newDirection(@);3 k7 y* Y1 V/ d8 M
                        @.HasOrder := true;
4 L- N. V  X- W/ \/ ~  x9 n* M6 I                end;2 U, H9 b) q0 n0 u
        end;, }* d, U/ b  o! b; q
end;        -- of the method6 I& x/ k$ e* C9 R& d5 C
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 8 e! L5 f9 G2 G! w  h

$ w0 g& J( R  E5 M. c" O1 b* ^  {这是AGV_putin中arrive的method。& u0 o- i& b9 ]

6 M1 H' Z/ M0 d. _3 Y  p当到达物料速度越高时,这个报警更多,
1 v4 `* W. B, Q  M6 R可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。. F0 S& j* A1 W  T3 C
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
9 a+ H7 b2 m, m+ f3 D/ K
, S' v+ Q+ d! l* a+ Z0 r# J, y另外一个小建议,就是move,所有的move都可以这样
* u4 y" d& ^  k6 |3 h# z. X; Q. ~if not move() then debug end( I/ r) z( Y2 g4 ], ?. G) m( @6 d
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。$ F+ Y* [8 h7 m2 e. Z# N
plant simulation中的free libraries有AGV模板,
+ y7 }4 h4 ?# Q里面也有案例。
. o) n* f8 U& v( M我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。  @; X7 c& u3 b; e) Q# g
( C8 |# i% ^* s' l6 h) k
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ; q. Y2 B# P$ l, B8 q6 e& }! X
7 t5 ~7 Y" {4 w& r! }9 R
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
; N2 W# ]9 o; N% z' V( O这是AGV_putin中arrive的method。" E) g& ]2 j) C1 ?% H% v

: A, j5 W% B+ i6 o当到达物料速度越高时,这个报警更多,
& J* J% l6 O7 J. o1 X
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-9 19:08 , Processed in 0.015740 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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