设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8449|回复: 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'
9 l% Q" ]7 }- S- v5 T: \*/
. H: _. F8 L5 g/ W' c, Qis
- Q4 w+ h2 X4 u$ [        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
5 ~' I. H3 y2 ^% K2 d8 ado* d$ i( J0 F0 y4 h- ?
        Lan := rootfolder.Internal.Tools.AOLlanguage;- o0 M, x" c5 e1 b8 z/ Y
        if current = @.Destination -- else return3 C' }7 q8 H7 ~# U- W# P" K' ?/ K
        then, l8 k9 e4 y0 |% L9 U3 K5 t
                @.Destination := void;
+ I# q/ i5 X7 X) k( q) G& D6 R                if @.occupied then
* F/ v, H6 y" [* ?  e' _. \' v) Y* H                        part := @.cont;* `7 Y; {* e, f, z- p) U) T0 {
                        @.transpOrder := void;
9 [* V2 S) |, d; }                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,$ M: U3 R. E' ]$ s3 K
                                @,root.eventcontroller.simTime);
% B2 d. ?( S: ~3 h5 x# s! C                        @.HasOrder := false;0 Q5 C; e/ l+ G- ~! W
                        @.DrivingHome := true;
8 o9 M( i! ]# a' ~5 k  @                        rgManager.tryToStartTransOrder;
9 B( E$ ?2 B4 y3 h                        if @.Destination = void' u, m; x; {. V+ f
                        then -- no transport order for vehicle @
( v3 ]# v& c& _( b                                @.Destination :=& x/ e- ^4 L1 W" R0 C- ^3 G7 k
                                rgManager.nearestFreeStation(@,track.~);6 e! d0 E$ C, R* ^, y
                                newDirection(@);   
+ m* i) F! ?( E                                if @.Destination /= void then
$ ?4 @* Z$ C! s2 a, k, y9 G                                        @.Destination.NumReservation :=
% ?  x- m- d% H/ C' L3 P                                        @.Destination.NumReservation + 1;
6 _$ g0 q9 Y! B) `0 o( v2 C                                end;) M4 L# g! r* L: e
                                @.CurrIcon := "drivingHome";, b6 u' X  L# w2 ^6 ~- ^
                                @.DrivingHome := true;4 }2 N5 ?1 \; E) r: u
                        end;6 x! |8 c, Y- ]  a6 L" m& m6 o
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station# x; x* p; u) q& q
                        part := @.transpOrder;
  K% d$ Y6 \  B6 q/ I3 w                        part.move(@);-- load part
: @9 i& m9 s- N/ l9 B" |                        @.CurrIcon := "load";3 C8 s3 {/ h! b2 M
                        GlobalDistObj := part.globDestination;
6 j/ B9 k& h' M                        assignLObj := rgmanager.rgAssignL;
" l5 f* P. f# }% \                        row := assignLObj.getRowNo(GlobalDistObj);0 N" _: J$ B& I1 [
                        if Row = -1 then -- since 70
/ K8 {5 T6 h  F                                if lan=1 then3 W! H: T  V' q0 X  A% u
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
  W/ y8 ]6 H; t2 T9 k) D7 w) @7 R                                                to_str("in der Andockstation: \"",?.~.name,"\""));
/ H+ _" S5 ]9 l, H4 p                                else
# ^, E  U. n2 J3 d* l" J) `4 V                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
/ V, C) i, a- a% e5 y5 }2 G                                                to_str("in docking station: \"",?.~.name,"\""));                                " R$ p) Z& k8 ^4 E9 d/ f' W
                                end;$ z3 i2 G% _' I9 v4 c0 S5 s) x
                        else% b9 {  Z- \5 H6 L4 x7 U, w' Y
                                @.Destination := assignLObj[1,row];$ f. g$ W! w6 p+ Y" H. i. W4 S, q
                        end;                       
( B: P$ m# d" R                        newDirection(@);
9 H1 _2 Y& I6 G9 ^2 D, [                        @.HasOrder := true;% D; K. X/ P4 X8 i" r' R" e( b
                end;
. Q) w5 N! Z4 H" D" h( O; X# ~! @        end;
6 o" Y' j' L% o  vend;        -- of the method( \  w0 w7 c1 K7 X& q
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 8 C; u) A- W% i/ u2 q# q
" S" ]4 w2 W& ~' T) U
这是AGV_putin中arrive的method。
9 `- M, y0 D' }$ `* k+ S' Q* i: y: b( H- |' A3 {
当到达物料速度越高时,这个报警更多,5 l& M! Q* T8 t6 Z7 Z; P9 l7 |5 @4 I
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
9 Q9 ~7 b! Z. ]5 U" x- b3 h* w' g程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
( b* ^  n5 A2 C& Z" n( g
6 K- B, w9 E/ U; V# {另外一个小建议,就是move,所有的move都可以这样1 b0 [# z: C2 f( v# K, _: A5 P
if not move() then debug end3 I% n7 u- t6 |% @% I: j* s
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
% j+ |" w3 }% q7 {( B$ O5 ~& S( Pplant simulation中的free libraries有AGV模板,5 p/ r; L2 G6 Q# ~6 @
里面也有案例。
4 D8 Q7 V' l5 s) P我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。% Y1 L* d8 N  R

. N) a) s* l% W; R# S我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 1 d1 U) ?# H* c( X( i

* N0 a- x3 D; k- I那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
" S/ A% Q5 w5 W这是AGV_putin中arrive的method。
; E. T+ _  F3 |+ j6 q
, ^& I  B4 g# f9 @: d; o当到达物料速度越高时,这个报警更多,
* i0 a) l" L  G1 ]( V# T! D' |
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-4 17:02 , Processed in 0.016066 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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