设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5846|回复: 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'7 b6 s1 o) \- r' @
*/3 w3 l4 Q( Q1 N, v2 o, X
is) m6 T, D8 D* R# i5 U; s+ |
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;. V) S' K" @' j4 B9 H0 ]9 Q
do! R- f- \; o7 t2 d( M8 P
        Lan := rootfolder.Internal.Tools.AOLlanguage;# e7 H) [! D* z3 J$ C: o+ w
        if current = @.Destination -- else return
$ u; ?% D" M4 P6 D) y        then
. D: g' @8 e) i, N1 c+ A9 |9 q                @.Destination := void;
! Y5 u3 b) L0 D  u& ?1 T                if @.occupied then
6 E( L7 {  e/ f8 t1 k- Z                        part := @.cont;' u) B  @7 ?6 x" D% |, N' t0 T" q
                        @.transpOrder := void;4 L- ]( x! z0 S3 S, G( e) ]
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
  Y# o. v1 F+ y+ w* N                                @,root.eventcontroller.simTime);1 m9 V8 I! n# S. N
                        @.HasOrder := false;: p& L' J# U: y6 Q9 |. o* Y
                        @.DrivingHome := true;
$ S, z, R, y+ b3 Q                        rgManager.tryToStartTransOrder;
7 ~5 ^" V, I4 ?4 E- C8 [                        if @.Destination = void
9 c8 Q. V( P/ o! C; x/ a3 N3 }* |                        then -- no transport order for vehicle @- _- p* G$ l9 b; c4 ?! i
                                @.Destination :=: Y! z% v8 c1 l, ^& E' d
                                rgManager.nearestFreeStation(@,track.~);( X! G0 p0 R" B) W1 i* P: z7 s
                                newDirection(@);   7 z+ x; k; ?' E" U/ k
                                if @.Destination /= void then6 I# i) V- ?0 Y' G: g( F& S) w
                                        @.Destination.NumReservation :=  ]% B; `7 @: b" {8 s% m0 Q& n3 m
                                        @.Destination.NumReservation + 1;
5 j! z! ?$ T6 Y, E8 e# S                                end;+ w* [  ?( Y& L. r. X8 Q9 |% {
                                @.CurrIcon := "drivingHome";
1 V4 c) n+ \& e$ L' W! j                                @.DrivingHome := true;
6 S: {: Z% f) ?: L) V                        end;
! m; V  i% O* R% _* m- |/ y" @                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
, H2 T& Q" N3 R5 o+ j3 ^# \0 M                        part := @.transpOrder;
" V, \: r. [7 E                        part.move(@);-- load part
* z9 M' J  S% @' a                        @.CurrIcon := "load";
, f+ E" @' K; s; R6 W% d2 V                        GlobalDistObj := part.globDestination;
! p% e2 \/ u/ Q' T2 n: x                        assignLObj := rgmanager.rgAssignL;. h& q' g3 ^8 v4 M9 Y; q
                        row := assignLObj.getRowNo(GlobalDistObj);
$ Y4 |6 m( d. a/ z0 E% h; p                        if Row = -1 then -- since 709 N, ~3 }9 p7 u3 c. Z; q: n
                                if lan=1 then+ p/ X+ O1 C0 H" n9 P5 E
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
0 z% K7 W* I7 j                                                to_str("in der Andockstation: \"",?.~.name,"\""));
4 K4 A( g8 m  e                                else: u' x2 D+ c1 {. R0 A* u- |
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
' o7 H, v, ]4 m  y+ v  i! S2 J                                                to_str("in docking station: \"",?.~.name,"\""));                               
0 Q$ h6 O! I# A# B  ~" ?3 k0 g, O                                end;( x' n0 M: q+ K
                        else" e( ^7 M. j0 F! s- V. H9 O9 l
                                @.Destination := assignLObj[1,row];) f' r: V! M/ I) @! _
                        end;                        * |% v) @; O' E: Q' S: \
                        newDirection(@);
) ^( p7 g5 i7 ]5 Z1 |! g                        @.HasOrder := true;  b7 C5 ~% L# g1 E4 ?1 r
                end;
9 z; q" A# i# `6 |& L  q6 p        end;
3 m4 Z1 p% a7 w) B! w* ?; xend;        -- of the method
- v7 P; `- B9 |! j- }2 k. ]# `
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 6 \7 x. x) s2 z! Q& D0 ~

% v+ o  T- ?/ [) B. R这是AGV_putin中arrive的method。
% F( }# `! X/ p/ d3 C1 q7 Q  }
) n8 R0 [& Q5 i  ]2 }当到达物料速度越高时,这个报警更多,
; \& |2 Q7 W3 S( s. Y$ ^% c* P可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
1 L1 \1 J! b) I% Q程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
# f* {- ]# l4 r- G
  ~9 Z) q- e; u7 N- C5 }另外一个小建议,就是move,所有的move都可以这样; X. j% U  @9 b
if not move() then debug end
* G, Y' K( I* X+ r% a. ^3 t+ \这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
5 F9 \* G; C7 C$ y, N( ^" }plant simulation中的free libraries有AGV模板,  s$ A; o, m+ z) l, h6 ^  B) Y! m% ~
里面也有案例。" L5 n0 X7 }0 a0 I
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
1 o& k7 G: l1 n: k6 l, Q& X. i* Z  B! ^  s
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑   J/ W8 d8 g6 S* m* D2 \

) |" X9 p8 {+ _- [* C* w0 E$ [4 e3 z那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 3 Z$ k: f1 d7 x+ j* F
这是AGV_putin中arrive的method。
+ {8 [3 T7 e" |: {# [$ S  a% Z( A9 I8 h
当到达物料速度越高时,这个报警更多,
5 v6 r' s5 Y6 e
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-26 07:45 , Processed in 7.132379 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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