设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4796|回复: 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'
/ X! R& m4 R, k*/: Y+ b* |3 A. w+ w4 e& Z* |
is
9 t. ?4 K* T. h2 D% r& u        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
* E7 z( r' v7 \4 P: E! Hdo* C0 t6 H7 f; ?: E: `" k
        Lan := rootfolder.Internal.Tools.AOLlanguage;
) g2 h0 W9 y* P4 u        if current = @.Destination -- else return
+ D( n* f# }6 U0 R7 x        then$ J2 G5 e% X  I2 d
                @.Destination := void;
* @+ X% c; m7 r8 ?5 C# G% A                if @.occupied then
2 U, T6 `- |$ e: y8 S" g1 J/ v                        part := @.cont;
$ R% J- q7 h7 n/ H                        @.transpOrder := void;
# {4 Y0 J$ a( f  D& m+ ~4 k7 ~% c' k/ ?                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,' n/ a, W$ d9 s1 G3 b  u
                                @,root.eventcontroller.simTime);, }; T, L8 j' y% Q* O' d: E& ~/ Z
                        @.HasOrder := false;
; W4 V8 ]- T3 l1 I$ K8 V1 Q. @                        @.DrivingHome := true;7 @# a( Q$ r3 g7 o: V% G% V
                        rgManager.tryToStartTransOrder;
/ d' i1 {9 @' x8 N6 o2 ]; m                        if @.Destination = void( I" f7 ?' S' G0 E
                        then -- no transport order for vehicle @1 N9 \* c- _, ~. o+ \$ @
                                @.Destination :=- K. t$ X. ^5 p4 ^: B% K
                                rgManager.nearestFreeStation(@,track.~);, k: e1 }0 k' T/ G# h1 Y
                                newDirection(@);   0 b, B: G- c* P
                                if @.Destination /= void then
  D5 M/ F4 W4 V6 G" o+ q! }                                        @.Destination.NumReservation :=
# `+ L7 V; t  g, U" G                                        @.Destination.NumReservation + 1;
3 f% _( `+ Q' b% o9 f                                end;
; E* H) O) Y" Y# ~, d                                @.CurrIcon := "drivingHome";' w* P+ p( v8 p" B: H& q! j
                                @.DrivingHome := true;: ]. @: A* u! G) g- _  G% r
                        end;
! j& A) r# T% F) {                else -- the vehicle @ is empty, both vehicle and part are in the same dock station! s0 k# J( {5 v" w. G" G, Y
                        part := @.transpOrder;
+ ~. X" m' L$ L. c1 R                        part.move(@);-- load part
; }8 g: g! M+ j( b+ W! K8 [# ^                        @.CurrIcon := "load";0 Z1 l" l9 t4 V+ K# R0 m
                        GlobalDistObj := part.globDestination;
1 ?( N( M& p, i                        assignLObj := rgmanager.rgAssignL;5 r, K( K: O! ?; o4 N
                        row := assignLObj.getRowNo(GlobalDistObj);3 R# [& v1 }  q8 w, O" w
                        if Row = -1 then -- since 70
$ J/ v: m6 ~+ @" l) N* a! N                                if lan=1 then
$ N9 H. K7 r( E+ v( B1 t6 \                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
1 S% F1 n9 `6 U                                                to_str("in der Andockstation: \"",?.~.name,"\""));
1 K, j! c  t- |9 E1 ^' x2 e, a                                else
8 u* ?$ n/ p! P. D/ Y0 ]- h  b( f0 D                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
: j  j& d* q1 C- S2 S, ?4 i3 g. D- \                                                to_str("in docking station: \"",?.~.name,"\""));                                  \# I, x) c0 j. ^$ E  C- `2 j
                                end;
+ J' R1 I2 W/ }: c/ e4 W3 ~, ]) e                        else4 ]# I1 t: j# \
                                @.Destination := assignLObj[1,row];
) D3 b' h5 Y0 X* H                        end;                        3 v! L9 {4 q0 Q- @; |9 P, v/ Q% m! c) a
                        newDirection(@);& q; X, M5 T0 J4 T% @* v; O3 T, L6 @
                        @.HasOrder := true;
! A7 K5 M& v4 f! u+ E; s5 o. X                end;
- y7 b5 q1 s; j( d: G; V9 x        end;* ^# l- Q3 d+ u, C0 }6 S! C
end;        -- of the method
, I- l5 r9 V" U" Q! H( @+ C$ V1 V
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
0 j, `( o7 [' v% v2 b5 w
. X8 A1 z% z2 W# z" S. v- j这是AGV_putin中arrive的method。% W5 G  d% p2 C" [5 H

& E2 D+ N% l# d当到达物料速度越高时,这个报警更多,
' B. X' }' S; w! Q/ U: I* V  z' L1 H可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。0 M( h$ u5 N0 e) ~: }8 l1 q
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?0 M- u$ |  [. I  ]9 s) q

2 p- W1 H5 y/ ~另外一个小建议,就是move,所有的move都可以这样* o  C2 }7 W8 J
if not move() then debug end
# q- J/ i; f' ~2 a$ {这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
: ~: o0 G, U9 y# c* A+ z6 @. |% ^plant simulation中的free libraries有AGV模板,2 a6 D* I/ `- A! `8 H* k
里面也有案例。
" d0 x" d" `( y; e0 S我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
" A( e9 v* r$ m$ }: [) _" y5 k* \0 q  Q* l0 f- R. e0 a8 W
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 * B# v9 q4 Y" T9 n* D

) J  E* U8 [. m. j! E) |. h那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
! ?  i  V+ U- Q; a3 A' P% x! w这是AGV_putin中arrive的method。
: J6 @+ X7 i' p- r1 g, ?9 I1 @# _' l, k! h! [, R# J1 g
当到达物料速度越高时,这个报警更多,

, H# F4 k! f2 ^+ h% k另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-8-22 02:15 , Processed in 0.014570 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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