设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5639|回复: 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'
+ B: ]9 A, s/ d*/
# r- ]% m+ T$ @2 i: k2 A8 Tis
7 N. e% R+ P  q2 A- ?% Q6 s3 k        part, GlobalDistObj, assignLObj:object;row,Lan:integer;6 e, p5 N# F5 I+ h5 e# ^
do
. e1 A; W" q# p; \        Lan := rootfolder.Internal.Tools.AOLlanguage;
- L! W% l7 x" r        if current = @.Destination -- else return
: w4 N& r1 g+ n8 _        then
+ q/ V6 H5 [. i                @.Destination := void;
6 m$ O# q" O' w& g                if @.occupied then
* I0 @: Y: y' T; ]8 j  d% X& r                        part := @.cont;$ P1 l/ G) W8 D/ J
                        @.transpOrder := void;% M. C- d$ g- G4 \) g
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,8 L. F3 d2 f: s. b" {: w
                                @,root.eventcontroller.simTime);
1 J9 x4 _1 u- @! S7 n. K) r                        @.HasOrder := false;0 T  {+ R3 L; a# U$ e) h3 V
                        @.DrivingHome := true;' j) w  e4 @) V8 D$ s, X0 L7 \
                        rgManager.tryToStartTransOrder;
2 i4 c2 W7 N8 V2 @                        if @.Destination = void
) s3 F6 ^  m% [                        then -- no transport order for vehicle @
* l  f' r( k/ }1 R                                @.Destination :=! J, Q  A! B8 l2 W; y- T
                                rgManager.nearestFreeStation(@,track.~);
" U. \& J* I. s7 r  r- Q4 R. _                                newDirection(@);   5 e5 Y# V3 I3 O8 l
                                if @.Destination /= void then7 H$ J+ q( J# `0 r* `. Z
                                        @.Destination.NumReservation :=, g1 W) I9 Y+ ^& y' D  ~/ @
                                        @.Destination.NumReservation + 1;, y: D5 J( |$ ?5 L  Z0 @' p9 x
                                end;8 y0 w7 @$ p2 U* h* ^
                                @.CurrIcon := "drivingHome";$ U8 f& Y1 }; r! }
                                @.DrivingHome := true;
6 c5 o( F, H* X; q                        end;0 H  i! @2 e0 X+ O: W
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
4 o, U& T2 S) R. m, i1 E                        part := @.transpOrder;2 }' s* V# O! r6 Y
                        part.move(@);-- load part4 W! X' D& v, c$ H- A
                        @.CurrIcon := "load";
0 I* w! V- R. q6 h2 g- z                        GlobalDistObj := part.globDestination;
; {: t' g% Z7 S0 @                        assignLObj := rgmanager.rgAssignL;
+ ^5 S" t6 n7 N$ b% d; Y                        row := assignLObj.getRowNo(GlobalDistObj);$ [+ l! c$ X% Q
                        if Row = -1 then -- since 70  \5 C6 M) l$ a; g
                                if lan=1 then
9 [+ l4 ~% j' I$ C) G" j+ W                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\"")," f$ z+ O/ ^6 s$ e
                                                to_str("in der Andockstation: \"",?.~.name,"\""));; s  M' X* ^: l9 a. A
                                else
4 r/ N6 D1 J; I3 [& I1 ?3 x# E* U7 c                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),- k- x9 P; A7 _! \, S3 y
                                                to_str("in docking station: \"",?.~.name,"\""));                                ' ^" _$ Q6 Q3 g, h
                                end;1 |; Y( ^9 Q; X* m8 n4 D
                        else% y$ Z- t) Y2 K
                                @.Destination := assignLObj[1,row];4 K- j1 ]0 y, p' s0 }/ M
                        end;                        ) W4 {7 y0 F* `/ {
                        newDirection(@);4 R7 }' v  }3 ]" i
                        @.HasOrder := true;
  M2 C% U4 d9 D2 r! D$ h                end;8 O8 f: _( C% G3 f/ p
        end;9 H3 D" {! w( v5 M6 e* N5 H# c6 o
end;        -- of the method
5 g$ Q8 |( N3 g" }0 {# t& l
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
4 s- i- y& a( ^6 s
5 D! H8 e/ a$ ]$ {7 @- M+ j这是AGV_putin中arrive的method。
' T7 t6 M1 E8 v* [4 _8 ~7 g, ?
  o0 O- \$ j$ a1 w) m当到达物料速度越高时,这个报警更多,+ ^0 q( T% ]6 n9 ]
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
8 d; q* s" U) f+ G程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
9 D7 c" j/ [, ~
' [0 a+ ]' \& K( V, n另外一个小建议,就是move,所有的move都可以这样1 b1 ]0 O3 Y! K6 [8 p5 t) T8 a+ t, Q
if not move() then debug end' `' p+ w5 _( ~( h+ ~
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。, W. L. A7 a* H( d5 u
plant simulation中的free libraries有AGV模板,
+ o. i$ e4 @7 k  f8 I* x! T7 D& W里面也有案例。& n/ g% l; K; ]7 D! \" I
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
. J/ y; R/ v) ~; f
( o; ]; I5 N7 _6 J我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ) j0 h, w/ Q7 ?5 _+ t+ n9 Y4 d

$ w/ v9 w( _$ f5 V4 a/ w那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
7 @" z5 N) I# E; c1 G4 N* y这是AGV_putin中arrive的method。& q" j3 }0 m* `5 h2 Y/ `% S# ]

- P: F) V7 ]  _当到达物料速度越高时,这个报警更多,

5 _8 Y" O+ \2 D( r另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-10 20:55 , Processed in 0.021308 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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