设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6957|回复: 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'
2 M( k" I# x" A* |% _: p& \* I*/
& f! B3 m6 ?8 E" Xis; t; G6 x; D. c/ F# h3 L6 }+ R
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
/ Y4 W4 C# A% ydo
+ @* I8 a1 a5 i8 w! w# C        Lan := rootfolder.Internal.Tools.AOLlanguage;
4 N' U+ X" |% `" u' u        if current = @.Destination -- else return. ~2 z% Z' t% T4 E3 m
        then& B1 ?# C4 a7 w8 R
                @.Destination := void;( R. p: u7 C, H) U9 `# R' j6 R
                if @.occupied then) ]: [* r7 {, Y4 |# s2 |
                        part := @.cont;3 U5 L; \+ v1 O& A/ h* k
                        @.transpOrder := void;
& Z  P' K& B1 Y$ J" H                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1," k9 g( s5 c- L! n& j" A. ^
                                @,root.eventcontroller.simTime);% s6 F' m0 X6 g1 P& I. }& ^
                        @.HasOrder := false;* E# d4 z' C2 ?7 f1 H
                        @.DrivingHome := true;
+ S6 q  ~, b. i) A                        rgManager.tryToStartTransOrder;1 y  i' D- V- r9 P/ O
                        if @.Destination = void
( ~$ R1 P- ]) F  _# [- j3 |- s                        then -- no transport order for vehicle @' e  o' l8 l1 L! v( b
                                @.Destination :=
/ Y  \/ ~; Q. v4 J5 I  {! q3 q                                rgManager.nearestFreeStation(@,track.~);
  o# }: J0 u% N. E3 O9 U                                newDirection(@);   
4 Z& w' f6 `$ e) {. t) ?& x                                if @.Destination /= void then
& m* J, z3 H! K* X. B# u8 r5 f                                        @.Destination.NumReservation :=& X4 d. N  [; z' d% q
                                        @.Destination.NumReservation + 1;4 F) y, L) ^& h7 B
                                end;
8 c& ]7 ^/ x1 ^) w                                @.CurrIcon := "drivingHome";& V. R/ [4 L0 M' ~9 H1 G
                                @.DrivingHome := true;
. p( s( `( [: w" D. {                        end;
: j5 ^" @; H9 D7 q  g                else -- the vehicle @ is empty, both vehicle and part are in the same dock station, D" y7 W6 m' Z! y
                        part := @.transpOrder;6 v/ m. v1 G; u, U7 T! m
                        part.move(@);-- load part
: J2 m# s, L, h                        @.CurrIcon := "load";2 a2 }1 S& U" _6 v6 J
                        GlobalDistObj := part.globDestination;% l' Y4 R- _1 ^
                        assignLObj := rgmanager.rgAssignL;7 Z9 e' S5 E. ~/ w% S
                        row := assignLObj.getRowNo(GlobalDistObj);; y" X9 u- }1 G- i& f- E
                        if Row = -1 then -- since 70
; U2 A% @$ j' V/ [7 V                                if lan=1 then
# ^4 f: m; x6 Q3 J/ C) \, U                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
3 F* k2 I+ Y( a7 C+ {# y" V                                                to_str("in der Andockstation: \"",?.~.name,"\""));
# o) b0 ~, U& f                                else1 a% v6 x2 J: J/ f& F( s8 d& y
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
* B" i/ D1 b7 W. D# v! K                                                to_str("in docking station: \"",?.~.name,"\""));                               
4 K) a/ U$ l5 ~8 z6 r8 C  ?4 A                                end;: B6 |. V" u( c; l' D
                        else3 ~! X5 M- c/ m0 u
                                @.Destination := assignLObj[1,row];( P" f, i6 u* M/ ]+ k* g3 S' F
                        end;                        ; Y3 ]; d% n0 B/ k, h
                        newDirection(@);
/ D% _+ \% N9 _! e' c                        @.HasOrder := true;  f2 U9 f4 ?1 \, x+ C; R3 z0 m
                end;' U8 Y+ {" P! {! B4 g
        end;% ]. b1 e% U( v$ P/ {
end;        -- of the method. P  r1 l  ]. E2 V
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 + U$ g# s1 a& v" c, K

- ~: h- O* G0 F5 L7 d7 M这是AGV_putin中arrive的method。  S2 X/ ~! I( l. Z- b$ T- P: m8 V
4 Y' c" N% Q5 s- Z2 A" C6 x
当到达物料速度越高时,这个报警更多,
- {( A6 b% ~7 Q" C可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。5 v- h4 n% M- T% w5 E9 x
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
3 L0 G+ y. R. k' z. [4 W
$ O7 `% e" \  `/ K' k! Z! ~另外一个小建议,就是move,所有的move都可以这样
6 W' d: ~3 H$ i" w8 }if not move() then debug end
* i6 t$ m( v, }( m4 `; G& {; J这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。1 V' A" F7 F  _* ?$ F$ ?! D* P# ?, s
plant simulation中的free libraries有AGV模板,0 q$ D9 d) G0 p$ e1 W- ~
里面也有案例。. A; Q  u6 m: g6 z" [& B
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
; w" f/ c! J; E6 h9 ?" @6 W# F  h- x9 _# i' x7 t! |
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 7 g! ?: w* [+ d

) B2 P' P% N  j- r7 [那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
' d- T$ ~7 ^# N3 Y, H2 f7 Y这是AGV_putin中arrive的method。
1 m3 Z. ?8 A5 i+ {1 |  o/ M7 B9 N
! F7 v- Z, N5 Z当到达物料速度越高时,这个报警更多,

/ H+ _8 q4 q0 j! ^" t另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-8 04:43 , Processed in 0.023959 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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