设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8528|回复: 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'5 x7 o8 P" X% l% c  Z5 J: \
*/
7 M9 g. u2 K" E! A& }2 t: Eis% I5 o! d+ C& w0 c2 ~( e% J! n
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
5 H) p# ?# r; v( {. ~do
& a" u$ X- @4 {' ?! U4 N        Lan := rootfolder.Internal.Tools.AOLlanguage;3 Z! T3 j  l! b/ f: @. P. {2 b
        if current = @.Destination -- else return
* ?0 P2 g" o! b- }        then
2 ]' O6 N) M) z2 t+ b5 O                @.Destination := void;5 E3 L5 k6 Z* j3 |
                if @.occupied then
3 S0 I% n% F$ g) @7 y                        part := @.cont;: K# i/ U- {: v$ C! L
                        @.transpOrder := void;) D0 S7 L6 t9 r
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,9 V# w) H' y$ C  _' }6 N7 ^
                                @,root.eventcontroller.simTime);
' t4 Y( ?; c7 X                        @.HasOrder := false;0 U- m& X7 j0 j, y! K
                        @.DrivingHome := true;1 q1 d: X# ~3 e$ e( n$ X
                        rgManager.tryToStartTransOrder;
- [( |& {1 z( I  o9 ^; }                        if @.Destination = void( R  N4 d, v1 l3 R; D
                        then -- no transport order for vehicle @; k1 _! e; u0 Q/ T/ c
                                @.Destination :=
# a% X# j. N  d8 T3 {+ \                                rgManager.nearestFreeStation(@,track.~);
( @- g+ s* b1 A( U" {                                newDirection(@);   
( o* x7 U% x: h% V/ @& v; q                                if @.Destination /= void then
$ P  M% V* T, o- @                                        @.Destination.NumReservation :=
5 n. r1 R6 n' ]) a& w! Z, Q0 S% S                                        @.Destination.NumReservation + 1;
: ?, j  {+ {' g0 B1 D7 U                                end;; `) V7 A: n5 Y0 n7 O: C$ D7 ^
                                @.CurrIcon := "drivingHome";
9 |* O9 r0 n; E, l2 [4 ~                                @.DrivingHome := true;; h, M' W/ v5 N6 W
                        end;
4 i) l% j2 `' c- h% S1 D                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
- r$ G# C& ^; Q* w& T9 Z                        part := @.transpOrder;+ X& \. i# p. O
                        part.move(@);-- load part% c& w$ n, r) \! g
                        @.CurrIcon := "load";! i5 V3 I9 r1 O/ {
                        GlobalDistObj := part.globDestination;
; [- h; u. J/ y$ `7 o                        assignLObj := rgmanager.rgAssignL;
, Q  J- N: N8 l5 q0 w                        row := assignLObj.getRowNo(GlobalDistObj);
% `' y) P: g* W                        if Row = -1 then -- since 70
( }5 }% r0 b7 Z8 g( U                                if lan=1 then
# I2 G7 q9 R6 ?                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
1 v  k8 B4 s# {) m                                                to_str("in der Andockstation: \"",?.~.name,"\""));
8 j0 d' v  B3 ~+ V) L& P. y                                else
( G$ W: i: ?# |0 _4 p3 L; Z( F& T                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),' Z, I6 U0 K, j  @
                                                to_str("in docking station: \"",?.~.name,"\""));                                ; T4 a2 v4 F/ k, U$ u, c1 }8 m
                                end;
+ U$ u+ i( Q- D3 e: e                        else
2 z6 H$ H( ]( Q( }% C% H1 @$ W                                @.Destination := assignLObj[1,row];5 z1 q7 H( U  l: c) E- y3 B
                        end;                        - n. x$ b  a: m  N( C* S6 l( V: m
                        newDirection(@);! r9 P0 l% v0 }) h1 k7 X) \4 N' t
                        @.HasOrder := true;; o+ k8 S4 P5 Q4 `* V
                end;
4 A* l. I' d  V. k  u4 F/ x        end;
8 Z3 R3 J% d, i/ [/ Tend;        -- of the method, J& S5 f/ h8 o8 T4 d3 l
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 7 i8 N* Y5 O2 G, k/ l1 s

& |8 M* a1 i2 p, k这是AGV_putin中arrive的method。$ C6 h2 y% G" r  b; l9 F

, J; A, X' u5 o& z. R当到达物料速度越高时,这个报警更多,
% d8 k, L0 O) a9 Q, i- j可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
6 g$ n  H; {( O: n程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
  N" @' D0 h  L8 Z; w( O
, r  w2 @/ s2 ?; ^0 Z2 L另外一个小建议,就是move,所有的move都可以这样
" j) z) V& _% ?0 t2 A# gif not move() then debug end7 c1 \) C2 l: ~) [
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
9 h6 h+ w) m! Lplant simulation中的free libraries有AGV模板,7 x- p- g5 ^+ \5 P: G6 W: e) @
里面也有案例。5 p$ r( ]1 ?' m/ k
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。, f5 A9 E! v' u8 @6 P+ _2 T- u
" j& P2 x: N( P# l3 K/ V
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
& M3 D) p4 y. R( s
# C4 p$ C2 r  g+ I" \那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
5 j/ a/ f0 n" R( x5 @+ o4 Y这是AGV_putin中arrive的method。
$ [7 ~0 @) n( s+ I
8 Y- [$ Q  ]: h当到达物料速度越高时,这个报警更多,
& \! m; L  N+ X  m8 o- a
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-9 10:03 , Processed in 0.013621 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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