设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6355|回复: 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'1 k: n6 x7 W9 ~6 E* q  h8 N9 d9 u
*/* r- g; V/ Y' Q; w' s6 o
is
' v- @( \0 m( P" Q2 V+ n6 f        part, GlobalDistObj, assignLObj:object;row,Lan:integer;$ A& J8 r$ l) k: V
do
2 r' x( [! F3 D) f- p9 X2 a        Lan := rootfolder.Internal.Tools.AOLlanguage;
9 S5 d& ^- v- Q3 F: ]5 Q        if current = @.Destination -- else return) D, d+ s0 u  k" G! G' a+ C! r* p9 K  Y# h
        then. J  L* ^( v' m2 Y. d" m8 i5 g
                @.Destination := void;* l  }3 A) _0 ^2 K
                if @.occupied then8 X, @( r4 K, j( t- ^
                        part := @.cont;2 F6 H" O+ C2 ~- r6 h8 N5 {& [
                        @.transpOrder := void;
, }1 K) D  a& }                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
' b4 U4 n; p* g                                @,root.eventcontroller.simTime);
# }3 v1 |: n4 b" _( t                        @.HasOrder := false;
/ B& Z6 m: ?% i7 h" X                        @.DrivingHome := true;
% d4 x4 J; C1 Z4 d& q$ H- b/ j                        rgManager.tryToStartTransOrder;
! j6 G5 h* a. k, [& p1 Z( {                        if @.Destination = void" f* x1 n8 p  {3 ^: j" H- x, U
                        then -- no transport order for vehicle @
2 M3 o5 {% h# W% z. D8 ]7 k+ }                                @.Destination :=* C5 {" I, L, t3 Z
                                rgManager.nearestFreeStation(@,track.~);
+ g0 l; i$ T* b: T. V7 f: |                                newDirection(@);   
* i7 A% p8 y$ H4 d                                if @.Destination /= void then1 N/ x% c0 h8 I; f' l
                                        @.Destination.NumReservation :=
% N8 i5 G0 O7 k7 z! q- E. M8 W$ C' A                                        @.Destination.NumReservation + 1;
7 t1 d$ ~6 @2 o4 u+ G+ M                                end;
1 h# F! F8 p# q6 _' ?" ~! J4 Q                                @.CurrIcon := "drivingHome";- b5 W3 S; }# h" j" P- i" V3 S2 \
                                @.DrivingHome := true;4 T7 |4 W% s" u7 d) L; V
                        end;8 H5 @  z4 T; W+ t* D, y7 }: z& P
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station; v% \- M$ ~, p0 b$ c: N9 G
                        part := @.transpOrder;
' a9 Q" E: M! D' U+ ?: \                        part.move(@);-- load part
8 N: D: u$ y8 ~! d8 F                        @.CurrIcon := "load";1 Q. a, B7 z: a' R
                        GlobalDistObj := part.globDestination;
) V0 a/ s+ T2 A! ^+ l                        assignLObj := rgmanager.rgAssignL;6 m, @6 x; ]) h3 ~
                        row := assignLObj.getRowNo(GlobalDistObj);' P. G. A9 m8 h; w$ h: F4 _- a* N
                        if Row = -1 then -- since 70/ g, p7 U. Z0 T: q6 A$ k  Q
                                if lan=1 then* t0 D! Q3 d' y1 b) ]
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),) @" ~5 K5 J7 N+ ]8 S
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
" q( h: u1 g& L  i% ]. g5 r                                else
: j& l9 W, O, D6 D1 {# _2 s                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
. x% f; x; P1 g9 p# x1 ^                                                to_str("in docking station: \"",?.~.name,"\""));                                  Z- O& o0 D+ y" S5 |# Z
                                end;2 p1 g5 j, y$ Q- J' ~( _
                        else8 Q: A# W; ^/ R) a& \4 G+ S
                                @.Destination := assignLObj[1,row];( X# W- N6 [. c$ O  y' C  T5 ]
                        end;                          O* }+ k. f) _1 s
                        newDirection(@);- u' f  U- y, n, f7 a2 _
                        @.HasOrder := true;1 Z  W/ {6 b/ R: A
                end;' |7 H. z" q6 M" f. K; Q. p8 u8 Y% o
        end;
: Y7 m! I' j9 _) l2 I  _1 K5 _end;        -- of the method
) V% Y% O) B. Y, a, Z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 * J0 p4 Y0 N7 v# b

& g, b( ~- e; r8 m, ]/ U0 p这是AGV_putin中arrive的method。6 ^! @! V& r) x* c% }5 ]6 t
+ J2 K* n+ b3 r4 o$ O+ v! [
当到达物料速度越高时,这个报警更多,  m, |& o/ w8 `. @5 }
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。9 b7 q3 q  a8 {: `5 \/ S
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?/ Z/ F4 y* S3 {% t
5 \9 n: Q2 d9 Z  C4 S/ ~
另外一个小建议,就是move,所有的move都可以这样8 z- H# ?( g: X0 k' O
if not move() then debug end
* J1 D; Q! X+ ~, |0 h这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。5 g4 m8 A0 Y7 v- G7 E; T: b- j
plant simulation中的free libraries有AGV模板,
, j- v, |. ?; A( n6 |7 d里面也有案例。
0 R$ p+ j+ |2 ?! Z0 `1 m) D8 D我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。; f+ l, k+ M/ w/ ?% \# J) n

/ n+ S- n& l- j- R- [我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 6 _2 }. Y$ J: ?' a

2 m4 J: X& m9 K; V/ V  Y那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ( \! o/ D" K& H* A2 @  g
这是AGV_putin中arrive的method。0 Y& B+ b) u# {& K# d! Z2 W; X, t

" U, g  M( O/ K" e3 n" Y2 O& G' t当到达物料速度越高时,这个报警更多,

4 B6 A, q9 {3 O7 }& t另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-1 12:35 , Processed in 0.021082 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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