设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5608|回复: 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'
: R% S. A5 i; d5 _7 u*/
6 a' A' y) w# R" c" Y2 @is4 c. q, v& Y& M- c, D
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
! }& Z" ~" b1 r5 |) ^+ }do) u, p; C2 v1 n
        Lan := rootfolder.Internal.Tools.AOLlanguage;
/ G& ^5 l' o- o" w3 a        if current = @.Destination -- else return" F! k$ ^9 Y+ Y( D! C. @, P
        then
% T! g' H% N% t  H8 J9 R                @.Destination := void;
4 z; \( w/ g6 W! y% [( f% I                if @.occupied then
& n, ?1 ^5 p6 i, X( b' ?- e9 {% r                        part := @.cont;
5 E$ H$ W! c5 i4 W; \: L/ H                        @.transpOrder := void;8 o& l# N. W  D: z0 g
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
* e+ A# j$ j8 u+ V4 E# z1 l                                @,root.eventcontroller.simTime);
  [/ |- |; n7 o( M% d* }$ f. P: }                        @.HasOrder := false;' R- M" @! B# k  w2 v/ u$ R
                        @.DrivingHome := true;( F) a4 M6 }; h" V1 g8 g8 [
                        rgManager.tryToStartTransOrder;& s) s2 [& O% B0 i. Q! Q
                        if @.Destination = void4 n) p6 S. z# o( v/ c8 K6 u( c, d
                        then -- no transport order for vehicle @
6 m' M$ F( z' Y8 g                                @.Destination :=, H8 F1 R" Y" {" y, p! I+ n$ I
                                rgManager.nearestFreeStation(@,track.~);& g  H- C/ [9 c5 b
                                newDirection(@);   3 }) I" @0 Z8 t
                                if @.Destination /= void then& ^, l& F! q) Q( ], n
                                        @.Destination.NumReservation :=  h( k% M+ T' F( M! Y7 ]% e
                                        @.Destination.NumReservation + 1;
5 [6 i) `. ~3 `1 {8 }                                end;
0 u4 Y3 p$ s2 a( q0 C: S                                @.CurrIcon := "drivingHome";
" A! R" y/ M6 a; o7 z) [  F                                @.DrivingHome := true;& R$ Y% v, Z) e; p! f# n
                        end;
- Q% e" I. T; q  G                else -- the vehicle @ is empty, both vehicle and part are in the same dock station6 g2 K+ W0 C  e0 O+ w; n/ K: q
                        part := @.transpOrder;0 }) \  R7 h6 z+ ~) p
                        part.move(@);-- load part" X# d: n2 M: T# H8 ?0 v% E1 e
                        @.CurrIcon := "load";
3 R2 w9 Q7 G& C" R                        GlobalDistObj := part.globDestination;
* i: e5 X0 j9 N6 O: _                        assignLObj := rgmanager.rgAssignL;& Y9 i( s2 r' a1 R& O! h- D
                        row := assignLObj.getRowNo(GlobalDistObj);
  Z) }, \5 K$ B- V9 y0 M% `                        if Row = -1 then -- since 705 Y5 }1 ?1 d" {: T- K
                                if lan=1 then
1 P8 S# D' U: h. N0 g. t                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),) n, w  v' W* @+ Y
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
# V' |8 ^! |; }" m9 {1 n& t                                else
( [& u4 z& e# W                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),! t+ b) [  ^0 I9 A0 j2 A  ]
                                                to_str("in docking station: \"",?.~.name,"\""));                                5 h2 T6 z4 O2 k3 k0 d
                                end;) N" ?3 P# N8 N- y5 T; Y& O  L
                        else
- H, ?8 {4 W  E; U$ j! W3 X2 L                                @.Destination := assignLObj[1,row];
1 D- J. L! U5 G! w# s                        end;                       
. I  ]% ?; R2 H' i* M+ G                        newDirection(@);
" f. F: h! }$ Z  {4 g1 m- G                        @.HasOrder := true;
! D& Z! t( w$ {& U# w) ]* ?                end;* ~1 }" r! \8 ~( M* n; ?
        end;5 I: I  L/ }5 ~$ [/ {1 b, S
end;        -- of the method; x/ G3 M8 Y0 |' c/ J* n/ Z, w$ b
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 . u# B- Z' c3 F- s: P
: L+ e4 b! n/ s" K  ~% T
这是AGV_putin中arrive的method。
1 K6 [# }* y- M1 @3 |/ A6 V5 ]0 ]  g: e' W4 ?0 v& b
当到达物料速度越高时,这个报警更多,( D" ~4 u' E; D
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。0 d# B" f7 _, z. w3 k* ?& H
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?0 h! m! Q7 i# u9 p; z; ^6 P  ]

; X9 g- h# M8 ]) h8 I另外一个小建议,就是move,所有的move都可以这样9 b# F/ x) i( G
if not move() then debug end
9 Y+ x. M" d9 V这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。3 c' q7 g* Y. n$ S# O/ t
plant simulation中的free libraries有AGV模板,
4 C. E' F; ?8 w$ h里面也有案例。
; ?1 D8 t$ K) v我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
5 l2 z0 _2 `+ U' o, r9 J& L; X% F/ n
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 3 w, {; b6 h7 o2 |

5 q& R$ e% [, K那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
$ W$ N( i4 R8 X- k0 o' D- a这是AGV_putin中arrive的method。  R: H( v* q/ O. f" M1 K% c* p
. H8 z: s) w2 f3 {
当到达物料速度越高时,这个报警更多,
( K/ m$ [) {- e: z% c
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-8 18:45 , Processed in 0.019086 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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