设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7976|回复: 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 ]( ?9 m* q2 c9 z3 n" o8 K# Z2 j
*/4 c& W6 B, _% I, @
is
+ b" z0 v5 ]+ v! d7 ?        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
3 ]7 v" K( O  @  y0 n. [% N! wdo
+ s5 Q" o9 ?, i0 B  L        Lan := rootfolder.Internal.Tools.AOLlanguage;; v' ~0 j* z$ ]& E( ~
        if current = @.Destination -- else return0 ^! p0 ~! {$ s/ ?# K" H$ S% M
        then7 r9 ~/ ]3 }8 k) I5 y
                @.Destination := void;4 q+ ~, n+ m# B! v$ g
                if @.occupied then
6 W4 S8 t4 s1 P" K% V/ B3 x8 z- h; g( O                        part := @.cont;
+ h! `4 c4 H+ m) e9 K) E, z: n" Q" ?                        @.transpOrder := void;
: S3 z# ?# u/ |1 c                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
. G, A- K& J$ e- p3 b3 u                                @,root.eventcontroller.simTime);
! u! `+ _8 _) W+ m5 E                        @.HasOrder := false;
9 j; T- r( M4 V0 n5 g                        @.DrivingHome := true;
3 C$ U- g! v+ \0 Y7 A/ i                        rgManager.tryToStartTransOrder;
( y' ~9 e: F6 }9 D$ j( a7 _                        if @.Destination = void
! q+ e$ O- J/ x4 W, X                        then -- no transport order for vehicle @
4 r8 r7 g+ r5 W( M                                @.Destination :=$ I8 h$ p$ F: P- o, V2 a
                                rgManager.nearestFreeStation(@,track.~);; A2 R4 w6 X+ s% G1 ~
                                newDirection(@);     a2 b( A8 ^* e5 _$ X
                                if @.Destination /= void then
0 U3 \& M' p- ]. |                                        @.Destination.NumReservation :=" N( e$ {4 `4 k2 k0 t! o
                                        @.Destination.NumReservation + 1;" e1 q( B5 ?; q/ R9 \
                                end;
5 e  e8 A6 y* q( m" Z                                @.CurrIcon := "drivingHome";* D+ |, w* U, v  l
                                @.DrivingHome := true;
- r0 U) k; v$ D6 c7 I5 ?; t                        end;
  T4 \# I0 z4 ]- ^                else -- the vehicle @ is empty, both vehicle and part are in the same dock station$ t* K& G5 |5 K( Q5 |4 W
                        part := @.transpOrder;
7 g2 c) X* C3 A( P# d3 A  c/ ^$ j                        part.move(@);-- load part
6 Q7 x) c5 u1 `" L                        @.CurrIcon := "load";
" H2 h+ k+ x1 P% Y+ U! n                        GlobalDistObj := part.globDestination;
# B5 D1 A; V: m6 H% u$ j, A                        assignLObj := rgmanager.rgAssignL;
, x2 Y% s0 G, s/ h0 G* n                        row := assignLObj.getRowNo(GlobalDistObj);/ V  K" E5 _1 E; I5 |8 r9 x
                        if Row = -1 then -- since 70
9 B, o, y) d7 L& @" ]2 K7 B                                if lan=1 then) P" o3 m; i$ N8 G$ S. i
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),3 ~. \& J8 o: S1 @2 g! y
                                                to_str("in der Andockstation: \"",?.~.name,"\""));$ G7 o( p! j+ v& O2 K# N1 w
                                else7 h/ w- ?# n+ h/ K9 S9 d
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
9 c( o% n. a* V                                                to_str("in docking station: \"",?.~.name,"\""));                                $ t+ _$ V5 M3 X! A+ @. [
                                end;
( H& q7 _7 k7 j                        else5 q. S) D3 q& S: Z
                                @.Destination := assignLObj[1,row];
5 Z" p2 Z8 j/ f9 |& f( n3 O                        end;                       
2 y: L+ _- ~1 U) g$ e4 C: x( o  Q- u                        newDirection(@);7 B* F4 l1 X9 ?: _2 d
                        @.HasOrder := true;: u) A; ?, F3 r. q4 U1 C0 A
                end;
+ {8 R7 _  Q5 x0 h& ~        end;, j( A9 f1 Y6 X5 w  C# o
end;        -- of the method" Y, W* J' J4 @8 U( K% F
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 * K" N+ \6 X. o8 V5 s1 ]
0 J1 T/ d+ s9 O- B. |" n  D
这是AGV_putin中arrive的method。
5 k# y! ]- J! P' s, a# |1 |/ s+ `8 O7 W5 \2 n1 f# i% b$ i
当到达物料速度越高时,这个报警更多,
: |. b. {! c+ U8 G可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
& k4 @/ Q) r: v- l* }& N0 E程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
3 u2 h, X% c( [7 l* e; u$ `
0 f' [6 y7 A' J# V( o另外一个小建议,就是move,所有的move都可以这样- H1 J+ r) ~1 T" u! O* r$ w
if not move() then debug end
! M8 {! T  d3 I! @$ g/ N) @% y这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。4 `! Q# f5 h. v9 H! d( B
plant simulation中的free libraries有AGV模板,
* {8 W3 i: m  A2 G) L6 T里面也有案例。
& S7 }7 S7 T3 W- \我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。6 E5 ]2 J8 s, \* l

. d. H6 {2 \+ P# f! t; n2 n我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 + \5 ~+ f: ^8 |- k. w

5 e) ]  D5 _7 b; u  H; o- F那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
( g$ L7 E( s8 y5 r5 e这是AGV_putin中arrive的method。
1 _$ X% \& H# M7 N* Z2 A, g. u+ s3 q9 N- u0 _% E* w3 ~
当到达物料速度越高时,这个报警更多,
  H+ Y2 d' G* m' g
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-8 16:11 , Processed in 0.018179 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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