设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10099|回复: 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'7 y4 `7 N" U: H# K
*/( r  x$ [1 W. G' p" M- M# c/ R
is
6 u9 B4 l3 `  f, W/ J# z        part, GlobalDistObj, assignLObj:object;row,Lan:integer;. Y+ Y# m9 v2 W2 V) d1 ]4 v) M! g
do
3 Q( `8 r6 ?$ o1 I$ N+ e: W        Lan := rootfolder.Internal.Tools.AOLlanguage;/ o  ]- w7 K7 s
        if current = @.Destination -- else return
; B$ O, }: d) o3 P; {7 O$ M% {. @( k        then$ E( w! t8 d3 Q( N# t
                @.Destination := void;
% P" K- A3 Z" z1 Y  N" V                if @.occupied then3 T; M" |# e+ Q- b9 F1 L# i+ J; V
                        part := @.cont;
7 ^1 d3 y/ F/ h& d: D1 f/ x: _                        @.transpOrder := void;
  K1 `- Q# O! I                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
1 G- e9 P: X2 `6 a7 v                                @,root.eventcontroller.simTime);
/ o$ x! O/ X4 d4 K$ K& F4 m                        @.HasOrder := false;; U# G4 l: F1 o6 `, b2 ~
                        @.DrivingHome := true;
4 D" o1 v8 U# Q5 z. X' V. S                        rgManager.tryToStartTransOrder;, w6 d0 l7 m/ N2 @: j" Y
                        if @.Destination = void! r7 I- v1 t; S7 G* W1 R
                        then -- no transport order for vehicle @
/ Q6 f$ e$ u. o- a                                @.Destination :=
& W! ]% S. U- Z& K1 f" E                                rgManager.nearestFreeStation(@,track.~);8 H" `4 r% q5 Z! q* \4 u3 s
                                newDirection(@);   $ x( W( s: z+ _: }% G9 C2 I7 t
                                if @.Destination /= void then
" S3 u; c. r' q' |. }                                        @.Destination.NumReservation :=
7 h0 S) ^# P9 A' m1 F1 a                                        @.Destination.NumReservation + 1;. S7 B; u6 m& Z. w0 e: L
                                end;4 L5 m7 ?3 H5 m8 Z2 K$ N6 u
                                @.CurrIcon := "drivingHome";3 p0 L" g6 V/ h6 M/ h/ Q
                                @.DrivingHome := true;. ^. A! c, n; a, G
                        end;, t  d9 b8 t- D+ d2 J3 S) j
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
* ~0 y0 K0 T# V8 `, b- z7 J, |  v                        part := @.transpOrder;& Q+ `: I* B# `% Y) l- x, w( h5 K
                        part.move(@);-- load part2 Z$ j& S  [% W- y  E  _% k
                        @.CurrIcon := "load";
, A0 q+ ]0 Y! B/ R6 A  o                        GlobalDistObj := part.globDestination;3 `1 Y6 y2 ^$ r* Y8 U5 `; B
                        assignLObj := rgmanager.rgAssignL;$ z2 z8 |7 Q2 I! K+ v
                        row := assignLObj.getRowNo(GlobalDistObj);
3 p6 _0 w3 Y  }% ~: R) m2 c: H                        if Row = -1 then -- since 70( m+ ]" \$ X. ]7 g! e& `2 E
                                if lan=1 then9 b9 G! f. \$ o
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),; K# Q" u1 X) f3 a& @0 [& {
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
; S: P3 e2 i$ f                                else6 K6 z2 J' {, V  f* d9 Y
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
) ?3 m/ F9 e# u$ b                                                to_str("in docking station: \"",?.~.name,"\""));                               
! E0 |) X6 v+ u( B& }# h                                end;% [' F# x7 ~' }4 |3 Y( \$ M
                        else! ]' D; W5 a6 |1 S/ E
                                @.Destination := assignLObj[1,row];
! Y1 T. |1 H/ z4 B: N+ h( v                        end;                        2 Y* p( B5 t2 e- G0 o; j. P# |
                        newDirection(@);
; C8 A: W7 H/ L% m& U                        @.HasOrder := true;, }3 t( S+ o5 a. J2 D
                end;
; i, R+ c: @2 \) n. e! m        end;( n$ o( U. e% T# E% ?; W
end;        -- of the method
1 h0 n& n# R7 o3 M: M
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
, B7 b" L+ J9 Y+ n( y$ C/ d
+ a  O: B2 N( l' s5 z+ G9 X" I. F这是AGV_putin中arrive的method。
( |8 N1 r- N9 j! {0 ]0 W2 D
  }, p4 n2 m) x" ~2 g; @! h当到达物料速度越高时,这个报警更多,! H0 q( ]; a% F6 D# r  W. _
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。2 ?3 Y- R* |9 o6 {$ z+ t# }' s! Z
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?& ]2 W* z" ^% m7 _; }
3 h% L9 v$ ~" m3 s% ?8 {6 c3 d
另外一个小建议,就是move,所有的move都可以这样
1 A1 D2 t" z. P+ yif not move() then debug end
4 w9 l; a7 N# T. |' K& p; G9 T" O这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
0 U& X. X' A$ h, V* fplant simulation中的free libraries有AGV模板," L3 K' ]- j7 b0 N( L
里面也有案例。
! S2 x+ U$ R  r# z: X我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。! `" k) k; [8 O, e" U% k% ^( ~

4 A# ?, S7 f9 \& N我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 . K: S6 i! E4 {/ n& N; K. t

7 N7 `! {  E' X3 m那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
2 Y/ g+ k- W" f% ^) ]/ I这是AGV_putin中arrive的method。
+ J( ^" h- o1 ^9 W3 G' \% y  ~) J$ k7 k; L& W% T
当到达物料速度越高时,这个报警更多,

; N6 l4 c" {( W* X3 R* h2 r另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-13 08:51 , Processed in 0.024398 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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