设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6776|回复: 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'$ n4 J6 M2 ~: ?! v; f; f5 c8 W
*/# K3 ~* h4 ~* T: G1 h
is: ]4 a. w( P6 _5 c! x1 \/ f: J! P3 x
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
1 q) N9 P5 {5 L& m5 ido
5 \# Q  i, Z% z0 w3 c% ~; q        Lan := rootfolder.Internal.Tools.AOLlanguage;
$ C8 s4 H5 o0 G. R% ^        if current = @.Destination -- else return
& l9 n7 t& N# u$ e; l        then
- Z  e7 H8 i3 y( ~4 h0 T3 ~5 o; P                @.Destination := void;
& p3 ]# @6 F) \! x7 p9 e4 b                if @.occupied then
! p% H7 \5 T  s9 H. s* K: g. X                        part := @.cont;
; a/ i4 J$ o5 H4 o1 f. \                        @.transpOrder := void;
# h9 Q" V# v$ s, y                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,0 m, m$ }8 g4 ^$ R& r& A6 Y. j3 ~7 k' Q
                                @,root.eventcontroller.simTime);" o* b% O; c# O; ~5 I
                        @.HasOrder := false;
3 x! b3 B; E1 q                        @.DrivingHome := true;
* z7 ]1 i* g% z* j9 Z# b* d                        rgManager.tryToStartTransOrder;
8 X, _6 S, N' `9 O  }: |                        if @.Destination = void: T+ X, |- t  o' j! b5 ?
                        then -- no transport order for vehicle @
5 n8 M+ O2 q$ J6 ]) ]: X$ G                                @.Destination :=; n5 [) H& X/ b/ G8 N- E
                                rgManager.nearestFreeStation(@,track.~);! u, j7 h8 w# z! G& }1 c: _1 g
                                newDirection(@);   5 `7 }( z0 `4 r: c! H- T
                                if @.Destination /= void then
' G9 J% E: x& n5 m                                        @.Destination.NumReservation :=
: S% i" i% [; p/ E2 u; @                                        @.Destination.NumReservation + 1;
( g- D/ V7 h7 u. v                                end;
. ?7 P7 [* G0 l                                @.CurrIcon := "drivingHome";
9 t2 s$ {6 T, H' d) ~' U                                @.DrivingHome := true;
# A3 T9 N4 n5 J) o* [7 O5 E                        end;
3 H& {5 c$ L% v                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
* ~5 z  R7 a* N4 I6 D( P+ _                        part := @.transpOrder;
" ~" i6 W/ t- I+ ]  f                        part.move(@);-- load part2 Q; K9 i1 ]" H+ ~3 O' Z( t: u
                        @.CurrIcon := "load";+ w' }; W2 q. u) k+ W
                        GlobalDistObj := part.globDestination;
4 `0 R0 w4 l6 [/ p2 o                        assignLObj := rgmanager.rgAssignL;8 C7 q5 T6 m5 s, `% g) _" _
                        row := assignLObj.getRowNo(GlobalDistObj);
* d! ]5 A# ^2 H( h( T. n" V                        if Row = -1 then -- since 70
* L8 A% w$ P; c) T  i                                if lan=1 then& t  T) K/ K7 H2 a" t' M" A
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),1 C4 c. r9 @9 C5 N* Y0 u; M
                                                to_str("in der Andockstation: \"",?.~.name,"\""));- O9 e6 l# M7 @+ ]/ J/ M
                                else
3 M' l1 `' }1 v; b                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
7 F6 o; @: W) @8 ^! M                                                to_str("in docking station: \"",?.~.name,"\""));                                ' {  ]! ^4 E% u1 f( x
                                end;
0 P% t( h' b- E0 a2 `7 i! I5 {; i                        else
+ n. ~6 x, `. @5 p. H) j+ T' X5 }" ?" E                                @.Destination := assignLObj[1,row];! c' \- I2 z- C. w  Q% p
                        end;                       
% R% h+ `9 a/ q5 g3 n' e  ~" s                        newDirection(@);
- D5 s5 M; d8 G+ f                        @.HasOrder := true;) q$ J, O0 @7 L! V! A8 f1 B5 \
                end;8 A; S( S, C  M: ~! @2 [/ ?9 o+ i
        end;$ }  X, j( X+ }$ j
end;        -- of the method, `8 E# }9 d# p5 V' J) h
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 7 c/ W' ~% u7 ~, K. q

& [& k( f8 x* y1 `" E2 i1 R8 s  H$ v这是AGV_putin中arrive的method。
! \6 N0 D9 q' I. ^* ^! E$ u
: K; @, g7 a- p) P  |* v, R当到达物料速度越高时,这个报警更多,
& i) [. }  g7 D3 {可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。6 k( C8 i9 F. n/ i6 F  N
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?( {; R( l" r4 a0 ~
/ m! e' ]& S* H" t$ ~& `1 K
另外一个小建议,就是move,所有的move都可以这样* ]% x0 ~# A5 H8 F" V' a& O% v
if not move() then debug end+ _& J, {" M9 @! E( ]& T
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。& C' D1 P" S' D5 ?" _
plant simulation中的free libraries有AGV模板,7 h( y  @8 G' W! O5 e$ ^2 Y
里面也有案例。# C/ a3 q6 D( m  k1 W) w
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。; V: t, ~' A: e

% V# b/ B) F  v, O+ F我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
% w4 U/ }; A5 Z6 Y& |
9 Z# Y7 X9 y9 e+ l6 z那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 $ G9 G/ U6 F* _+ B( [4 Z2 u
这是AGV_putin中arrive的method。+ I& `& S  v( E: j& K: h6 w
( e; f( I5 F( t* F3 }
当到达物料速度越高时,这个报警更多,

. D4 P$ ^# [9 k2 i$ _- U9 z另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-26 02:29 , Processed in 0.023220 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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