设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10285|回复: 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'
- Z, R6 ?; N3 i4 Z  R  T# x*/1 p: e% B9 `' |5 @) S
is6 s& I0 P& z% K6 c; S' t: r% Z
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;4 m5 u2 {% X7 D
do
* {2 Y3 }) u: d1 r& T! W) D+ N8 I        Lan := rootfolder.Internal.Tools.AOLlanguage;
% o7 X6 [" W1 @* X- A        if current = @.Destination -- else return1 l( }' F6 d; @1 J3 h
        then
8 F" i2 Y" p4 `1 Q$ @                @.Destination := void;
: ]% F$ K6 e5 d- i& T                if @.occupied then
  X+ K2 }& L$ p0 B                        part := @.cont;, b5 M7 I6 H4 j& J
                        @.transpOrder := void;
% v% R, I3 R% g) ?# D1 j+ ]                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
& [" P. b2 Z3 t, B! a, t# L                                @,root.eventcontroller.simTime);, `0 ~4 ^! Z$ j6 ^
                        @.HasOrder := false;4 c$ ~0 g  e1 _/ b; T
                        @.DrivingHome := true;* U/ ~, i. H4 o# `
                        rgManager.tryToStartTransOrder;+ `  w1 U3 N6 s/ x6 D/ B
                        if @.Destination = void7 k8 I; i6 U* r+ u+ s
                        then -- no transport order for vehicle @& R: @. C- V- {( N* v) l
                                @.Destination :=* D0 r- V+ L  Z
                                rgManager.nearestFreeStation(@,track.~);
) }& K2 ~; P; O# [                                newDirection(@);   
# J0 j- f( E6 h$ D                                if @.Destination /= void then' Z; r: I) |( O& g* Q+ [7 U
                                        @.Destination.NumReservation :=
0 ?8 B9 B! N. v- b4 }6 y: \9 g                                        @.Destination.NumReservation + 1;
/ j( r" j& x  K4 f4 t. }                                end;( W( @* f! t$ G+ h  B6 P! E! p% h
                                @.CurrIcon := "drivingHome";
8 c' Y2 T2 d8 ^- T9 M  j4 T) I                                @.DrivingHome := true;& p8 N, V& u: N' s8 V6 i
                        end;' T# v( ]: c/ u$ Q# k
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
% r7 K  e7 U6 P  x                        part := @.transpOrder;
; e# v  l, A+ b1 W9 R& t4 A: u                        part.move(@);-- load part
* D- }. g8 g8 \5 s                        @.CurrIcon := "load";( Q: n2 k6 r$ o& k( v
                        GlobalDistObj := part.globDestination;
# A! p' @8 N' h# ^6 @5 }5 }1 d$ K- r. z                        assignLObj := rgmanager.rgAssignL;0 ^' x- C' E. ?, ]" y
                        row := assignLObj.getRowNo(GlobalDistObj);) N7 z/ T, `6 J, t* x3 [, D5 N
                        if Row = -1 then -- since 70
4 S, [% |0 e# {* ]  L/ O5 d$ k* v                                if lan=1 then
! l; j9 X# `% \1 J5 _5 p: P+ ^                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
, k8 O! O) ^9 y+ x$ N# h  i8 i                                                to_str("in der Andockstation: \"",?.~.name,"\""));
5 |8 k8 L7 v. u% y                                else) j2 V. I3 g" Q+ S
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
  `  e4 J, K% K2 |2 C% v) C+ C                                                to_str("in docking station: \"",?.~.name,"\""));                               
  Q. I( I! T0 y3 u" [                                end;- a. O2 }$ S7 e  \& _' N
                        else  {  a' M3 U. q2 z) l; }
                                @.Destination := assignLObj[1,row];( u' P2 e$ K3 s2 }+ [
                        end;                       
9 r9 f5 v- L2 \2 O' {; B; z$ p7 t                        newDirection(@);# f* n0 D1 A+ l
                        @.HasOrder := true;8 ?% r9 ]) H, L# k6 Y; L
                end;
9 {8 |( H6 f3 Q' |) p        end;9 y6 d" {" @& H; b7 E$ J8 p. V4 M" q
end;        -- of the method, u$ m: `% \8 p7 I
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 2 @* O4 }& L9 o, X6 f6 q

/ o( r! Q# R3 `( N: p; j) M! _这是AGV_putin中arrive的method。6 D2 \, m- A5 }" f

% u4 P7 C, g! {7 w: @当到达物料速度越高时,这个报警更多,
5 ^0 P2 ?) C* c1 J; ~可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
% ?1 f% a0 h0 ~" C" W$ G1 J程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
& A: K$ G& T. w" E) @2 X7 y; s/ o
" ?- x3 b; G1 }, m# W另外一个小建议,就是move,所有的move都可以这样& O8 I/ i3 |, f& l8 }( P' u% ~, A
if not move() then debug end. ?3 w- }6 Q, K1 m6 B* ]5 T
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
/ F! l7 Q; K3 a; K- ?plant simulation中的free libraries有AGV模板,
$ l7 L; j  ^) R+ P8 a, D4 ^9 C3 b里面也有案例。) M, E1 E, O, L* o
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。( W2 L7 B$ a  \( R& w) U4 |
+ m1 n9 o7 i7 t6 W2 N5 O5 V4 ]
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
$ {+ Z, P4 I8 B3 C8 @! y! E" E" I6 |" T
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
3 {( y9 Z) W; A+ l7 n" R: f这是AGV_putin中arrive的method。
' E4 p' t: a4 v6 k
" h- Q5 w) v9 p# \当到达物料速度越高时,这个报警更多,

9 v4 N: \- b( x1 D% R- \2 u5 \' `7 O* s: U另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-24 12:46 , Processed in 0.017657 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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