设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8339|回复: 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'! g1 G& I0 ?" S6 N. ?3 J+ M2 p
*/% f/ v, J; E. m: L  S
is
$ F8 L% ?2 ~# x/ d* A2 |, F        part, GlobalDistObj, assignLObj:object;row,Lan:integer;& ]% o+ l& T- `# B% }0 D3 p4 J
do0 w2 U2 ^+ x$ z8 E  G9 q7 ?
        Lan := rootfolder.Internal.Tools.AOLlanguage;; B9 R  l  T1 H. s9 M. X3 I
        if current = @.Destination -- else return
* _2 W  l" I5 o* b8 _6 r' c        then4 M+ {& C& f/ }  m& R, H6 n% [
                @.Destination := void;  i2 ?* u$ T  e, ?
                if @.occupied then$ R3 [1 Z* y" g% Y
                        part := @.cont;
$ `, Z: O0 i( J& p                        @.transpOrder := void;5 Z0 j" z! w, P* N
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
' m/ b. y: p0 I8 n& ~                                @,root.eventcontroller.simTime);) P6 T, e! y  D
                        @.HasOrder := false;
* V- ^) A: [  n                        @.DrivingHome := true;, b# C: i! V, |- R
                        rgManager.tryToStartTransOrder;
0 S1 D4 R# [& G. i$ g; O7 o                        if @.Destination = void
% o4 m0 ]0 K0 `  d3 ^/ c                        then -- no transport order for vehicle @9 I" S0 B. _) m; m. l3 l
                                @.Destination :=8 d0 R$ q) k3 l% B- ]& y
                                rgManager.nearestFreeStation(@,track.~);
2 o  P; w8 [) t! z! M6 |) N                                newDirection(@);   
6 n' I) a3 Q% \' g7 _+ R                                if @.Destination /= void then
- s8 U5 k/ K$ x/ s3 p# B! t                                        @.Destination.NumReservation :=6 l4 l/ i8 s! `5 Q* ^
                                        @.Destination.NumReservation + 1;
: I$ C8 [( y6 p                                end;3 B* h( E# n  _# u
                                @.CurrIcon := "drivingHome";9 F8 O8 P+ J1 j. [( n$ l
                                @.DrivingHome := true;
* ^0 G0 N( ^# V  J; S                        end;3 @; i  B' S* J
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
( m( [+ A; v$ d9 f                        part := @.transpOrder;
( N, {$ P- j( q9 v- A                        part.move(@);-- load part
  Z. _) l# `- k7 c                        @.CurrIcon := "load";4 d& W* E; s( o( f' T
                        GlobalDistObj := part.globDestination;
$ S; J6 `7 L: a8 l7 @% O                        assignLObj := rgmanager.rgAssignL;6 q6 I& o; t8 R$ [
                        row := assignLObj.getRowNo(GlobalDistObj);( t* r/ R; j$ {0 `$ ^4 D: _' _3 a
                        if Row = -1 then -- since 70- O, S. T# Q0 G( `! N
                                if lan=1 then# F( w* v2 \3 s
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),) K( Q+ R( P9 U  j$ l
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
+ g2 ~0 k# ?7 C' t                                else
; q# O4 K# @! ^0 X: O2 S9 [, O                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),$ Q7 |0 u; K& W
                                                to_str("in docking station: \"",?.~.name,"\""));                                  {$ M& v! R( L
                                end;
# U" ~2 S, k* W$ }1 f/ e# B% E$ Y                        else
+ E8 f, l6 m2 w8 o; C' x! H7 q& ~+ ?: [                                @.Destination := assignLObj[1,row];
8 \" q, V' I6 l8 D: O. b7 p                        end;                        / x9 l2 n" M: T1 Z/ {
                        newDirection(@);5 U* n; c4 V! {' u
                        @.HasOrder := true;
+ B0 n0 s. A* Q$ S( g/ T% e                end;
9 }$ k! U3 _; U; Z5 @        end;
2 I) J5 z# T' T" L7 P$ ]end;        -- of the method. b& x9 B/ l: F; r
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
" u8 X1 l6 p7 r* N
( J6 L* x# I2 j$ a这是AGV_putin中arrive的method。
( f* L" a8 D( L1 [" M
- t" W+ \1 ^# x. f1 p/ A& N( f当到达物料速度越高时,这个报警更多,  n, f1 Z6 M) o/ Y( n6 V  `: U
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
$ N9 S" i$ f( Z7 P程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
# c% S9 Y9 C, i9 I( \) c# r; Q* \# T3 l8 T1 W6 O: X
另外一个小建议,就是move,所有的move都可以这样
' O5 M1 j6 |% e( z/ O  nif not move() then debug end
# M' @9 A% u& g6 t这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
6 t! p% M4 S! ^  U% ]plant simulation中的free libraries有AGV模板,
3 L6 O# ^, b3 R1 o# M$ `7 @里面也有案例。
! N3 k  _9 W5 Y/ M/ l我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
. Y3 x' f2 v* ?9 |* {, F8 W- n# f6 S0 m* }
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
+ o5 m# R0 ], y  U6 {* L0 N/ ?" @; k
- V9 t4 v- {6 K" z, ~那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
" _( K* G8 p' I这是AGV_putin中arrive的method。
% V( m$ M/ U2 @$ Y
8 m- z/ ?( z1 W- X& z当到达物料速度越高时,这个报警更多,
! J% d/ a$ A: J' u" {- k! G: ]
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-28 20:48 , Processed in 0.018573 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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