设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8213|回复: 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'" n/ Y# Q" n) t: ~0 h/ @6 v6 Y
*/& Q& w4 I# f' k
is
) F+ c# D2 Y. X( d& Q& D3 ?' f        part, GlobalDistObj, assignLObj:object;row,Lan:integer;' T, y1 d) ^: e2 j
do; k$ \+ X! e# x! b" O/ w' l* F/ g6 ?
        Lan := rootfolder.Internal.Tools.AOLlanguage;
) T1 A+ A7 G2 \- T# b! {- T, q        if current = @.Destination -- else return
; D1 \9 A( i, O# [        then+ F, M# a0 U2 t6 Z
                @.Destination := void;5 @& X9 N+ g+ [% z$ q2 X
                if @.occupied then) p1 b" |% F2 |: ~% p: ^
                        part := @.cont;
) ]+ C. a- S1 e" w- Y' ]                        @.transpOrder := void;" B& `4 Z5 J* m: r6 k- D  @
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,$ i- `0 \6 y- d
                                @,root.eventcontroller.simTime);
( j- ]$ X$ V- O( N. ^                        @.HasOrder := false;
2 f! }8 W/ j) ~. s" b                        @.DrivingHome := true;
# w7 [; z' ]6 D; u  r7 _8 @                        rgManager.tryToStartTransOrder;( Q7 o3 `$ {2 q2 I: l- r* A& V, o
                        if @.Destination = void
3 \: O9 d# V  z                        then -- no transport order for vehicle @
% x2 L/ n: c7 R# k) R+ e, {8 _                                @.Destination :=$ y, j# k- H6 p8 F! i
                                rgManager.nearestFreeStation(@,track.~);: e' y9 @' }7 Q- {: a6 y. |1 u5 m
                                newDirection(@);   + E+ j& F) n7 j- u9 a, d) H
                                if @.Destination /= void then- }! T- \/ Y/ |, c- ]! d; {/ [
                                        @.Destination.NumReservation :=" t' q+ S! X' m) v7 G
                                        @.Destination.NumReservation + 1;4 {" k% g8 ~7 Y
                                end;
+ g/ O$ T- @: N- r0 E0 e                                @.CurrIcon := "drivingHome";
6 o! n: R4 F8 I                                @.DrivingHome := true;
/ \; P2 g; [$ @0 l                        end;
; X: u2 E9 t+ O& P) B' m                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
) n, n; @2 v6 v1 D& o: O                        part := @.transpOrder;" ^2 M; c5 x( q8 o( t* _/ T
                        part.move(@);-- load part& t. S; H' j# ~5 b
                        @.CurrIcon := "load";
! F) H4 Y8 L! B                        GlobalDistObj := part.globDestination;+ n+ Z- K' y; G* `) B2 k3 }; T
                        assignLObj := rgmanager.rgAssignL;$ y# }- Q; v. l+ X0 }
                        row := assignLObj.getRowNo(GlobalDistObj);
5 t0 ]5 ~& t  |6 Q% M2 _. L                        if Row = -1 then -- since 70
* h- _: I$ d2 E                                if lan=1 then
' M6 f$ `; a& `$ R6 w                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),6 |1 c4 F' e  ^- ^% i0 h
                                                to_str("in der Andockstation: \"",?.~.name,"\""));1 @& R) P8 F. g: W4 p5 ]. v; n
                                else
' H( u: e- p! v. U5 c                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),& w! p0 |4 q3 B  j5 R2 m; S0 K
                                                to_str("in docking station: \"",?.~.name,"\""));                                ! x0 T* f1 Q& a
                                end;
% ~5 A3 `) V/ c2 y$ `" b                        else4 x9 C. A3 r. q  U; p# X! V7 l
                                @.Destination := assignLObj[1,row];
4 g1 {8 ~0 R( K0 b# C: o                        end;                        * g; z1 N" `" ]! Z7 E: C& j
                        newDirection(@);& m* {. c" Y3 ?: r& K* R9 g
                        @.HasOrder := true;9 B5 g4 y& U' k; u
                end;+ ~( a9 `" T8 ^) R6 H0 }1 Y1 {
        end;! K5 h% R1 Q/ N" E4 A( [+ I" y) t) U
end;        -- of the method
: l9 n) b8 K+ x# F) V
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ; d9 D" B" C/ R. p

7 ?# u& `' f! o% ~- b这是AGV_putin中arrive的method。: D4 u% W2 B9 ?  R. Z
2 @1 W, W7 G. |
当到达物料速度越高时,这个报警更多,
& ]: `" J, x' }  ?可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
9 W+ y# Q/ z0 ?' [: R# O程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?6 U4 @' Z- h" ]0 W9 r* U! v
+ a# P" X( V8 d, x" c
另外一个小建议,就是move,所有的move都可以这样* d# U6 E0 w$ Z
if not move() then debug end1 w$ F* X. Q% I) @! F9 d
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。. |4 J. X! Q! v& E# t, Z
plant simulation中的free libraries有AGV模板,, N7 m3 Z4 s8 m1 K8 I) x
里面也有案例。
3 [6 m0 u9 |! ]+ f/ R+ l我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。7 Q. |$ l% ]; P+ a& ?2 M

1 ]; p; S( |& Y6 R% p" X2 D# J我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 # G# Z' q- Q8 y# j

7 l% S7 a& e6 O9 J! \- V0 z# k那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 6 I1 ?. P' @: ]$ [# l
这是AGV_putin中arrive的method。8 t: |, `& d# K! t

1 O- l/ q; {- V& m: K+ E) A) V- n/ n当到达物料速度越高时,这个报警更多,

9 X( l0 T- ?, E3 g* a另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-21 05:02 , Processed in 0.019888 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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