设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9217|回复: 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'
& P& G9 Z3 U, h3 m: J*/% {( T7 h# u- U& Y, z+ U* ]
is0 Z8 {) M% Q; {" x6 z5 V* x
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;* U2 g8 o7 }0 w. F. y6 T
do
. m3 p0 C3 \/ a4 u0 \  h        Lan := rootfolder.Internal.Tools.AOLlanguage;
" p8 L7 R2 E9 a2 I. }0 t6 _        if current = @.Destination -- else return
. p7 ^4 C' G% v. y% ?, g( z( Z! C        then2 A0 ^$ Z3 V+ S* m
                @.Destination := void;
: J& f9 n, L9 t4 W( P: _                if @.occupied then. d0 V  M/ |; b* d' U* c9 z2 X4 {9 N
                        part := @.cont;
3 X' O* b( J# ^  O6 D/ B+ y                        @.transpOrder := void;5 |  x! I# p' X8 F9 S4 D
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,4 u4 q! C* b# e( r/ b
                                @,root.eventcontroller.simTime);) |" G' o; I# r+ g, q
                        @.HasOrder := false;
7 ]% ?' _2 o0 J) ~                        @.DrivingHome := true;8 P/ {# k; N; Y! n% s+ w1 `: C
                        rgManager.tryToStartTransOrder;
4 s% M+ v% G9 F2 ^( q                        if @.Destination = void
* ^# C0 f* h- m& z                        then -- no transport order for vehicle @
! B( E! {' b% J: D4 ]; U                                @.Destination :=
+ j# `: f8 |8 z* B! q$ O                                rgManager.nearestFreeStation(@,track.~);
$ c3 x5 ], F8 B- l& C                                newDirection(@);     {- I# Z' D# U0 A
                                if @.Destination /= void then
8 Q/ A6 a2 L0 i                                        @.Destination.NumReservation :=
! m1 p- U8 n5 S0 X, I                                        @.Destination.NumReservation + 1;3 x* J3 F& I3 [$ _
                                end;
+ @( y  [7 X/ H# c5 g                                @.CurrIcon := "drivingHome";5 S+ H& A9 @# u, `" }) l# T
                                @.DrivingHome := true;
0 U- i% e) j3 h" u2 s                        end;
$ d+ E& y( w# E: \  G4 N/ \. {9 g                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
) x- b+ X# i! L+ m2 ]( n* `  L                        part := @.transpOrder;
' u6 z. h! q* z+ V2 N, W' |) h                        part.move(@);-- load part
" c0 |2 L' f3 }' L& V2 i1 S                        @.CurrIcon := "load";
$ @9 S! a. K& {  Q                        GlobalDistObj := part.globDestination;8 n# Q0 V1 s. E, Q
                        assignLObj := rgmanager.rgAssignL;
% M* L  V8 }' x* {# k' [                        row := assignLObj.getRowNo(GlobalDistObj);# ~' T" R9 O9 W- t, x
                        if Row = -1 then -- since 70
# s: E0 m, t$ P$ o2 B                                if lan=1 then( j0 d: n* I/ j& a& s' |
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),0 T, {4 o6 R, F$ l# b
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
8 v* r% m/ g6 t, M: K( W  w                                else1 H/ [8 K+ @, q+ d* o2 Z2 R
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),' A1 x3 D6 X6 z, _, n4 I& ~3 ]
                                                to_str("in docking station: \"",?.~.name,"\""));                               
; `# v! u3 q$ s+ L6 N6 T" L$ c- k2 Q                                end;  T2 o' e( S. {# x& K, ]
                        else
! F0 t; x, y5 n1 q4 Y! E                                @.Destination := assignLObj[1,row];9 c% J( Y2 Z* `- l% H" l% T! U4 x- O
                        end;                       
8 w: k4 a4 k6 u+ n3 ?5 g                        newDirection(@);" V5 r$ E) J' N- o* h& `
                        @.HasOrder := true;! T' B  U3 W$ V6 @6 H
                end;7 O0 W8 D+ l3 N" {0 D2 n9 n
        end;7 I+ u) Z* B+ E( Y4 q, P
end;        -- of the method
- \0 m, _2 `' P' t1 E
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 2 V9 k  e' B2 \0 V# H: H
3 S! Z  `$ d) g; q0 u( Z# \& {- l
这是AGV_putin中arrive的method。
; J  R" B& v5 J; ~
8 A  `. Z. |5 R- G4 _# q当到达物料速度越高时,这个报警更多,2 H3 v: N- p) D4 u
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
3 ?. e5 x4 l& z2 W2 F程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
' d6 d% o( \/ v5 U, |* X7 e% |# h: G8 F, ?% s
另外一个小建议,就是move,所有的move都可以这样
- i  E. X! @/ a% nif not move() then debug end2 F9 i; n' P  q1 g0 {$ W
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
. q6 G/ p6 |* t3 o0 N* T9 Oplant simulation中的free libraries有AGV模板,' u& D! f7 S5 `7 V
里面也有案例。
* v2 x3 g/ D" S0 j) j, R; m0 p! k我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。5 W! i$ ~5 C% k+ |4 x: d8 j3 z

8 C3 i/ d; o3 Q* ~# _我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 * s# m' m! a$ C
/ u  X' Z, B9 |$ O! l! j- _
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 2 S4 w% k" U5 N! O) A1 ?1 ^' x
这是AGV_putin中arrive的method。
1 g1 U% a$ Z5 u( W! B' ~: l6 l5 ?
: R1 K- v: p: T$ ]$ Q+ V当到达物料速度越高时,这个报警更多,
+ B: w6 E+ ~' |5 Q7 B
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-19 20:04 , Processed in 0.014514 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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