设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8634|回复: 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'0 }6 @# w6 u; B. z! ^. d* m- t3 U1 h3 D
*/
- }( g" R! h/ c. o. M( ~$ [. Z9 S: P! ois
( G% E1 D# G, P5 L) X' O        part, GlobalDistObj, assignLObj:object;row,Lan:integer;. J' I# `" K6 V. W6 m$ _  n
do
! @$ r! q6 k: Y* z' j. m$ r2 O6 X        Lan := rootfolder.Internal.Tools.AOLlanguage;
8 a% E9 K3 ]* @9 E" Q- N/ j$ G        if current = @.Destination -- else return5 i& M# e' }+ T5 H
        then
+ r0 T6 A: C; R  Y4 W2 C                @.Destination := void;
) i) a0 p) k* a( Y6 U  ]                if @.occupied then
. w- n. w: U: D$ i) b# X                        part := @.cont;
( Z- t2 u3 R3 u2 l5 m- f5 ]' W                        @.transpOrder := void;- c, J& B# ?/ p8 j# n; E9 ?
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,& ~& Z1 m( k+ a% |: T
                                @,root.eventcontroller.simTime);
% {3 L1 H' v- R5 n9 n  h  q, k+ W                        @.HasOrder := false;; D: i6 I5 {0 A3 N2 q0 \
                        @.DrivingHome := true;! g* {% e4 M1 {
                        rgManager.tryToStartTransOrder;
" W' k; Z4 m0 W4 m  Y                        if @.Destination = void2 @+ e4 B/ M3 v9 k
                        then -- no transport order for vehicle @  N: d8 `: C  E/ r, W
                                @.Destination :=' l* K, B0 x% Y' G  o
                                rgManager.nearestFreeStation(@,track.~);
- r9 B; L$ o4 {                                newDirection(@);   
) G' U; x- a% t; m# l  G                                if @.Destination /= void then
0 f1 j9 F/ K5 @. j" T2 o                                        @.Destination.NumReservation :=$ c& }. T8 |' R1 @" `
                                        @.Destination.NumReservation + 1;  o: Z2 |( u$ u' o: H- k
                                end;
; m; `. {4 x* A                                @.CurrIcon := "drivingHome";
8 N9 ]0 Y8 @+ ?/ Q, Y, r! O7 T( P/ n' W                                @.DrivingHome := true;
/ ]& F: Y% G. W* w8 g, \  O7 E8 M$ {                        end;
' P0 [% d, M' ~3 x/ l; i( ]                else -- the vehicle @ is empty, both vehicle and part are in the same dock station! k$ Q3 f+ n0 n2 A  e
                        part := @.transpOrder;
# F# {( A7 U8 M4 T. \9 |' g0 a, G                        part.move(@);-- load part
0 H. f: J3 \% h2 Y# X                        @.CurrIcon := "load";; O/ m1 L; v" N# }5 p2 t' c+ f! ^& U
                        GlobalDistObj := part.globDestination;: i/ z4 y! i7 U' f
                        assignLObj := rgmanager.rgAssignL;& [: }* Q) U/ c9 V# A* x4 Q8 H
                        row := assignLObj.getRowNo(GlobalDistObj);
. w& K% W/ P/ l8 m' o: p* O! i                        if Row = -1 then -- since 702 z3 }* @! D) c: c& m  r
                                if lan=1 then! x' P4 P- w" O; @4 P
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
% G5 B- @1 h  t, z                                                to_str("in der Andockstation: \"",?.~.name,"\""));" e( h3 J7 C6 D9 l7 i( `
                                else2 _" f7 B# x5 B5 M) ]
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),: h, g% ?' m. [1 v5 K/ f
                                                to_str("in docking station: \"",?.~.name,"\""));                               
, T- r6 K. G7 Q0 a# q1 I- `$ D, x                                end;* ?, m# [. t- V6 m% n- Z2 F- S
                        else
- w$ B4 B8 i( G* F                                @.Destination := assignLObj[1,row];- Q. e+ b/ i4 `2 |- v3 T
                        end;                       
) K9 Q+ X4 D% x1 u3 c- Z0 q, N                        newDirection(@);& E+ J" q# I4 f7 J7 W7 N% c
                        @.HasOrder := true;5 n2 B; ]! T9 C! E  l/ v
                end;
% p1 `$ R; P% t' Z9 N% D        end;
* r' U& u+ b9 w4 Cend;        -- of the method8 q9 p3 u7 E" S3 v/ D6 p
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
! L. H/ V' o; w$ Y# t/ N  G& J$ ?6 O
这是AGV_putin中arrive的method。! V# V& `. s0 e$ y9 ^( N

' T) U8 E+ G1 b4 @. m' k4 s# k, h! x当到达物料速度越高时,这个报警更多,! b7 y% A" q6 ]( [( _
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
/ I: F  s* b0 U6 M* |9 E8 g程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?' I/ w6 ?6 K' d! B6 I9 p

/ Y- [: S: A2 h  \6 a. B, E& R* f5 o4 J另外一个小建议,就是move,所有的move都可以这样
! j6 C2 H7 q) D& V" w% Bif not move() then debug end  d6 j5 Q. l1 ~( X
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
2 T5 u3 r1 }4 P( b6 V! a- Gplant simulation中的free libraries有AGV模板,8 g6 N' x& _( F' q
里面也有案例。
* e2 ?) |+ {- n; I7 f& a. a我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。7 }  J; H9 L- O$ \; e( s5 i
% f5 d5 F3 v( g: D
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
: [; J* M" s+ ]( [: S+ S1 z) ]2 L6 ]0 d" c0 G& c) u- x6 ~
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
# r% @. m6 x8 x6 J这是AGV_putin中arrive的method。+ k# O- N' ~4 C& R& W, p

. W# ?, F8 D6 ^- T当到达物料速度越高时,这个报警更多,
2 R3 Q& k$ ]2 ^; |9 h' [2 c
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-17 10:40 , Processed in 0.019189 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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