设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6640|回复: 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'* u5 }+ Q( w, J) F3 p( m1 P9 U
*/
' G0 P" A( W" s# c9 mis1 [8 p- m9 }! I$ ?$ H/ O
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
% C% [+ ~0 R) [$ G: Cdo: `: ]1 B, }$ t, b) E$ `
        Lan := rootfolder.Internal.Tools.AOLlanguage;
" [/ b9 D) r- f        if current = @.Destination -- else return
! r: x& o. `( n  ~% W( W5 `! Z. G        then) [3 {+ X4 b! i6 [+ J$ R, d( G
                @.Destination := void;
/ S5 g( g: F  V# z$ A                if @.occupied then
% I# j) ~: w: H7 w+ u( h                        part := @.cont;# a/ n4 ]# V8 A$ l1 \
                        @.transpOrder := void;+ `, v. p1 f, D* |& y* q
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,$ p; }* D9 P9 c. u3 R$ z
                                @,root.eventcontroller.simTime);
7 j2 }. k; s( D2 E0 G* ?                        @.HasOrder := false;1 [& G3 ~' m9 ?2 }2 c( Z# g
                        @.DrivingHome := true;
1 z3 o6 M7 w  z( o5 f) A                        rgManager.tryToStartTransOrder;; E  ^, f( h  b) k4 d7 s/ N0 [, C
                        if @.Destination = void
9 y- Y$ j6 m/ y3 m" g                        then -- no transport order for vehicle @7 A3 D3 {( ?" U; d5 P
                                @.Destination :=; I" j& q+ c) J; d# f$ }* E3 l& l
                                rgManager.nearestFreeStation(@,track.~);
* M4 I7 I" o- j' G6 @: ]6 [                                newDirection(@);   7 {# H  e; V0 I
                                if @.Destination /= void then
8 j8 |& z% N& ], Z' w                                        @.Destination.NumReservation :=7 }" ^) I  z; @' a" a
                                        @.Destination.NumReservation + 1;2 M4 L# O' K9 K3 {5 w
                                end;
+ F  i, A6 C% d* c# `  f! ?                                @.CurrIcon := "drivingHome";
$ }" ~" V: Y6 a5 n6 [7 v                                @.DrivingHome := true;: u6 {+ h2 F" n/ _
                        end;( i, o; i: D' W6 ^/ Z
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
5 U# i! U+ B9 G& t# d; V                        part := @.transpOrder;; ~  R' [5 W, T5 W& p% k* Y
                        part.move(@);-- load part) q, j5 E4 |8 {' M
                        @.CurrIcon := "load";
  c' n3 ]* X! t; w! @4 H3 Q                        GlobalDistObj := part.globDestination;
0 P1 N' B6 X3 K) h! D                        assignLObj := rgmanager.rgAssignL;
8 z1 w/ z$ y0 o6 m) h, O                        row := assignLObj.getRowNo(GlobalDistObj);
5 e5 E+ M4 [/ F- P' N0 C$ r                        if Row = -1 then -- since 70
! [! x/ v( s; \                                if lan=1 then
+ ^* F+ F% J: G, }* ]5 S4 I                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
5 ?7 U* R' S5 _  E: Y# `                                                to_str("in der Andockstation: \"",?.~.name,"\""));
3 }  [' W5 y: d3 S/ t4 [' O                                else
/ p7 @' U) W8 v% F* o3 x                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),3 o( O! N2 ?  U; ?; X: y* P
                                                to_str("in docking station: \"",?.~.name,"\""));                                % i- d# v* Z  L" v. Z6 R9 M. K
                                end;
, u$ o+ X% t/ w; b8 T: T( |9 I% e4 R3 V                        else: y& s) _0 e  _; Y
                                @.Destination := assignLObj[1,row];6 t$ Q8 P6 n# d
                        end;                       
2 ?. s" b, @2 k. t6 i) K1 C                        newDirection(@);0 b. J# u% a/ [4 K- ]
                        @.HasOrder := true;5 \4 V4 |! B' ]$ @, E: F. R
                end;
4 |! ]. r+ ]. k        end;
6 i8 O! p% \: e, U4 v. N2 l: ]end;        -- of the method
( x4 C& ^- R9 @; T6 M
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 8 H, q1 e' r% v9 E

: Q. M8 z3 N  G9 w$ Q0 i+ R这是AGV_putin中arrive的method。
8 W$ V1 @' Y+ R* O0 g) |1 P8 h  c2 P8 h
当到达物料速度越高时,这个报警更多,  I6 q, {0 T6 x: h+ F! o
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。( b. `, _  p6 _& R/ @' J4 }
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?* b0 {1 C9 b% L% Z" ?& S

" E- l# P+ `; z' X1 Z0 q另外一个小建议,就是move,所有的move都可以这样2 h+ }  H0 S! g* s7 C+ t
if not move() then debug end
: V, j6 }) A" y$ V这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。+ h7 W- g- m) P' v
plant simulation中的free libraries有AGV模板,; `" }5 k5 e& y$ p2 }
里面也有案例。
. S! m5 e7 Y0 h我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
/ `3 }7 Q6 M# U7 `- D- b: C- S9 b: h" v" k% i
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
) ~" k) ~& b3 \1 P( h) A0 ]8 d% x/ ?4 t# F! Y1 x1 A
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
" a# }8 }: R) `! l$ K. ^, p这是AGV_putin中arrive的method。$ D. F/ W4 t1 e/ u# D

8 n; K% E1 I$ Q5 C0 |$ A, O当到达物料速度越高时,这个报警更多,

$ y4 R) a3 h* X' i9 |8 O& v另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-18 01:41 , Processed in 0.020314 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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