设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7695|回复: 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'
  o6 Q" S- z8 ^. \*/
# _: T$ P3 E* P6 t" U+ q; c8 kis
, A0 i* n) Z1 g. B. [        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
  X9 P' k: K/ T- hdo5 D  l& B5 t. Q9 Q' M3 N
        Lan := rootfolder.Internal.Tools.AOLlanguage;
8 A$ u( ^/ G( s( O, X        if current = @.Destination -- else return+ Y$ V1 H  M- q3 ~
        then
& i- E+ i5 F* O  _0 M) L9 m                @.Destination := void;
3 m, B- x  G6 @. _1 x. x4 ]8 S2 u# R                if @.occupied then# {$ V8 B# M' \8 R: B
                        part := @.cont;
/ T+ f8 S  q2 f& ^                        @.transpOrder := void;' l+ i2 T( [6 i: j: Q( h- h
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
' y: ^1 w5 I: T' i, u                                @,root.eventcontroller.simTime);
) B3 z% g& @/ L& M4 L6 D, N1 H/ ~/ r5 x                        @.HasOrder := false;
, p- Q7 c" S, c8 t% }                        @.DrivingHome := true;/ [' L6 P9 S! n( ~
                        rgManager.tryToStartTransOrder;
6 [7 u% G0 D. }                        if @.Destination = void
% o& [& X/ i0 P" _+ _9 m: M% C                        then -- no transport order for vehicle @" e  ?) U9 J; O9 v/ m
                                @.Destination :=  U; u* ^! s4 Y6 [6 V& M
                                rgManager.nearestFreeStation(@,track.~);4 {+ C6 N: G! h  O* N
                                newDirection(@);   9 \+ N5 h+ j9 \/ H9 R* p
                                if @.Destination /= void then( \7 g% C4 w5 ?( L% _2 d( ?9 U
                                        @.Destination.NumReservation :=% q6 y, Y2 j( E' z6 }" l
                                        @.Destination.NumReservation + 1;/ x" |$ I/ ]4 |5 |" b  S
                                end;
6 f8 b! M; V+ R9 ?                                @.CurrIcon := "drivingHome";# N6 v- \) `- B
                                @.DrivingHome := true;
( n6 u2 w, }$ H2 U, j5 ~( @6 H( B                        end;6 g2 i. m1 G3 O. h
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
$ p$ c( b1 t4 L+ k6 k/ S( I% k% ]                        part := @.transpOrder;8 d& J. S1 _9 E$ w2 N
                        part.move(@);-- load part3 z; A+ [) P% z% G
                        @.CurrIcon := "load";
/ m& X6 W' B* u1 S0 V4 x; Q/ B6 V                        GlobalDistObj := part.globDestination;$ _/ J% H- K5 Y* m2 n. ~
                        assignLObj := rgmanager.rgAssignL;
; M6 W7 l& y; H6 Y# o                        row := assignLObj.getRowNo(GlobalDistObj);: m6 L7 N2 c$ v) G5 h
                        if Row = -1 then -- since 70# T8 I8 s0 {# `& v3 h+ x
                                if lan=1 then
- w; ^# P2 M5 m$ l( M6 P                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
$ X  m# r" M3 a% L+ l2 k                                                to_str("in der Andockstation: \"",?.~.name,"\""));; t. c" q) e( K3 H9 }
                                else5 X+ x6 d4 V$ F* g5 T& W
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
# [: x: B/ T% ]8 Z* L                                                to_str("in docking station: \"",?.~.name,"\""));                               
8 Q5 o4 V" b# T1 p' l( k$ A& r6 ?                                end;
7 `( R/ u8 E, H3 R1 l8 L) C                        else- s# F" h: ~  C" ]4 V3 S" Z
                                @.Destination := assignLObj[1,row];
; j& f- z- q0 y8 C. X- Q6 D. W" G+ v# D                        end;                       
" C7 }* j3 s# y6 U7 x9 p; c7 A                        newDirection(@);: G' n1 B& ^6 L, K" L
                        @.HasOrder := true;
5 {) o3 G! l  ?4 }3 E                end;
  w3 q1 R0 _# Q. t* I/ r  w; o, \        end;
) e8 b* V1 q% I( ?0 B9 l, Uend;        -- of the method2 O- f( S% Y6 E
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 8 y1 u; X1 X& i* l7 c% `6 E' _
3 a3 F+ i; `3 E, o+ F1 c# e
这是AGV_putin中arrive的method。
+ |2 o/ V# O2 F5 q/ u- w+ r9 `0 L7 p6 z: I7 x' g, q3 A) C
当到达物料速度越高时,这个报警更多,
3 d& T1 H" R4 X1 `& G: t! A可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
8 ^' P. G4 @. C: u. k( n程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
& ^0 p" B5 ~& b* u; T9 ~1 O3 g0 R* R& y. m$ i0 F+ c
另外一个小建议,就是move,所有的move都可以这样
5 v8 s. o: O9 h1 Yif not move() then debug end: S; S6 g4 h2 }
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
  E( S9 y9 Y, P$ f( Mplant simulation中的free libraries有AGV模板,
: g! O! B* h' v) E6 {9 m里面也有案例。1 z: D. z/ R* y8 T1 }4 q8 P
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
1 Z1 D: V. X0 p8 P
+ R& J" @' `5 M4 Q; V( p+ L/ Q2 k/ J9 H我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 . _- W( ^5 T* W& ?; |- b
# I) L8 Y4 m3 a, M1 {
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 : C3 r* M: C8 I  x7 z! R
这是AGV_putin中arrive的method。
" f9 m; x* Q8 N9 I! i9 Q# A3 v% F% A# ]2 b* R7 y
当到达物料速度越高时,这个报警更多,
" e" |! `! b! }2 ~* J
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-24 18:20 , Processed in 0.025088 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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