设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5585|回复: 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'
8 ~+ b$ r' E9 s4 q/ N0 V*/
- ]; h7 ~0 s) eis
5 k4 M; G7 b8 z        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
6 n: A. h0 d% {6 Edo2 o) I6 ^7 S# w  Y! B
        Lan := rootfolder.Internal.Tools.AOLlanguage;
  \" n( o6 O- x+ _+ Y: x" Y7 K  l        if current = @.Destination -- else return5 [( p- D: X. K+ |
        then9 C% g0 O; D) M" y3 m
                @.Destination := void;
  n8 _$ Q8 R% K3 c& S* S6 z                if @.occupied then
1 b- M7 R5 _3 a' h                        part := @.cont;8 ]2 y3 D' A% H
                        @.transpOrder := void;* P8 ?5 D, E0 o/ e2 U
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,2 v$ ?% T5 ]; g  |
                                @,root.eventcontroller.simTime);
6 L" p! D1 u+ K+ Q1 @& T                        @.HasOrder := false;
4 O- b6 Y! z( J* `+ [                        @.DrivingHome := true;/ ~" ?8 l# M5 h
                        rgManager.tryToStartTransOrder;
% _5 G9 q2 M, t* X1 j                        if @.Destination = void9 B( I& M5 U7 [
                        then -- no transport order for vehicle @
4 L7 G- B  b; j5 \5 P9 O( i: R                                @.Destination :=
* C$ E, \- p( W& a0 d                                rgManager.nearestFreeStation(@,track.~);
8 y% }; v6 E" Z5 Y; q$ V1 o7 s                                newDirection(@);   3 g# @% ?* K2 R2 F3 K
                                if @.Destination /= void then
: ]. }5 `2 [  {; g4 M                                        @.Destination.NumReservation :=. _% n6 R) D: U. R
                                        @.Destination.NumReservation + 1;
* ^' z$ ]5 `" b: A                                end;/ J$ L1 W4 o; l8 f9 e
                                @.CurrIcon := "drivingHome";
$ A) Y, B9 f7 u4 r, q) z) g, \                                @.DrivingHome := true;% B& I) b: B4 B( f$ `! m
                        end;5 C2 Z  Z7 T4 Q, u
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station$ n/ |; d5 P. |- n' g
                        part := @.transpOrder;) ~$ [% Z$ m  i. z4 ~( J
                        part.move(@);-- load part" h9 r- {5 P  D& K* r
                        @.CurrIcon := "load";8 a+ ]- D) ^5 ?! I
                        GlobalDistObj := part.globDestination;
( w1 e1 x- }4 V                        assignLObj := rgmanager.rgAssignL;
/ n3 f% b1 {7 N) F3 F                        row := assignLObj.getRowNo(GlobalDistObj);
1 u! ~; Q9 j! }, }                        if Row = -1 then -- since 703 J5 f+ i  u7 ?; K2 Q
                                if lan=1 then
! P( H! ]8 W1 i0 T- p+ o                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
. k. t8 @1 o9 B                                                to_str("in der Andockstation: \"",?.~.name,"\""));
- C& b3 O* l/ ?# T' Z$ t2 r                                else  p8 M- E( s6 A, c
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),# \. p$ X" b2 p: {3 d+ ]" R
                                                to_str("in docking station: \"",?.~.name,"\""));                                7 U' j2 w' Q' c
                                end;) F# x" g6 t" T; Q0 N6 H! _: b: b
                        else9 s- B( L: E0 ?  D5 t
                                @.Destination := assignLObj[1,row];
5 ?2 _# U" }6 {+ N. y                        end;                       
$ R. Y9 `& z4 l- i6 n# I                        newDirection(@);( V. E0 _( F( a" ~! N1 k9 t: P
                        @.HasOrder := true;6 s" g$ g: }1 C, ~* N( [+ j- }
                end;. a7 i: ~* P: y1 k) S! o
        end;' {" k4 Z9 o' z) ~, T
end;        -- of the method
8 G9 J, z( b2 n* q" t
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 3 ~" z8 J6 p6 ?5 I
8 E5 w  F, u' r; I
这是AGV_putin中arrive的method。
- k4 J5 b/ P% C4 h7 _% E- K0 @$ D+ O, a* \3 Q
当到达物料速度越高时,这个报警更多,
( X# K# P# ^+ z. \, K" T可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
* d2 F# P5 ?/ U, N9 R, E程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?/ L! R) `* G: G% X/ Z
9 y( y9 s1 i8 u9 g$ y$ ?* D$ S
另外一个小建议,就是move,所有的move都可以这样8 T0 n$ w0 U- C
if not move() then debug end
& h+ M+ j6 o. M4 B5 @7 u$ e5 ~6 z% Z+ V这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。9 b6 J8 }4 S1 P2 i0 x' }8 c
plant simulation中的free libraries有AGV模板,8 V; }+ L/ W" G" k8 z
里面也有案例。7 A* }* i7 V4 k; \) I( t/ b
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。$ \8 d! L5 Y$ }+ @

9 z- h* r8 e# U3 v我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 : z% J* T/ d: J$ l5 w( x

+ K0 N2 C3 q* ~& ^' x, ^那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
& U. V2 d+ c3 P! Q  J1 s& R这是AGV_putin中arrive的method。
! P* N, A# K0 v3 Y: G- Z0 D. p+ m2 E# U% C3 k
当到达物料速度越高时,这个报警更多,

4 K$ Y' Q: C# r8 z3 @另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-7 08:52 , Processed in 0.014057 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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