设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8422|回复: 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'/ E* H) R7 d) K+ Y2 j" ~: O! G
*/+ r# f8 E( R! g  l3 ?7 x
is
' b6 X  C: v* ?7 n5 v7 [$ L9 |8 {        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
' o- m, Z( u$ `1 }do. y8 N2 \2 \7 J+ E1 J! b
        Lan := rootfolder.Internal.Tools.AOLlanguage;
2 }+ N; M4 v+ w& m, G        if current = @.Destination -- else return. z$ |5 K6 S1 l6 O3 g% t4 L
        then
1 a6 t6 {6 Q* H! F: N! p                @.Destination := void;9 I2 {* ]3 U' E
                if @.occupied then  W! N; W. ?( W. z, o8 c6 Y
                        part := @.cont;
+ l3 I8 l. e$ X, a) T" b' K                        @.transpOrder := void;: w% k8 Z( `- H9 E7 _  i- B% @
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,! h. W; R9 C# t6 h1 X) p" ~
                                @,root.eventcontroller.simTime);( z( O. x& q. |2 u
                        @.HasOrder := false;
  Y) W% ^; E+ l0 c# g                        @.DrivingHome := true;7 p+ J4 v: U* U( ?
                        rgManager.tryToStartTransOrder;( r! T' J8 j- l7 ^. z+ z7 H
                        if @.Destination = void
/ u. K3 o1 ^5 j5 `' F, G                        then -- no transport order for vehicle @
9 n7 Z9 E' m" f/ h  m9 E' N                                @.Destination :=" |% C3 q) }8 t  P5 k0 R# I
                                rgManager.nearestFreeStation(@,track.~);  X; q1 E, }) t; y# Q  r# k
                                newDirection(@);   
( X2 X8 F" |+ P+ z8 h; q. H                                if @.Destination /= void then0 M8 e. I' T3 _* _/ [% I4 u, D, i
                                        @.Destination.NumReservation :=; }+ o' T( J4 u, z' z* J
                                        @.Destination.NumReservation + 1;
" E2 p3 W6 b  x4 g  U                                end;
. S, M  ^% W% Z/ k) b0 r7 J                                @.CurrIcon := "drivingHome";$ Y  L1 l9 _8 l5 _+ k
                                @.DrivingHome := true;
: I! A! ?) n9 }5 I! \8 h/ m                        end;! ^, i5 F' r, o; e6 o1 x6 F- q6 V
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
! [8 v: I% y2 [                        part := @.transpOrder;
. j. ^; q& ~% P/ e3 }6 H                        part.move(@);-- load part
- ?: K8 `4 P7 y5 c  l! F2 `                        @.CurrIcon := "load";
. m; u0 E, @$ I8 _# F                        GlobalDistObj := part.globDestination;" Q0 m0 Z, l$ Q3 G- s
                        assignLObj := rgmanager.rgAssignL;
' \% T/ v" x) `/ N! {                        row := assignLObj.getRowNo(GlobalDistObj);3 m) g: u. \& f$ I7 W, e  Q5 F
                        if Row = -1 then -- since 70
2 p! Q$ N' t) ^, Z! [                                if lan=1 then( T5 }! z8 e( T5 g9 G
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),8 o5 o. ?; J3 ?
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
# m+ k' g9 O( I/ x! n; m! f                                else
0 o+ L( }$ m8 K- v: n- `& ~                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),7 J/ T$ O8 ?9 F+ |
                                                to_str("in docking station: \"",?.~.name,"\""));                               
; W' D& v$ X; X  \! p                                end;0 @: M4 _& B; P$ J/ I0 Y
                        else; E" w+ U/ m/ j/ \
                                @.Destination := assignLObj[1,row];- q) h/ q7 @8 m& Z  y
                        end;                        $ V) ^2 o. ^7 g4 b3 b) [
                        newDirection(@);& K6 c+ K+ |, L' B$ |
                        @.HasOrder := true;  g4 P: t! ~3 e1 v. z1 N, T# `* i
                end;
2 P8 p% P5 H1 a5 B8 ^" {: Y        end;5 d- Q3 Q1 R* l9 U1 B
end;        -- of the method
/ W% w, H; q4 N1 }3 f# @
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 & H& e' s' v8 u+ y' g* \6 H
! s; P9 M* S. z( G, o9 C
这是AGV_putin中arrive的method。
, A, `- q2 y/ X0 B' z- u0 ~
/ K  J" o' x( K6 ^  ^! K: h0 I当到达物料速度越高时,这个报警更多,/ Q9 `1 h0 N9 M/ c) K0 U
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。# \! p, ~; J7 ^- C$ g2 {
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?; n' x$ l6 E: r: K4 A9 ~

4 R6 o2 j& v) ~3 v0 W# C另外一个小建议,就是move,所有的move都可以这样
4 X$ ~9 `# e9 \  L/ o) H5 W. Dif not move() then debug end, x# [& |8 X9 u7 G2 x. ^5 _
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
7 e% C% w) v6 o( oplant simulation中的free libraries有AGV模板,
  |* [" I! `8 A& A5 n里面也有案例。
; X4 _$ n- K6 f0 C% c% w7 }/ g我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。: G9 q' c& T: k# @' r

3 Y4 _; T1 g6 W$ J9 U我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ! f0 Q' V$ m+ S: J: b0 d

0 W' E5 Y  X0 [5 _5 _' w那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 , ?: t7 n9 g5 g; i3 `/ J% @$ e
这是AGV_putin中arrive的method。
4 l7 }+ x5 m+ b  _( u$ ]
6 I$ w7 O* |" u: _& \( C当到达物料速度越高时,这个报警更多,
3 A$ ~/ J- H! X. A2 E2 T
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-2 20:56 , Processed in 0.017997 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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