设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10047|回复: 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'4 ~+ o# h: j/ m0 X) d' X
*/
6 X, ?$ m  Z( H0 _! U* c" ^is
0 Q9 X, d) p, L, ~+ |2 F1 K* v        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
5 X$ K$ I6 p$ Z; y0 P0 ]4 Ado
2 ^2 e4 ^+ k1 n+ @5 h1 o        Lan := rootfolder.Internal.Tools.AOLlanguage;
9 X/ ^9 a4 m) d( p        if current = @.Destination -- else return
3 O! x$ A  t* e! q7 J" K8 m$ F        then0 X# W0 Q! e5 b7 M
                @.Destination := void;2 D+ S0 Z3 S. R  V
                if @.occupied then  b* S7 _5 Z6 L# n
                        part := @.cont;# l1 d% h9 P1 ?1 O
                        @.transpOrder := void;
* p. j  C; ^0 X5 ~" Q: j8 M                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
( K* @( a2 w6 B; F4 |% I# L4 C/ }  @* n                                @,root.eventcontroller.simTime);6 l* T; {% r4 J. F+ h8 j) P, [
                        @.HasOrder := false;
, a" G% M; E1 G4 b( v8 X                        @.DrivingHome := true;
3 d* g) |) b" y! N5 K9 I6 Z0 N                        rgManager.tryToStartTransOrder;7 Y( J) x) b4 p2 \9 c' g/ L7 V8 c; t
                        if @.Destination = void
: X# G" o" F* E% J+ b                        then -- no transport order for vehicle @; {2 `$ c) o1 \6 d9 W4 s3 W) G8 z
                                @.Destination :=
' u  P/ _, @2 H0 Z+ Q                                rgManager.nearestFreeStation(@,track.~);* M; {+ a8 A  Y+ [
                                newDirection(@);   - n( ?) U7 }# M
                                if @.Destination /= void then
, ~7 Y" Z5 n& j1 w5 P2 q* ~# K                                        @.Destination.NumReservation :=& H9 s. u' [/ N$ ]. P, N8 h; N1 Q
                                        @.Destination.NumReservation + 1;7 L0 F' V2 a6 s. @+ F3 Z% x
                                end;
. w8 q) N5 d6 X" w5 p                                @.CurrIcon := "drivingHome";' u% V3 H5 w" ~- o* n3 D
                                @.DrivingHome := true;
' G( V7 ]( w* [. H- u/ S  ~                        end;
  V/ Y. l% B1 O1 j                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
( F! {( n/ Q2 R. _5 d: a9 t! ]( s                        part := @.transpOrder;
4 Y3 E6 r4 t/ f7 \' ^                        part.move(@);-- load part; R2 D! j" E1 X. B
                        @.CurrIcon := "load";9 }  r: {/ ]0 W+ x. `# X+ d- o
                        GlobalDistObj := part.globDestination;
/ }- H& q" s3 V& `                        assignLObj := rgmanager.rgAssignL;# w& q3 \& L4 P5 _: E
                        row := assignLObj.getRowNo(GlobalDistObj);
7 a6 {4 s" k& M8 f' k1 C9 m9 K' L* ~                        if Row = -1 then -- since 70
& V: E$ ?3 M9 W( v0 @* n. B                                if lan=1 then
! h5 P4 \3 I  a2 M                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),3 t$ i: o) _" W* Y5 v, j6 {& ?
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
$ S3 d& P$ F0 e" Z6 e                                else
3 P2 n$ q; ]& O+ N2 Y( y                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),* Y7 F. f- W. V: w$ E! i
                                                to_str("in docking station: \"",?.~.name,"\""));                                5 p  T% ^  i% V! d  F5 T
                                end;: K% k5 h, O* @* }8 K
                        else6 w3 k1 U  M& ^2 X- j
                                @.Destination := assignLObj[1,row];" S& ^, x) x6 g3 d7 @; ]+ q
                        end;                        2 Z& {* N- I( A+ L2 t
                        newDirection(@);
' ?; _$ |# ], A! w8 |                        @.HasOrder := true;
8 }7 W* Z4 F3 |5 p7 G4 t/ a                end;4 D$ A! F5 J" J7 u1 `* I* o5 `7 z
        end;$ }$ Y- K: ?8 Z6 K6 H! _
end;        -- of the method/ H# m- b2 |; M2 g) n2 k" w  v
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
: \+ z, P3 W" R6 S) I' i) g6 E" d! q, V% \8 R7 n: @- g
这是AGV_putin中arrive的method。
) ~' b5 k$ o" U* A  `% |, X
2 m# A3 i& u$ I, B* y, Z. {当到达物料速度越高时,这个报警更多,. q$ e% c, O3 }  _" T0 V
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。& i! b* y4 R1 T! ^$ v
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?+ _* f2 g/ D* ^9 Q  ^  v' w
* `1 h6 o/ o9 h
另外一个小建议,就是move,所有的move都可以这样
" G) r: V: r; ~8 hif not move() then debug end
7 z0 y2 ~0 U: ^9 a% H这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。, a4 F0 a0 _$ e' H! @
plant simulation中的free libraries有AGV模板,
9 A$ q( h7 |( O' K里面也有案例。1 L$ u; L& a; N& y, i
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
# _3 H1 L: ~& L0 k
0 K+ c, @$ S. r* L% p, |' u我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 % |/ Z0 ~. P3 l3 O* V

7 g. g  h/ }. ^! N; l' }那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 * t. X9 v, j) `( O8 u# f# |
这是AGV_putin中arrive的method。
7 ^8 z$ i' U3 a; J: G/ S6 B/ b0 w( m9 M
当到达物料速度越高时,这个报警更多,
7 ~1 [2 s) v" E- n! }% e; ]
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-10 03:41 , Processed in 0.018693 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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