设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8836|回复: 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'
  S5 f& _8 o; M: U, k*/* t) C" S' `% i9 ?% X/ P
is
+ B* t/ j7 J6 Q" [6 }/ K        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
$ ]0 y# h% l/ O  Vdo
! l, t) t  X, A- h& C0 d6 f& Q: P        Lan := rootfolder.Internal.Tools.AOLlanguage;& E' z4 r& g3 v
        if current = @.Destination -- else return4 |2 `, ?( y, ]! y# M" e0 y
        then
( D& V4 d- Y9 B2 R# l                @.Destination := void;
6 o! B( p; ^7 B6 w                if @.occupied then. y3 x+ K% S; R
                        part := @.cont;0 l/ M( w2 x. }3 U  q
                        @.transpOrder := void;0 n- e/ t6 R1 w/ ]
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,0 @1 k1 _" F! g4 w
                                @,root.eventcontroller.simTime);  p; v) W) a& \) y' `1 B  X) A6 }
                        @.HasOrder := false;
3 q6 S, P7 b. l' s- W2 w                        @.DrivingHome := true;
! Z/ {! a6 C1 ]7 `$ D6 }9 C) z% i                        rgManager.tryToStartTransOrder;# `) J; \- m; z
                        if @.Destination = void
7 X7 L/ E# K+ S                        then -- no transport order for vehicle @
& r4 E! K. ~; ~" Z3 b! h                                @.Destination :=, o2 k/ R! {! ^# l6 L! S" p
                                rgManager.nearestFreeStation(@,track.~);
% k3 m: F- b* w8 T" b7 e5 D4 Q: a8 t                                newDirection(@);   
& [; u3 X# T1 P2 s. `# K                                if @.Destination /= void then
/ |, e2 A% d+ v, @9 x) n, d                                        @.Destination.NumReservation :=: c0 P: C2 e( q. m
                                        @.Destination.NumReservation + 1;
8 t# b; F0 @3 y: W                                end;  ?9 u3 o* A, w" {; w! c+ e
                                @.CurrIcon := "drivingHome";
; L8 }' |2 w0 v$ q# l/ i+ P: E                                @.DrivingHome := true;0 ~9 ]$ M: k/ l' G
                        end;- M9 ]0 x9 O1 k/ D
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station2 A3 u) b5 @: @6 k* J
                        part := @.transpOrder;3 e7 I: X5 J3 a2 `, L
                        part.move(@);-- load part
* A) v0 e, b% x* v+ k. y# k2 p                        @.CurrIcon := "load";
: l! C( B+ U5 i, r! {; p% b                        GlobalDistObj := part.globDestination;% o9 R8 h0 X+ L6 r: u6 h  B+ v
                        assignLObj := rgmanager.rgAssignL;
/ n7 \- `8 ]& j4 }" F! L/ G                        row := assignLObj.getRowNo(GlobalDistObj);: y$ P6 @5 p; j) d9 a' [, C
                        if Row = -1 then -- since 70
$ J" L2 }, d" G' ^% ^                                if lan=1 then$ W2 ^( W% [5 V8 }0 N  _5 Y
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),* D$ P6 |9 g+ r1 `- }0 [5 L3 d
                                                to_str("in der Andockstation: \"",?.~.name,"\""));' q- t! D# O% f! H7 {: g; W/ B
                                else: I! ?3 g! t4 `
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
9 k+ `# q/ i4 a/ ]; q) K2 _                                                to_str("in docking station: \"",?.~.name,"\""));                                9 X* ~9 S, M& H2 L8 p3 m
                                end;
- E2 C- K, h% O, T( W- n                        else
& z* |# E1 F% D& R: \: F                                @.Destination := assignLObj[1,row];
9 x6 T2 D. t0 }- U. T5 K/ |                        end;                       
7 i8 q$ C, N' L" h4 m( ~                        newDirection(@);
- q3 K0 ]" b9 G$ B. M0 ?; e5 l                        @.HasOrder := true;
% x- m- t% h; Q/ F5 y2 n; s                end;+ o- C: _1 C% N, p! g( d8 y
        end;7 s  i  C" o+ m. i9 ~& ^
end;        -- of the method& r! T1 |& t" B! _) p; E% `( O
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 . [- y" }+ L0 m% t% q
) e8 f/ C! e" {: i* e
这是AGV_putin中arrive的method。) ~2 M4 h( a2 q+ a5 e9 e- ?( V

+ i& z8 m! h1 H) T7 i0 V9 i7 C* O当到达物料速度越高时,这个报警更多,: L: D* }- |2 u$ U( y0 S
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。5 ^+ i# y5 t# v0 _
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?( T/ h( m- q3 i0 r. C- q
, W1 P: X+ F- d* a8 r- {5 G6 o
另外一个小建议,就是move,所有的move都可以这样
; y; U, W2 \9 l$ K0 ~; vif not move() then debug end6 w' _( e5 p1 V
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。! R+ u9 L) [+ y2 _8 t8 V; n
plant simulation中的free libraries有AGV模板,$ q7 \  q7 [9 P0 F8 x9 B- p
里面也有案例。, S; s2 N5 ~2 \
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
$ s/ H7 i0 K+ m3 F
" \" w; N" C! S' ^* z7 e+ i我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
6 L8 @1 ?4 k1 Q: y; L
  e) k( c( H) n; h- e/ X! D& _( [那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
+ c. b3 o3 p% r( l这是AGV_putin中arrive的method。
0 v8 z. O: ?+ h1 X( c% w2 \+ h+ S8 K9 Q6 h# h% [
当到达物料速度越高时,这个报警更多,

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

本版积分规则

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

GMT+8, 2026-6-29 06:21 , Processed in 0.014580 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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