设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7686|回复: 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'# s' F: q) K8 o" R
*/' t! c' u3 @8 x) g
is
2 y: t% i9 E( t5 E5 o/ K+ \        part, GlobalDistObj, assignLObj:object;row,Lan:integer;! h/ u8 @2 m6 G$ I
do( o7 `; s6 B1 X- `; T
        Lan := rootfolder.Internal.Tools.AOLlanguage;
" x, H4 {' F7 u        if current = @.Destination -- else return
1 f) C* [# W! D$ r- u# t( \        then
- S% I2 _7 H. m' k% A                @.Destination := void;
6 t9 N9 z& A6 Q                if @.occupied then+ v# u3 E8 }8 {  T* A1 k4 X
                        part := @.cont;- m/ n3 g: @" w- ?
                        @.transpOrder := void;- T0 _, a, C" T2 w; b
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,. C1 C+ b4 b- H) w5 B
                                @,root.eventcontroller.simTime);8 T: n# S/ _- \" H; N
                        @.HasOrder := false;
, q6 k; q. P- t, p                        @.DrivingHome := true;* n' z3 g6 [$ d$ W8 f# L0 O
                        rgManager.tryToStartTransOrder;
! l8 L( H1 k6 b/ J. e                        if @.Destination = void
- A) l) j1 s7 ^2 x8 t! h1 [, D                        then -- no transport order for vehicle @
+ v  `+ i/ }# ~4 X                                @.Destination :=
0 I0 O8 o# [+ p: r$ T5 b; \) Q  {                                rgManager.nearestFreeStation(@,track.~);' a# L) \4 A3 U$ e( n
                                newDirection(@);   9 u6 [9 _6 f$ c; O) i6 x
                                if @.Destination /= void then. U4 }: L. k0 \! _3 o1 W
                                        @.Destination.NumReservation :=$ r( d! |1 f8 P% I6 m% Y5 M
                                        @.Destination.NumReservation + 1;
4 W7 I2 m0 z9 D, _. N# h5 H, h' B2 O                                end;
' b, S& @9 a' y+ i( T  L; S, V+ s                                @.CurrIcon := "drivingHome";
" _1 q8 b' ]( p                                @.DrivingHome := true;% H( l4 E8 b, i9 }
                        end;
! O; |6 c: F& q( T* g                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
: l, M* L' Y* V. G# M0 n                        part := @.transpOrder;
; T! s& |! n& q                        part.move(@);-- load part
+ G3 c1 I/ {$ _+ Y4 l                        @.CurrIcon := "load";# z$ D  f3 G- F/ G2 p  e) k
                        GlobalDistObj := part.globDestination;
- P( C, Q6 g: f# Y" Q( ~, J                        assignLObj := rgmanager.rgAssignL;, K* n! H/ R4 b6 ^/ c
                        row := assignLObj.getRowNo(GlobalDistObj);& d6 ]1 V/ C! s8 W9 G
                        if Row = -1 then -- since 70
- h, k7 X. A, o& a4 K                                if lan=1 then
" C  V2 d+ m8 K+ T                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
- z' \5 m1 m" I" B  W9 l) G) q0 J                                                to_str("in der Andockstation: \"",?.~.name,"\""));
% }$ {+ q4 p  }# d, c* t; Q                                else
# {8 e" I  n8 @  z4 f- }* T, X  v                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
; J1 ^2 B6 @0 a7 `. {                                                to_str("in docking station: \"",?.~.name,"\""));                               
+ V( l: U1 ^0 x8 H2 D. T& @* d                                end;9 a) \# B3 W4 d2 Q4 @4 O' p
                        else
6 R/ n/ C- j& {0 Y                                @.Destination := assignLObj[1,row];! h0 d: r0 X- X2 D9 ?8 l  r' a! \
                        end;                        # ~5 J' s0 I5 `4 }3 i
                        newDirection(@);
9 K7 G" D" B" [9 p% G( j( W                        @.HasOrder := true;
, n& k+ ?& F9 [3 k# g                end;( q/ v3 x# B6 D* `- Z& C
        end;7 G. ]; y" }* [+ b7 Z! Y( \
end;        -- of the method
; B9 V% y3 P2 I* T" H+ S& q
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
" ^- q" ], T, T  E' p6 C
, l6 j% B- a$ l7 i' w这是AGV_putin中arrive的method。
) P# W6 A" s$ Z) N9 ^7 [- b
) U  x  ?# E* M$ G  |7 m; u当到达物料速度越高时,这个报警更多,
9 o6 ?: ?/ ]5 r9 ~可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。" I7 r8 i% ~; a: E0 C
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
4 ]! a( F% B' v3 n+ F  a% [) v4 \: ~- ^$ ]. M+ B$ K. y
另外一个小建议,就是move,所有的move都可以这样( ^3 D+ j: r* V% S! a, {  F
if not move() then debug end
- @! T# d5 ?4 Q/ t% e% A& a. O2 G这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
; w+ Z7 t9 X8 B, ]- E3 |" i+ ^plant simulation中的free libraries有AGV模板,
# b: [1 _0 F" Z, w! R7 O( t: t( Y- w里面也有案例。/ F: s( x5 Q1 L
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。- Z  V. Z0 i; d/ l

- d" k* {" o" j7 o: }) h我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 2 z9 q- ?% W' ]2 S9 a8 H: R
" A. B' u9 N$ k$ X9 y
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 3 w1 l4 `- a7 C/ y. p
这是AGV_putin中arrive的method。
! V8 a0 p: ^6 P: L+ K! F- A( o6 E% y3 y/ L$ g! p* {, c- F
当到达物料速度越高时,这个报警更多,
2 j6 F" j) H9 R9 C% T
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-24 06:26 , Processed in 0.022682 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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