设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9592|回复: 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'
6 Y' h) h$ H# q2 y+ R7 n*/, ^! Y" o  `& F9 d
is
1 z5 S5 r/ m9 Q0 A/ H        part, GlobalDistObj, assignLObj:object;row,Lan:integer;, N2 l5 ~! N$ y/ L% {0 B
do5 g; J' U+ M, A0 x5 H. H( ~. {
        Lan := rootfolder.Internal.Tools.AOLlanguage;
6 s! D  j3 ?0 k6 w+ i$ T% x; u        if current = @.Destination -- else return/ T3 }1 o' R( m0 S5 x% m/ S4 [+ [- x
        then' Z, q9 v* S4 P* N! |
                @.Destination := void;! X/ U3 y. _- K1 u
                if @.occupied then! Q, V, w  z& M+ }2 h8 ~: E
                        part := @.cont;
. q4 K& s& ?* a" F+ [( x. P                        @.transpOrder := void;" ~* c- I% R2 Z: W$ {4 X$ ~
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,- e$ M5 ?* |6 a* ^( R
                                @,root.eventcontroller.simTime);
4 e; p" H) u; C% }/ \5 p- B  d* h                        @.HasOrder := false;
: a1 S% E5 d' z; \                        @.DrivingHome := true;
% B0 x8 Z' A( M! X8 v0 b5 @                        rgManager.tryToStartTransOrder;" [3 E$ x" U1 a7 R  R4 Q
                        if @.Destination = void/ H( g9 H* Y% |9 U& F
                        then -- no transport order for vehicle @% W+ e% F, C& X4 O; @# `) F* F) }
                                @.Destination :=8 W1 W1 x& }+ U" V; z1 l* P
                                rgManager.nearestFreeStation(@,track.~);
- N3 t! x) x: @! W; D                                newDirection(@);     O$ U$ g  F% ]+ }& |! V# t
                                if @.Destination /= void then
/ I& `+ c* \5 h* j3 _                                        @.Destination.NumReservation :=
% V3 W2 L+ z& k$ C0 n; m                                        @.Destination.NumReservation + 1;; |' U2 d2 x) x1 N# M
                                end;3 F; v' y) `% D0 F% E1 X
                                @.CurrIcon := "drivingHome";' Y# B1 J  y" g$ t# r
                                @.DrivingHome := true;9 f2 S7 G8 u' r
                        end;. A! B( W  ?" a, ]6 z' u
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
6 ~9 W9 v4 K" E( S* ^# A% K( y                        part := @.transpOrder;$ g9 I- r% a+ V+ b* Q& B
                        part.move(@);-- load part) H$ o9 l6 G/ J! o
                        @.CurrIcon := "load";# ^0 s' a& D+ [, u2 e8 L
                        GlobalDistObj := part.globDestination;1 b1 p- r4 C7 t, }, e& c
                        assignLObj := rgmanager.rgAssignL;* s& s9 n2 P& e3 a, e
                        row := assignLObj.getRowNo(GlobalDistObj);
( Q/ z9 [6 y  |                        if Row = -1 then -- since 704 g! z1 p! v7 r- {# W9 H7 ^* q8 \
                                if lan=1 then  Q6 H! T! a' o" V3 o
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
, r% `- d, J. `7 Q' M$ f- o                                                to_str("in der Andockstation: \"",?.~.name,"\""));
% L, C" \9 u7 t8 R' u                                else
9 S1 T, V1 O& \- x' I, ?                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),* |/ j1 }6 D! p: `8 a3 N
                                                to_str("in docking station: \"",?.~.name,"\""));                                3 v$ w2 N# N/ c, E  e: P/ @8 s
                                end;
2 `; W* k8 s4 T: Q: m/ V0 X- Z* z/ m                        else
) T- {$ |- r+ F5 n1 k7 ~' w                                @.Destination := assignLObj[1,row];
. v( N# m: B% q: ?                        end;                       
. U' k- `% ^# P                        newDirection(@);8 T1 X, A3 `) z5 \$ X
                        @.HasOrder := true;" r- M5 @/ F8 C; K% J# U& |
                end;9 v% o- N, c* Y# y, P" i% l+ ~$ M
        end;
1 {/ {# J9 {" ~* d5 o0 R8 Fend;        -- of the method/ B: W, B4 l1 Y$ e8 \2 T$ h
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
! ?9 \0 c+ m' Q8 T  r) r3 |
4 O; n6 G' S# w8 a) S这是AGV_putin中arrive的method。, d& C; @& Y. b' U
/ J3 r' v8 }7 g: A& G6 o
当到达物料速度越高时,这个报警更多,
  i, a8 I  q' N8 X可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
% d2 `# ~; M5 D$ k" w程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
. N5 v- C6 V8 N7 L) z4 A
: o1 h. u" T! A# y$ l$ Z" C另外一个小建议,就是move,所有的move都可以这样: ^, }4 B3 D( Y3 F; b9 X8 M" ]
if not move() then debug end# f! D0 C1 R( z4 Z, Q
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
4 C& U1 I9 a* E0 V9 I, iplant simulation中的free libraries有AGV模板,
- k1 F( r" m# z5 X- a9 v! p8 i里面也有案例。0 A1 W$ U# v5 d; l; l
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
) R0 g4 m& t+ W0 `- j; e- [
$ a" }- u! O5 s我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
( V) A* L4 }+ `+ F" s- z3 N5 r
! B9 a$ x( V0 {那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
; y. a  v' R$ Y这是AGV_putin中arrive的method。; F8 m: t5 u4 l4 n

$ P& b9 o6 B+ @+ [$ A7 |- n当到达物料速度越高时,这个报警更多,
  i7 ]! L( y( p5 s. |
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-10 11:08 , Processed in 0.017546 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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