设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6913|回复: 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'
+ _( I# X! t9 ?! ?' @  W( ]8 m*/" h2 I% k1 L: W
is" v0 e4 R7 E7 I2 L8 g) n  P1 t
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
" E. n. i5 G5 m& E: D0 d' o) Ndo  A7 g( I- t( n9 r8 e2 G) V
        Lan := rootfolder.Internal.Tools.AOLlanguage;
% ~5 z: \( t6 r3 C; _9 o        if current = @.Destination -- else return% {. Q: L& W. f. z. P( e7 U8 c* K
        then
& J. E0 j$ T6 L; Y                @.Destination := void;
8 s. T% k+ m9 X( ^. V1 M# J. p& L                if @.occupied then' [* Y, i: ?2 K/ M3 l: O3 R
                        part := @.cont;* N0 U2 `: q( p/ _) F
                        @.transpOrder := void;
, Y, _/ j8 P) s3 O                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,  Q0 ]$ P1 f0 S. U/ d0 s) p2 @
                                @,root.eventcontroller.simTime);
) ^- [! R$ q) ?4 N- K1 ^                        @.HasOrder := false;. w* ^/ e. x  _+ r
                        @.DrivingHome := true;( k1 z2 {0 U* T+ ]7 g( @  p
                        rgManager.tryToStartTransOrder;  Z3 L0 k" ?; _. F6 L
                        if @.Destination = void4 I# ^" i# _* _
                        then -- no transport order for vehicle @2 }" x% Q: m/ D" g/ {' z
                                @.Destination :=( T3 s$ c+ H4 r+ J& M: ~" {: }- H2 K
                                rgManager.nearestFreeStation(@,track.~);
4 F* p: {2 t. j4 [, j! G, s                                newDirection(@);   
: F% z& ?0 f% Z+ V% }                                if @.Destination /= void then
/ L5 T! a  ]* p% v* x) [9 h" r* ~                                        @.Destination.NumReservation :=& l0 T9 F, U2 M0 k# l9 b
                                        @.Destination.NumReservation + 1;7 O- x9 D( h2 f
                                end;6 K: h; w: }, r7 @. Z) r- F& G
                                @.CurrIcon := "drivingHome";! X5 N& q) K% g* j
                                @.DrivingHome := true;
7 D% u, z6 _, M' q& ~3 R, O                        end;8 V) Y8 `* g" x1 I
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
' F* i1 B  C3 L- e' o, w% ]                        part := @.transpOrder;9 z9 R( j) p: c: q3 ^
                        part.move(@);-- load part
/ m' g* C3 h* i* H                        @.CurrIcon := "load";% m! [# d0 c& n* Q# Y
                        GlobalDistObj := part.globDestination;
9 U! v: m- ^+ X; u  f; j6 |                        assignLObj := rgmanager.rgAssignL;
  N- Z) |/ s0 F+ {" }6 p8 c/ i                        row := assignLObj.getRowNo(GlobalDistObj);
8 b" p+ G' A* {. h                        if Row = -1 then -- since 70
( Q- X+ ^' F3 R6 T( w                                if lan=1 then2 l5 ^; V6 `9 i: Y8 N3 u
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
6 w* K& x2 |: c, G  n                                                to_str("in der Andockstation: \"",?.~.name,"\""));4 H( w! Y8 q% O/ \- {9 v
                                else
) o9 O5 `" O5 J0 _3 x" W3 R9 g7 S  k                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),- w$ R4 P+ }( o! g. `( s7 j
                                                to_str("in docking station: \"",?.~.name,"\""));                                - l+ q% O3 V& f; W" z7 F* {5 U4 O
                                end;: q% c% S9 b/ w% \7 m! j, Q
                        else
8 r9 z) P5 f' B0 I- L' v0 M                                @.Destination := assignLObj[1,row];6 K/ ~! b3 ?$ x5 D' X; W
                        end;                        * Z  _  n$ q3 S6 g9 ]9 @4 F6 r
                        newDirection(@);
7 L3 @8 |4 V6 _' S: R" t                        @.HasOrder := true;- m( A7 c6 h; N7 l# s0 Q" v  y
                end;
& k3 ]$ U4 h. T* V        end;
6 P+ ^0 C" \1 I& E+ N4 s. N; C% }end;        -- of the method! g, {# w+ H+ b$ U! U
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
7 [4 y$ G, Q+ [2 @4 y( J6 C$ O5 x; B1 ?6 Z2 `$ q
这是AGV_putin中arrive的method。
6 |* ]4 g5 R, e' L* j3 ^, h7 ~7 M
* B1 s1 e) j$ x: x3 d! a当到达物料速度越高时,这个报警更多,
* p5 ]  `# Z, O& h可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。# n+ h5 Q1 H7 ]* f# j
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?: }& J) C9 a* \, G: B# S

% u) u1 R8 u4 o$ T9 T另外一个小建议,就是move,所有的move都可以这样
# X- h+ o& `0 D; ?! Hif not move() then debug end7 l3 r  f  ]0 a8 q& h- S9 S
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。& B. |4 u) A6 N6 P: S
plant simulation中的free libraries有AGV模板,
& `8 E9 Z0 `0 H% b里面也有案例。5 V+ u/ d2 o$ F5 V+ v5 q
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
, W' r. ^% n7 i5 a# {- v% A1 }9 ~
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 5 M* R* z2 F3 Q/ N/ I  C) J5 L* I
5 T9 a5 Y; I0 @0 B: _
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ; D4 }+ h" ]0 y0 w: O' I
这是AGV_putin中arrive的method。+ |1 V1 |; g9 N3 v& }' _/ A
7 Q  y- ?4 y+ i, w; Y
当到达物料速度越高时,这个报警更多,

9 n- A  B# N$ B4 S4 ^2 g  L另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-6 12:04 , Processed in 0.024939 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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