设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6682|回复: 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' X0 z2 f" F' A6 }
*/5 ~9 T4 K' K' K1 \1 w  a
is8 R+ w3 M) G! |* V2 U
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
1 A$ G. |% G; y' r# o$ _do
4 p/ u+ S+ }& a- R6 b) ?        Lan := rootfolder.Internal.Tools.AOLlanguage;4 t* \" r1 u9 g, S6 _2 W6 X; P
        if current = @.Destination -- else return
0 E8 L( @' P" B        then
) C& a7 w' A2 C9 ?5 g                @.Destination := void;
+ V& |" b4 _' A/ x7 f8 p7 `                if @.occupied then' a9 X  k# ?( ^
                        part := @.cont;( _' Z7 y: C1 {: u
                        @.transpOrder := void;& n, n' B, a. s4 S5 g5 d
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,; I6 |$ W# d! ^, Z
                                @,root.eventcontroller.simTime);
6 G# i- J: a' W  L. M                        @.HasOrder := false;
: D* Q+ k6 v: b5 [- V* t, P                        @.DrivingHome := true;
3 j  V7 {5 U* N  r/ ?2 i                        rgManager.tryToStartTransOrder;3 C3 h5 B% G" `5 K0 u3 e1 x
                        if @.Destination = void
# u* R5 {; Z: A                        then -- no transport order for vehicle @
  y; O) m) J( j' u& c4 _                                @.Destination :=
2 i" q9 x  v3 ]$ p/ I                                rgManager.nearestFreeStation(@,track.~);. Z: [0 m; r/ u
                                newDirection(@);   * e8 H/ l# @3 Q' Q; D& n( M4 ~
                                if @.Destination /= void then# S% w( y% X% _2 T$ k* b
                                        @.Destination.NumReservation :=
/ B6 `7 T, a" u                                        @.Destination.NumReservation + 1;
. D1 l3 Z1 J! e/ u7 F! x! f; N' `- _  K                                end;
$ {! c- w" ]# v6 w3 V6 _; l                                @.CurrIcon := "drivingHome";/ C+ j* S' q0 q9 a3 K
                                @.DrivingHome := true;0 U2 [2 k9 |. X$ D. M
                        end;
  u( O/ |* O! x4 C2 \: m* J( `                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
/ M& u5 ]" C& {8 }# y% q# E                        part := @.transpOrder;
" o! }: ~* v( n  v5 ~" D                        part.move(@);-- load part
: p2 G8 _1 L3 J* n! @                        @.CurrIcon := "load";
8 u) h& y; a+ U                        GlobalDistObj := part.globDestination;
8 G9 v, ~- M* {+ J2 r3 R                        assignLObj := rgmanager.rgAssignL;* Y, A1 U: o4 M6 R, _
                        row := assignLObj.getRowNo(GlobalDistObj);
) o8 q" Y+ p; z7 G+ D" a                        if Row = -1 then -- since 70
% H  c+ L2 Y1 P9 h# u4 Y                                if lan=1 then+ d' J2 {* f$ i0 N* ?0 @% c
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
: U: v" C8 H4 q. e                                                to_str("in der Andockstation: \"",?.~.name,"\""));
6 A, R: o1 \; v  I9 A                                else
1 U7 R0 f! i9 M                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
  e; S# \+ y; \! b' }$ L8 n                                                to_str("in docking station: \"",?.~.name,"\""));                                + B% s8 Y$ W% \
                                end;/ q( h% N8 i, _# t- v
                        else# {7 p( D4 ~9 c- b" y# a6 B2 Y* u
                                @.Destination := assignLObj[1,row];
# Y: ^1 b8 n# U- H7 i, j                        end;                        . n* O. N0 Y' Q+ J. l0 a
                        newDirection(@);
6 D, }! z7 X9 ?, d) Z0 Z! A3 C                        @.HasOrder := true;
/ I5 N: g# ?7 N/ Y) {! s, n                end;" J( K- M& N7 ~) w
        end;
9 Y  i4 ~6 u& T0 n- ~: E& @end;        -- of the method. M1 n0 C8 F4 l+ v) D$ Y! v7 D
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
/ i2 {; ]- X- a: ^% @: U) y% P4 x7 Y2 M
这是AGV_putin中arrive的method。, @+ \) i, n7 t5 Z8 \7 [- S
7 j; M& V4 S0 a% `6 d" W( d- k
当到达物料速度越高时,这个报警更多,
; j3 @# H( {8 j; b2 j# o可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
4 k% F) G: k% _$ w程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?2 `, n( F3 E' E+ j) s

0 p, k  q9 W7 r2 C$ Q另外一个小建议,就是move,所有的move都可以这样/ D9 k/ u0 h; H
if not move() then debug end9 P1 _( M+ C5 ]+ `% N5 i- n1 o
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
+ m' u9 I% y3 e6 xplant simulation中的free libraries有AGV模板,; S7 _' A. [3 g2 o
里面也有案例。
; P& J3 n) E; N; e  p. Q+ W我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
( a! u8 a$ E& ?/ L' @, ?  V9 V* m
! _' w  j" r% B9 q2 Z% L8 C我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 $ D4 O/ h- \% {+ H

4 z% {( M* m0 f0 O0 b那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
8 n; B8 b0 S0 ], ]这是AGV_putin中arrive的method。: R/ O* ]3 u: ]9 o! E- R) m' v
3 \& o$ F  D9 P, ~; h$ @
当到达物料速度越高时,这个报警更多,
- }0 x' L, {2 Z" v: @2 y
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-20 15:08 , Processed in 0.015961 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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