设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8676|回复: 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'
' t5 v, g7 J9 u1 A6 i/ C3 Z& e*/
+ |- Q) r: E0 Y% ~8 Qis
9 M: v# Z. K7 B8 M- w        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
: N6 L6 H/ n) k& ?4 cdo
2 s9 o/ V& O1 Q        Lan := rootfolder.Internal.Tools.AOLlanguage;3 m+ X- ^4 o4 l  U8 B  n! ^( B
        if current = @.Destination -- else return
. l- f/ F8 X! Q; {/ a% l. f7 r        then. n  a) B2 w. n0 P- r9 G
                @.Destination := void;# A" E- {' ]! ]+ C. R, C5 D% |
                if @.occupied then1 v2 Q5 D2 k$ |$ w9 p
                        part := @.cont;5 h* {- b  ^2 i; d/ G" t/ n) Z
                        @.transpOrder := void;
6 S  _# X' i: D9 z9 |                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,, e' Q$ w: M) h% S3 D% U: h9 m
                                @,root.eventcontroller.simTime);9 g. D) V! ^* U1 d
                        @.HasOrder := false;
4 S: k7 o3 P( z                        @.DrivingHome := true;/ _) u& F% u! t5 W) |+ N/ u
                        rgManager.tryToStartTransOrder;
/ x: n  O5 R/ ~4 C6 D7 Y8 Y                        if @.Destination = void
& _+ W6 g: a0 `* f' ^% Y                        then -- no transport order for vehicle @
/ {' G1 m) T) I                                @.Destination :=4 g# F+ p! ?/ V/ F* f) d
                                rgManager.nearestFreeStation(@,track.~);3 C0 j1 x, B. o
                                newDirection(@);   3 L  p" w8 E% D# k* h
                                if @.Destination /= void then$ e4 {' T9 H" z# @) L5 Q# ^
                                        @.Destination.NumReservation :=
5 V& l4 H, Z- Z( k% ^" g% s                                        @.Destination.NumReservation + 1;* F( M( p9 p/ ^; N* g* ^  j
                                end;
/ Z3 }( Z7 \2 A* G2 B                                @.CurrIcon := "drivingHome";
9 d3 s9 f$ `2 o6 Z+ _% W- w9 P% X                                @.DrivingHome := true;
6 c8 P6 {0 p9 F- D  D) g                        end;8 ^5 o, z6 c# _9 P: w" }
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
' Y6 p1 k; b# v" p9 j                        part := @.transpOrder;* l4 ]1 P, t3 x6 J* A: ]
                        part.move(@);-- load part
2 T) L" F0 D, E2 Y2 `+ W                        @.CurrIcon := "load";- `, r' j7 i) ^1 `3 w# ^
                        GlobalDistObj := part.globDestination;
% o% t' p& b- R0 ?0 u0 t                        assignLObj := rgmanager.rgAssignL;) @& x9 a( ]% p0 @- n7 o
                        row := assignLObj.getRowNo(GlobalDistObj);% h6 x" Y0 N1 F; h- u6 G* T
                        if Row = -1 then -- since 70( ~* ^+ U+ I8 Q2 ]' m' @, |* x# n
                                if lan=1 then
' i6 v# x, q. ~. E  i( o+ o: i# y                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),0 k* k7 l  r: _
                                                to_str("in der Andockstation: \"",?.~.name,"\""));( {; S& X) a' [- Y- }
                                else  h) n4 |: l' f2 S/ r, K  q% n
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
* @% G$ Y; `4 ]2 Z  ]. o# z                                                to_str("in docking station: \"",?.~.name,"\""));                               
! i' [. X) Q( a9 X                                end;
& D* c% M: f* a* Y8 g8 v                        else
- F9 J. `6 S7 ]! [, J                                @.Destination := assignLObj[1,row];
  t7 H- m, s; M4 ]+ O2 y! D/ U# ]1 ^                        end;                        7 U7 X9 q8 h. a8 y
                        newDirection(@);9 A9 b4 Z" x) ]5 U) G! g
                        @.HasOrder := true;" A( B9 L: R* H) A; Y) E$ b$ J2 V
                end;' N) D* T( Z* B+ M
        end;% I: x2 V: ^, r1 i
end;        -- of the method# d, G2 s- R) s# t4 f
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
+ ~3 u9 E! U2 |# \  T" u+ A5 {6 C1 ?
: F4 `+ z2 i2 d$ H. ~' V这是AGV_putin中arrive的method。. x* W) |4 M; g
) \) W8 o& Y; ^& I
当到达物料速度越高时,这个报警更多,
# O0 D( {- C% I8 r. ~  r可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
" s! E! u. Z5 p) ~程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?; {8 j# \/ d$ C- I4 {

8 g3 M; t$ C+ y6 ~# Q另外一个小建议,就是move,所有的move都可以这样1 n; g7 R/ K. n
if not move() then debug end# u3 J! @9 J: }0 R( [
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。( m" e% d8 y* I7 i4 e* H
plant simulation中的free libraries有AGV模板,! E/ v0 \4 o$ Y+ o7 |
里面也有案例。
' }1 I8 j0 t" G- k我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。) U9 f9 n5 i9 N$ C
% H% X5 E; n1 \7 _- p
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 " W. v6 n9 S2 W9 z& P

/ M: t7 s# w- U% r3 q9 W+ q那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ) Y8 h/ S# R; `, o1 ?
这是AGV_putin中arrive的method。
4 e. Q  N; u, H' n5 r, G9 r. c3 [) @
当到达物料速度越高时,这个报警更多,
* o# }: A1 w- a- u/ p2 p8 a
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-19 17:03 , Processed in 0.017381 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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