设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9062|回复: 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'" ^+ Y9 |0 y. H4 P: H
*/
' d2 A- O0 f! Z# b, @# u5 wis
$ I3 b+ n/ i+ k/ v& t        part, GlobalDistObj, assignLObj:object;row,Lan:integer;7 r& Z2 v6 g8 V( D
do6 C& D$ u; o8 ~, v
        Lan := rootfolder.Internal.Tools.AOLlanguage;3 v/ S+ g. j# b: Q) j
        if current = @.Destination -- else return" _9 |5 U8 S6 D; s2 c
        then6 W0 E$ K9 L( s/ s! M
                @.Destination := void;! Q" @$ q7 o1 P9 \% c
                if @.occupied then$ t: ?: ?# J6 F6 ?# C
                        part := @.cont;, x; q2 _! j- z, f1 l7 _  z
                        @.transpOrder := void;" f& @: R9 e5 n2 E4 N: z
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
: ^  D2 u3 k* e# ]6 K8 [                                @,root.eventcontroller.simTime);
- ]$ c2 e! J6 e% F9 l, X                        @.HasOrder := false;
9 D3 X0 W! H6 ~% b                        @.DrivingHome := true;
: X) y+ l6 f% [8 [$ K3 S                        rgManager.tryToStartTransOrder;2 A& s- |, O. `% F
                        if @.Destination = void4 q6 n5 V4 S' h# z, k+ L2 @
                        then -- no transport order for vehicle @
: q/ Z/ B' F% v5 z6 |) m6 L                                @.Destination :=
1 l' j5 K0 _, V# @' M5 E8 E                                rgManager.nearestFreeStation(@,track.~);
9 u5 g: Z! o3 s% ?- ]                                newDirection(@);   1 a! i" P" X* A  E" c
                                if @.Destination /= void then5 E& ^- ^( n9 z4 l; o. |4 @
                                        @.Destination.NumReservation :=
6 {2 ]2 |) J6 a4 U' a                                        @.Destination.NumReservation + 1;9 n) I* H- y: s' k* S3 s) w
                                end;! C+ l; b' p& y: e6 B
                                @.CurrIcon := "drivingHome";$ i3 R/ u$ J# L$ p( o5 c
                                @.DrivingHome := true;
* P: l9 x8 m7 _' \                        end;
, X+ U, A; r! j0 P1 N; r                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
( [4 C4 P- Q4 Z. }# `1 R                        part := @.transpOrder;8 M  Y) |# e/ Q) C  w
                        part.move(@);-- load part
+ x% f) \$ T6 l4 P. \" T1 [+ ?4 K                        @.CurrIcon := "load";5 H0 \& M3 S. e" c; d0 A4 s: h% I% ?
                        GlobalDistObj := part.globDestination;1 f2 v* S1 o7 c6 K5 E0 @. d/ _, x* S
                        assignLObj := rgmanager.rgAssignL;
) O6 f! a6 ]" D0 D- i1 K3 |                        row := assignLObj.getRowNo(GlobalDistObj);. N; D) A: m$ l+ `
                        if Row = -1 then -- since 70
% P+ b' p! q0 ]2 z/ x% G                                if lan=1 then
" ]3 @* R$ N8 k9 D6 o7 O; ^+ G2 x                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
+ v, v( y3 ?- E3 T- a                                                to_str("in der Andockstation: \"",?.~.name,"\""));
, ^2 y: m6 _' a                                else" e* p9 C  H) i" ~9 l0 o
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),/ W9 v9 f5 h, z) b9 s
                                                to_str("in docking station: \"",?.~.name,"\""));                                . z* J2 \* R; i; v' {7 G
                                end;  r* y4 g# b5 q4 r  [$ O
                        else
" I9 H$ ~# A  F                                @.Destination := assignLObj[1,row];" R4 H! p7 Y6 U' t1 g+ l5 V
                        end;                        : B: F8 ^# U4 U
                        newDirection(@);
3 U* x+ X* |/ |3 f- V' Y                        @.HasOrder := true;
" \( c$ v; s% s8 U4 f                end;
9 i1 C- i7 P( l) |" C; E  P        end;5 L) r' X2 s) ?; ?+ Q: a. F8 B
end;        -- of the method- e" C( L5 c' ^4 H+ ~
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
* l: C! Z" l2 B- O* P' u
+ a. n( c& [' \' e这是AGV_putin中arrive的method。
7 L9 @: J3 A, p# u
, ^' H( D/ q/ _' F当到达物料速度越高时,这个报警更多,
. F/ m5 w8 M. Z2 ^: M可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
# m- Q  ^9 J8 V8 A, _$ ^3 A程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?, T: N' ^/ h# b- @7 \2 Z' M6 Q. c

% t5 Q% n! F9 t. p0 t: W$ E/ Y2 ?/ l( _另外一个小建议,就是move,所有的move都可以这样9 }' F3 _* Y- C) @+ h! h
if not move() then debug end
+ \& k, ^6 w( @- c8 c这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
9 N) H9 o( W: l) Uplant simulation中的free libraries有AGV模板,3 |0 l5 Z$ R! Z; r! q$ d1 y- }( x5 b
里面也有案例。6 l) B% ^0 C; y  n5 Z' a
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。, y8 D+ t9 e. n* Z$ K: E% o3 u
0 J9 u# v" r5 j! R; k- e/ X% j
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
, d- t$ D0 K/ W, p- ~
, K; s, P# I6 h7 K; @, J7 H3 x那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 # ^) H+ j# z4 b& [7 W; o
这是AGV_putin中arrive的method。5 c5 k7 p7 A6 V% a! t/ V3 M5 n* L
. a) s2 L. ]) ^! K, M
当到达物料速度越高时,这个报警更多,
* D  p$ R' b5 N9 v% G& l! _4 J, G+ p
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-11 12:06 , Processed in 0.016167 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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