设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8704|回复: 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'0 P/ R& Q; A& R' H
*/7 J. w8 E3 G! }
is
0 f$ m7 A4 E$ _  O! x        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
1 N. W/ P3 d1 u7 g) @7 _# D$ Zdo
6 |/ e8 D; p- E* R3 D        Lan := rootfolder.Internal.Tools.AOLlanguage;
+ o/ {4 w* F5 {4 y% ^' C, \        if current = @.Destination -- else return
* i* J* g" E5 Y/ V, m8 U6 B        then
# E* U' u% v0 L0 q! H; K$ ]                @.Destination := void;9 w$ B2 `$ ^; @
                if @.occupied then6 U; l2 x! m! N: q' A$ @
                        part := @.cont;- @* g& b+ ^' M. z
                        @.transpOrder := void;
7 H4 p1 r+ E/ E: w                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,- O) q& [4 `: v% z
                                @,root.eventcontroller.simTime);) q1 L* ]% ?" D+ t7 v6 c
                        @.HasOrder := false;8 x( ^; H, q% Y9 T
                        @.DrivingHome := true;
+ q6 ?. B* B- Z/ u, p# z                        rgManager.tryToStartTransOrder;
" A& S, n# T1 p/ U4 L                        if @.Destination = void
2 l+ |# I2 Q" b& P' {( Z1 b                        then -- no transport order for vehicle @9 S3 D# V2 m0 q3 ^6 W( ~
                                @.Destination :=
" x8 t. f9 i0 P# a5 I  |                                rgManager.nearestFreeStation(@,track.~);
; `5 Z. q0 c. Z3 Z( v- [* a2 l                                newDirection(@);   
. O- K9 d3 ~/ B1 k4 c( m- [2 @                                if @.Destination /= void then. N. O% V/ X; Z7 G, [) }+ t( }  }2 o
                                        @.Destination.NumReservation :=# R  }$ ]+ V3 J; ~
                                        @.Destination.NumReservation + 1;  x8 m  |8 J9 j. B$ Y7 q$ x$ C  T3 A
                                end;# m) [  ^3 C* m  t+ g2 E5 y
                                @.CurrIcon := "drivingHome";( o- M: I% B* l8 N3 d- f9 p$ A/ r
                                @.DrivingHome := true;
9 @6 S3 ]0 ^3 x; L0 m5 q: n  J                        end;
  J) N7 \7 Q6 @, g                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
8 B1 Q, T+ D) h: E" A5 s                        part := @.transpOrder;
" M6 f, `3 n; ]& }2 H6 P" J                        part.move(@);-- load part  j2 }1 b; k! s
                        @.CurrIcon := "load";
: z0 n6 N' G3 a$ Y' u; A8 G: @                        GlobalDistObj := part.globDestination;: [/ a3 {: Q0 i2 Y! W3 A
                        assignLObj := rgmanager.rgAssignL;
, V" ?9 F) u1 J1 ^2 Y& h3 K, J                        row := assignLObj.getRowNo(GlobalDistObj);* _: C. ?( u) h/ J- N; m; B# J1 j
                        if Row = -1 then -- since 707 Y" D- ?* C( V, j' C
                                if lan=1 then9 T. J+ T+ p$ D- B! {
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),5 ?/ N8 P4 p5 `6 Q1 a7 r- u# g
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
' V" X! B0 |* z, O. T$ A/ Z5 c  K                                else
5 _* B6 `0 ~/ E$ D! r                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),7 J. I" L4 n9 B$ u9 p' I
                                                to_str("in docking station: \"",?.~.name,"\""));                               
2 ~( p! F3 }( z; {                                end;
$ P; e1 ^/ E; j/ K6 {( Q                        else4 T7 }& q4 p+ g5 h" ]* i: }: |
                                @.Destination := assignLObj[1,row];
9 ]  R% ?2 k& O/ e4 v8 p0 ^/ z% P9 B                        end;                        % Y' [( n$ w! I: N9 V
                        newDirection(@);1 b) l+ C& L/ I
                        @.HasOrder := true;$ Z5 a* h9 m3 |( i) W' p
                end;3 V$ Z8 F/ }# \
        end;! b" v6 ]* {( z
end;        -- of the method& s  g) }- h/ z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
, }) @6 u/ m9 f& H5 h& y7 ^
; d! x7 ^% j6 E4 g$ b这是AGV_putin中arrive的method。
0 \% |# b% R; T: W, j+ T  Y1 A& p+ G: C- t. |* c( v
当到达物料速度越高时,这个报警更多,
" }) a  Z: Z4 ?6 ]' l, l% P可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。8 A+ K9 k6 E0 c# f; |" M4 Y! z
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
6 W# b# A6 r" `
" N" L; m. S0 ]) Y+ g另外一个小建议,就是move,所有的move都可以这样
0 ~; G  }2 J9 F/ T: f, n1 J. |9 Wif not move() then debug end
- d) N- Z" b( V* K# h4 \8 V6 `4 h4 ^这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。! Y# H/ S# i2 q( d7 t
plant simulation中的free libraries有AGV模板,
; J2 A; E, j& ~里面也有案例。
' v  N; c$ f  D& _7 ?我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
3 d. q. g+ B* {: J3 z- H
, e+ y: @( o: s/ V+ r. Z. b我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 , L1 }0 U/ B7 n6 A2 k; q& c2 S$ l

; b" |& i$ w0 y那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
6 J8 m$ A: V- S+ q! Z! Q这是AGV_putin中arrive的method。- u2 r" P: |; f! k1 E' Z

6 E7 E  ^* }6 X2 F% D+ m当到达物料速度越高时,这个报警更多,

" X: c6 k! A" c/ f另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-21 12:14 , Processed in 0.015513 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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