设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7513|回复: 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'! T2 p; N2 ?4 D5 o! u1 T# I
*/
0 S' y( o" f% C/ K5 kis
) N- G  i, I8 f& N        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
' K5 A4 O% H: z% vdo
! M6 I+ k8 l9 U: c        Lan := rootfolder.Internal.Tools.AOLlanguage;
& H8 g1 O! O8 i- U        if current = @.Destination -- else return
  q3 ~$ ]6 _& W& S9 e$ `# f5 s$ ?        then
' i' E) Z# D6 b7 y                @.Destination := void;0 Q* ~! `* C' Y; ?$ X; E- J/ Z; t
                if @.occupied then' Q2 C3 Z1 W9 ]; R
                        part := @.cont;
7 s1 Q8 K2 Z( o/ _  P' a/ V                        @.transpOrder := void;/ o3 t8 F" z% ~! c9 G! R. Z
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,( }. U4 F$ R+ z; [
                                @,root.eventcontroller.simTime);
* x" K, P  g7 p7 ^* P* B) a3 W                        @.HasOrder := false;
7 M) d% B  r5 B3 s5 T" ?8 Y( {: F5 Y                        @.DrivingHome := true;
6 L  q4 t0 g$ L, Z. i) u$ |                        rgManager.tryToStartTransOrder;% h; ]8 e1 a. j+ @. I
                        if @.Destination = void
8 k0 y6 v) ], \6 X, m, C# g& u                        then -- no transport order for vehicle @7 S2 B1 A7 }1 B  b
                                @.Destination :=; J% N$ [7 K6 N! r, ^9 C
                                rgManager.nearestFreeStation(@,track.~);/ G) r! u* K4 o. X$ U, t& s% r
                                newDirection(@);   ' s  U& X! d5 `, \1 j, U/ D
                                if @.Destination /= void then
! [4 |5 l  C* N& k# O                                        @.Destination.NumReservation :=/ n; A9 t5 k! z' ^
                                        @.Destination.NumReservation + 1;
) c% R, E# t! Y* H# O: H* ^                                end;
0 ]- Z6 i+ K0 s+ f) ?                                @.CurrIcon := "drivingHome";( E) i+ A- @5 Y3 V& L$ c
                                @.DrivingHome := true;+ J1 X( V0 r) n) g3 g
                        end;
. ~+ e- b# D1 ^7 ~4 t                else -- the vehicle @ is empty, both vehicle and part are in the same dock station0 G9 }$ O- a* v. n9 f5 Y/ w
                        part := @.transpOrder;
  |" L4 K0 c) h1 [& b                        part.move(@);-- load part( v# g/ G$ M. J9 H  z
                        @.CurrIcon := "load";  r$ F: M1 ?8 S3 ?/ P& c* L5 B
                        GlobalDistObj := part.globDestination;. y) |( l+ [7 j" u. D8 i# H" g) R; K. A
                        assignLObj := rgmanager.rgAssignL;0 _& R8 i% X2 O$ k
                        row := assignLObj.getRowNo(GlobalDistObj);! t. S) a5 [% o
                        if Row = -1 then -- since 70
% I# A( t6 S& v0 _7 c* Q, k2 y& n% j                                if lan=1 then
4 p* F7 _/ J$ e                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),6 R  d) o' H( t0 s! ~
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
% `5 D0 R4 R  w                                else
  L% Y9 ~& \/ }' i                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),& ^3 L& T$ O+ u3 g# e
                                                to_str("in docking station: \"",?.~.name,"\""));                                4 f# d6 h; E- `( w8 B( s9 i- s5 Q
                                end;
4 l7 p/ F& s0 H9 T) ]                        else1 I. x7 [) P/ a
                                @.Destination := assignLObj[1,row];
* M# g1 V& q. o! W4 v) q8 Q                        end;                        * R0 N, W7 X# C% H* @1 ~6 K
                        newDirection(@);
& F& m+ S3 B7 D: @0 }                        @.HasOrder := true;! d& S1 F# u8 z: @$ x1 ^: _/ {7 I
                end;
/ Z( r4 ^4 f# C" \: W# I  P        end;
( p4 E3 D/ o% Nend;        -- of the method' e1 r# s. o8 r' Z. V2 e
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 $ f" G. G2 z! ]6 q: _& k

  T+ M) d7 a: k- w0 G, b% \这是AGV_putin中arrive的method。
9 I3 P2 u3 Z9 ]8 h: x( u; T4 p/ G3 G2 i. i# r& i
当到达物料速度越高时,这个报警更多,. X) |2 j! F# @- A% _
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
3 n! }) D: n/ @+ w% z程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?8 X, e2 x8 D# Z
, H1 f' C# }: {" Q. ~
另外一个小建议,就是move,所有的move都可以这样
8 Y4 y4 s" H; A0 M# M9 {" ?if not move() then debug end8 y+ B: |4 Z( k0 l2 J
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
* m0 T) W" l: V9 l6 r' S, k7 eplant simulation中的free libraries有AGV模板,
/ t' z# y; r9 V% D* B里面也有案例。5 ]2 b' w9 R# [5 e+ P6 O
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。' ]0 c, t6 i; w- Y  a8 B; ^3 R$ D

6 Y8 f" \. {& |, q8 a* l8 H0 V我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
$ V  e1 l: U0 \) l9 {  z$ Q' {9 D& m
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
0 O8 ?) X( d9 O6 }; A' B8 z3 l这是AGV_putin中arrive的method。
; n4 Y8 c# W" F9 w# t
. @2 `% L5 W6 A5 r# r/ S0 i8 c" }当到达物料速度越高时,这个报警更多,
* @* f% e1 U# D: C- z' [6 G# C7 ~6 B! V
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-15 22:00 , Processed in 0.021050 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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