设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8372|回复: 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'
& |) |) U2 b7 D, i. A1 j; F*/
- w; l( @: H* x' @+ [& Gis& c  O  Z- K" s1 J
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;) {/ c$ v  A- m  ^1 p: g2 `( N
do
, X: P# h3 l4 `5 B0 y5 @        Lan := rootfolder.Internal.Tools.AOLlanguage;2 u; C( |; d6 P/ T7 W
        if current = @.Destination -- else return
! w* g: L, I0 G+ ]. G        then
  w  \6 r" m& {+ {                @.Destination := void;
8 Y- G/ ~+ t. E- `: Z3 y                if @.occupied then" R/ G% `2 A7 v/ W- F- u/ i
                        part := @.cont;& @  V+ U1 t# W
                        @.transpOrder := void;
0 |  g/ |3 k& R+ f2 e                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
4 p1 G. e* C0 Y8 J7 h: M                                @,root.eventcontroller.simTime);
4 G) x0 f5 G  G" I; L* n" `                        @.HasOrder := false;
/ c9 S8 U9 b1 ]; W  f                        @.DrivingHome := true;  T& B0 l" j- b, K  i' g: t) s
                        rgManager.tryToStartTransOrder;* ^5 b- P$ V  M& M) k
                        if @.Destination = void
9 q8 Z& @4 ?6 l+ Y1 n- L                        then -- no transport order for vehicle @
9 y$ U, ], I+ U! a/ U. W, Z' C% M                                @.Destination :=
. C0 g, a! {, D0 h# `+ e2 b+ ~                                rgManager.nearestFreeStation(@,track.~);
' R5 N9 t! r2 S! v$ _1 n( b                                newDirection(@);   
; t7 e) R; @; b1 [4 P% I3 h                                if @.Destination /= void then) q0 `1 U0 U4 c) J7 q
                                        @.Destination.NumReservation :=
6 |; O1 q6 T* w7 a7 Y                                        @.Destination.NumReservation + 1;
" x/ i& }- ?! ~3 C% P, ^; y3 y                                end;
, j! k+ \- x( N1 {                                @.CurrIcon := "drivingHome";  q/ {2 j1 T3 \3 ]. F& K/ }; i
                                @.DrivingHome := true;
; q- _6 A- [2 T& p6 r/ J. E1 i& h                        end;, K6 t2 U) }7 y" K2 M! |
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station: N3 _5 A3 H5 t
                        part := @.transpOrder;9 k' k( v' w( _# g0 P  y+ P8 A% ]
                        part.move(@);-- load part  t8 J. Q) J# ^8 e5 b$ ~* I! G
                        @.CurrIcon := "load";
- l1 p) _( ]1 ?& s7 N( T2 h/ Z                        GlobalDistObj := part.globDestination;% c8 i- F! k' z4 M
                        assignLObj := rgmanager.rgAssignL;: E; u& G8 s9 f7 n6 R( f  R; T
                        row := assignLObj.getRowNo(GlobalDistObj);
/ f) G0 `- P0 b" J7 v                        if Row = -1 then -- since 70) K& K0 y- V( X& p! e9 O6 P
                                if lan=1 then
4 B5 v/ A$ V; v3 M                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
4 v3 O; _- k$ J  G4 O- Y+ k                                                to_str("in der Andockstation: \"",?.~.name,"\""));/ H. n$ A$ i& h2 k5 K. `
                                else5 s) ^8 ^( T' O+ b* ]9 X- Q
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),6 ?7 b! U1 @" f
                                                to_str("in docking station: \"",?.~.name,"\""));                               
+ w: M, B) @( c9 M9 X                                end;
- r8 }* p4 S/ b3 Y% x                        else* T+ s& G; e6 G' {
                                @.Destination := assignLObj[1,row];
8 k0 O2 k" v8 p3 X' w                        end;                       
3 ?4 Y; G; [4 L! I; i                        newDirection(@);, z9 v& c) I+ S2 Q* F9 u
                        @.HasOrder := true;8 Y5 @2 S  m9 L4 Y& @4 B
                end;
$ o9 i9 z8 d* g3 ~  e        end;" {9 G( t; F+ e; I
end;        -- of the method, Y7 f; d8 I1 a0 j3 h5 S5 k
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 6 c/ ]+ J( ~$ \& }; x( ]

0 Z! S$ P* |$ |这是AGV_putin中arrive的method。: u: F7 z2 \/ H7 y( n- q& H& b
' H' O: Q7 N8 W
当到达物料速度越高时,这个报警更多,
5 L- e" ?# R3 P! B0 k可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
2 A0 _( Y! y: C& v2 u- x0 K程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?6 z# h+ _1 J8 |

$ s7 I2 X, x& e- Z# a9 y另外一个小建议,就是move,所有的move都可以这样$ W! }- u$ C1 V  e, g+ b: X2 l
if not move() then debug end
) X  Y- E) ~: x  y这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。+ n0 [3 g& M/ q+ ^1 W. h7 w
plant simulation中的free libraries有AGV模板," l6 c: [7 _) q! U+ r) z
里面也有案例。, ^" G8 w2 O5 x% `7 @1 ]8 t
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。, {; ]" n' a- B, }+ G; n
, F) g- ^1 Z# G' W" p8 d4 ~
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
$ M# x1 Y; L  R" X" w/ `2 F- ^0 o+ y8 @8 C' T
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
7 ]6 h2 L- U# s- z  x这是AGV_putin中arrive的method。
& _1 y  g: V, ]( x7 o$ T* b0 i: V: u& z9 l1 Z
当到达物料速度越高时,这个报警更多,

' y5 R7 t4 v( x7 M4 S3 K4 F( @另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-31 05:05 , Processed in 0.017265 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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