设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8217|回复: 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'
) ?; |& S, g+ k# M5 M- |*/+ k; B* b3 L' H( u4 x
is
/ z$ U1 c4 i$ H- ^7 E* O, a        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
1 P2 P0 {# X; X! M  S/ h  ]0 d3 sdo: Y% z! G0 m9 X6 |. F' N( K
        Lan := rootfolder.Internal.Tools.AOLlanguage;
3 _9 V. [7 {$ O. v* z2 p3 }% V        if current = @.Destination -- else return4 |) s$ e( \  L' P0 k, {
        then
8 v+ Q+ P0 H" ?+ @9 {. d                @.Destination := void;! k' O. {9 U: `, l% o  U- U
                if @.occupied then
) c% @2 ]0 y9 o- c' |                        part := @.cont;
$ z0 n7 F4 x+ U5 ^+ s' P9 p# W; P                        @.transpOrder := void;9 `8 u. R6 Y" w/ q: j2 M" L
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
) k9 x, g' f0 Q# a- Z8 z/ k                                @,root.eventcontroller.simTime);
9 O4 p& ]4 x+ L; b* `2 z                        @.HasOrder := false;
3 y  q: C% V; Z8 S) }2 A                        @.DrivingHome := true;
- c3 ^1 a' P$ f8 j$ q: i( r8 o/ Y                        rgManager.tryToStartTransOrder;
5 P# a! |# T9 @* l3 o                        if @.Destination = void4 r+ N) i7 X4 a! Q. G
                        then -- no transport order for vehicle @3 R+ `' M/ y6 k" q
                                @.Destination :=/ `7 j, T1 O$ o/ P: `, c
                                rgManager.nearestFreeStation(@,track.~);
! T8 }4 E% b% ~8 b                                newDirection(@);   
' i. L: s* Z$ k$ \2 Y                                if @.Destination /= void then
' f0 G# F/ G+ b2 ?& J                                        @.Destination.NumReservation :=
" }2 \/ s3 L3 d6 f& s                                        @.Destination.NumReservation + 1;7 C( H: W! K. g
                                end;* \1 e) e. c8 _* w/ n5 s
                                @.CurrIcon := "drivingHome";
1 P1 o$ _( E' |$ v9 K( ^6 C% ]5 N                                @.DrivingHome := true;0 R4 Q6 r2 z8 C+ E% v, h
                        end;2 y% s. u3 \  i0 e/ `* Z
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
0 V# C/ [# z& P9 F                        part := @.transpOrder;
4 V8 o  x! T4 [4 Q% p: f                        part.move(@);-- load part4 V# z9 H! D" i& a( C
                        @.CurrIcon := "load";% V2 b/ E+ D: O0 [
                        GlobalDistObj := part.globDestination;
' J5 o( ]  G6 _8 v' \                        assignLObj := rgmanager.rgAssignL;6 @. d7 I5 J# G+ s; y1 B9 ]8 }3 A! h
                        row := assignLObj.getRowNo(GlobalDistObj);
! u1 o: r, k- q+ U                        if Row = -1 then -- since 70! w3 c+ x' q* [- j) A; q
                                if lan=1 then
$ I/ n; o& S" S' R                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
, I7 O% l, z4 T1 h                                                to_str("in der Andockstation: \"",?.~.name,"\""));9 k0 r1 D, V0 y2 c) X4 M- a
                                else
: l; s4 T; H5 T                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
/ n4 t8 g6 E, r0 p9 x, S                                                to_str("in docking station: \"",?.~.name,"\""));                                % g# z9 P/ C' F% `, o
                                end;
; W7 b5 b# ^- \% _+ x4 n                        else
. h; D1 v7 i- i) o- }                                @.Destination := assignLObj[1,row];
0 Z1 o% Y7 H; u& d! k! A- t                        end;                        5 [6 x* N7 y" B6 @$ W+ x
                        newDirection(@);
) e, S! x% h( r/ U3 w                        @.HasOrder := true;
3 u( j& Q) j$ W3 p9 L4 ^                end;+ L3 @! k; _+ E: O- c& M
        end;
4 L% c" ?. L! B2 Z8 v; {  Vend;        -- of the method
+ H/ D: n- _* s! k4 V, Y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
/ z: u, \6 `& k
8 g4 B/ d  V2 E, _! o" M/ E这是AGV_putin中arrive的method。
  k) y& J! _6 M2 }5 k' t2 v' f1 v  Y" a$ R1 a9 @
当到达物料速度越高时,这个报警更多,
* J; J& E4 D1 P/ B8 @7 ^' R可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。( k" T; ^9 m! B
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?0 \. j+ ], ?% p

5 V7 n1 Z6 R6 R另外一个小建议,就是move,所有的move都可以这样
$ H" L$ M/ f/ K0 C3 y/ ]0 Tif not move() then debug end
3 o. T; q! Q+ ?$ K4 N/ R这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。. b3 |$ i" |$ e' G- x
plant simulation中的free libraries有AGV模板,) J) M- [  S* B5 V; q: {4 _
里面也有案例。/ I3 y# e' C' A2 Z1 F$ X
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
/ T& [  j# F' ?, h$ _
" M$ M3 G2 w" v2 v我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 + v& C# d( g9 d' U- b8 `: k

& |# X6 K: U) X% m0 s; A7 M" Z8 ]那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ' l# k/ A& ^' d# Z  Z; _
这是AGV_putin中arrive的method。, f& |+ q1 \0 \, `2 g: G' g
* a( g+ ~/ j6 [- a
当到达物料速度越高时,这个报警更多,
6 g$ \  _$ s; e) c0 w5 x
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-21 12:55 , Processed in 0.018039 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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