设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8225|回复: 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'  U% N5 \. s6 p5 V. Q0 v# b1 Q
*/* \$ T& ~8 G* N1 L' W$ k  ?
is9 ?( |% \1 j  R* X
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
2 v. E: a  }& h' L& |9 [do
3 O1 q. {2 D, b  p        Lan := rootfolder.Internal.Tools.AOLlanguage;; @  k7 ^. ?- x0 {& t1 X* g
        if current = @.Destination -- else return6 H! O. ^$ g2 s' ~! v$ M9 F; f
        then4 B2 I7 p7 r4 h2 g
                @.Destination := void;
( x0 F8 r( B. {                if @.occupied then6 s% S9 |# ~, N3 m3 v
                        part := @.cont;
5 g% l- M6 G7 v4 c& w4 Z                        @.transpOrder := void;: g6 I8 ^& M3 \( C8 K/ c
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
2 b: x4 g& X# {% A+ `                                @,root.eventcontroller.simTime);
* D3 ?6 X5 x; Z, H' \, S( o# W& H                        @.HasOrder := false;
# M& k* Z% z' g' D9 o% S8 T' s7 l: S2 h                        @.DrivingHome := true;
, d; Z4 N( r( L' V  f                        rgManager.tryToStartTransOrder;
6 r9 F- E# w" u* e- X& O) K( ~                        if @.Destination = void+ v7 g6 c2 G- Z5 h
                        then -- no transport order for vehicle @8 X) n2 e$ X" S- F0 S8 t: F) B
                                @.Destination :=) W$ c" k+ o; O$ _
                                rgManager.nearestFreeStation(@,track.~);
. s5 ^( v9 f7 E                                newDirection(@);   9 R/ w# R* ^: q6 Z
                                if @.Destination /= void then
5 Z2 j& b7 S  W                                        @.Destination.NumReservation :=3 q2 X" y0 `+ z9 {2 Q4 }
                                        @.Destination.NumReservation + 1;
5 p: m" }6 c! v, m                                end;
. N) n2 a: P0 D                                @.CurrIcon := "drivingHome";9 I, G! o5 ]: U4 R2 ]/ J$ V$ s1 R
                                @.DrivingHome := true;. s/ ^+ E* E# J! o4 Y& l& v
                        end;1 N* T/ H7 b+ i8 s8 E" T
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
0 w" v4 r2 J3 {1 Z9 r: Z                        part := @.transpOrder;8 B# ^- L& H0 t/ X1 k  l
                        part.move(@);-- load part
% y( f( Z/ c' q                        @.CurrIcon := "load";% ?. ^1 X" `( h. |# Q9 r
                        GlobalDistObj := part.globDestination;% K+ _2 \- V8 J: ^! i( T
                        assignLObj := rgmanager.rgAssignL;
6 ?/ z4 w6 q9 `: D" a# B                        row := assignLObj.getRowNo(GlobalDistObj);
) A1 z% {, E4 I                        if Row = -1 then -- since 70& m; ?( B, {0 h/ z6 W
                                if lan=1 then, s4 c9 M/ s; e
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),$ {3 c$ @' a" S1 x+ g
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
& _1 A3 P7 G- A* s8 b  G/ b; @                                else0 A$ |  Y1 i/ t% v! g" r
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),7 ~* ]$ \" u8 z; `9 J& ?
                                                to_str("in docking station: \"",?.~.name,"\""));                                & C& S' i' y+ A
                                end;! d4 r  ^5 M" x
                        else% y9 Z( s+ k4 y9 m
                                @.Destination := assignLObj[1,row];
8 o6 @% C2 O4 b1 U, A* ~2 P" G                        end;                        + w, Z( }+ F. n( g; P: N% \
                        newDirection(@);
- R/ C0 t- y  A  @4 c                        @.HasOrder := true;
/ s- Z0 W5 H0 m. Q                end;2 R) O, }" `0 ~2 o5 x; _
        end;1 s, _: @1 B5 Y% D6 a' @% o
end;        -- of the method
/ T: L/ r: ]; J
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 5 p4 o* I2 E: T

4 F6 Q: S! X( L这是AGV_putin中arrive的method。
) M! {! Y; Z$ L$ o6 r1 c0 A1 i, |/ t" S+ [2 n7 e8 F8 k7 a
当到达物料速度越高时,这个报警更多,, v2 a" y; @5 \+ V6 e" e8 N* p4 X8 {
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
' s, H: i8 U0 d程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
; }4 Q7 S2 V+ Q  j! L. D7 q; L/ m  ^: G
另外一个小建议,就是move,所有的move都可以这样6 A2 e4 b: X6 D# c
if not move() then debug end8 E) D& n4 U' G' V; G' F# b. o/ Y
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。0 f; B' Y1 d" a; o7 q; e
plant simulation中的free libraries有AGV模板,
: a- V3 g: T% n9 r1 Y里面也有案例。
4 N+ s# j! t. K  F% ^我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
( U2 s; g8 {& K7 |: ~" J% T
& d" N9 t  E) \* @( S8 H2 z我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
' K" e  V2 ?7 A& g6 K; ]# d: h4 a+ R1 G8 Q; ?
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
8 e# x" J. U  a9 ^/ ?5 G" i: f; O这是AGV_putin中arrive的method。
+ n6 {4 E" h& |0 ^% ^" p
, p* a6 H; [2 y: m: e" |' Y. F当到达物料速度越高时,这个报警更多,

3 T. t- W, D* T4 R! w& S  X另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-21 22:58 , Processed in 0.026134 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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