设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9332|回复: 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'
$ J+ N( z/ P* g- p*/
& k' m9 _6 B' Z2 e! l6 K/ Iis8 v  o# z% D) ^' z& }6 T
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
* w$ X0 F  h6 D/ M# bdo5 |* p! m% C) ?4 `/ W/ w( p+ U- j4 U% l
        Lan := rootfolder.Internal.Tools.AOLlanguage;
0 l3 F, f6 d& g, Q1 P        if current = @.Destination -- else return
+ h- x/ [/ E3 Z3 M  W) I        then
' X. E6 }7 S( ?* s                @.Destination := void;$ ?% M5 k* M8 ~: Y+ V
                if @.occupied then
* Q7 U, i8 Y. S7 V                        part := @.cont;# D  G0 v+ _; \( |4 A4 _6 i, a
                        @.transpOrder := void;. X) S: |! y- u* Z- S
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
4 @% u& t8 _4 E/ C2 _, j* {                                @,root.eventcontroller.simTime);
+ L7 R% c+ j$ \! C9 [                        @.HasOrder := false;
8 H$ _5 ]& ]2 B% N4 `( V                        @.DrivingHome := true;
, G' ~6 C. L  P. c( o                        rgManager.tryToStartTransOrder;# J+ ^- _3 [% o* K* o( i3 g" m
                        if @.Destination = void
6 j$ N; `; h. k! h  |% M5 ^                        then -- no transport order for vehicle @' o. S% }$ v/ I) m
                                @.Destination :=5 `9 ?( s3 m  \) q( L. m9 [
                                rgManager.nearestFreeStation(@,track.~);- B* N" E5 |& [1 D. ^8 n2 j: Q
                                newDirection(@);   4 q  e1 l" i2 N8 ^. i, X. L
                                if @.Destination /= void then
5 b& P+ O) |2 c' ?* `                                        @.Destination.NumReservation :=- v, _: g3 _; ]* w
                                        @.Destination.NumReservation + 1;' j$ D% ]) u9 a# m! U7 T% O
                                end;
5 [- y0 }$ @  U- q& ~                                @.CurrIcon := "drivingHome";
7 p1 g+ q- i6 _3 }4 }/ G: |                                @.DrivingHome := true;! _& R  x& p4 E  v, b# }2 x
                        end;
. @( y# E3 l/ ~- b                else -- the vehicle @ is empty, both vehicle and part are in the same dock station; Y; M6 w2 r0 d6 h& D
                        part := @.transpOrder;
. h* }5 `9 Q: r* l                        part.move(@);-- load part
0 N6 q& _$ m( E$ ]  C8 K9 ^                        @.CurrIcon := "load";, s% d: \5 Y4 e7 ]) i' K) Q" m
                        GlobalDistObj := part.globDestination;/ ]" I! J* ?' `* c
                        assignLObj := rgmanager.rgAssignL;
% T. [" `9 f7 a9 V3 i! I                        row := assignLObj.getRowNo(GlobalDistObj);
) O! _$ W  a: ?* I. _, D                        if Row = -1 then -- since 70' P& \6 C4 V' A. r0 y1 H
                                if lan=1 then2 W3 E6 j# Y3 w. r) Z1 {: s
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
$ i: W3 a+ a7 W                                                to_str("in der Andockstation: \"",?.~.name,"\""));0 |3 r  j' C4 t$ k- H& w4 u
                                else
6 c& ~' _" f0 |                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
1 F6 ~0 N4 |  Q/ w6 e                                                to_str("in docking station: \"",?.~.name,"\""));                                4 S6 Z, k$ `5 `3 }1 }' B+ \
                                end;+ v0 I2 [3 c  k
                        else
  Q# X0 @1 P; i) B& E; ], ]0 \* k                                @.Destination := assignLObj[1,row];
0 U& I; @  L3 R3 U* {1 K( @                        end;                        # N( w: ]( s2 ^3 f" O" A$ m8 F
                        newDirection(@);
9 {/ }) |% F3 t# q0 \                        @.HasOrder := true;
/ |% u& H& g! q1 w1 g* z' L! j                end;
  r  w8 R2 n3 l( `" z9 J# }        end;, f9 e7 w  ]7 ^9 W- j2 z# Z" |
end;        -- of the method
7 l3 F* d( l+ ~; y5 p. t! d
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 " [/ L' {0 D2 f6 ~! E4 N
% q0 k6 H: O- }8 W$ n+ i
这是AGV_putin中arrive的method。
- _5 ^# ^' b9 _: M9 ^: ~. W; W9 d4 ~. Z. c7 x: b1 j/ }0 y  k' N7 }
当到达物料速度越高时,这个报警更多,
5 f# N9 S4 F! q( E+ o: T可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。" A  H3 W1 z! c2 b" d* R( [. f. ]% e
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?; W: v; k5 D* X3 @
9 d4 ^: R6 b" m& x
另外一个小建议,就是move,所有的move都可以这样
  e+ i) U; k- |0 s( S; n9 `, ?$ ^if not move() then debug end
1 o8 N3 L; M6 I这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
* m5 u$ [8 \: _" }plant simulation中的free libraries有AGV模板,1 B9 r# }- `; {
里面也有案例。
. x& I( C- K, S4 ^* o4 V我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
# b0 Y# d9 }( i: D  J! N8 T1 \; P% z3 y2 D
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
1 _0 i; N6 K; Z( B
1 L* L0 X. Y7 p4 M1 d那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
! q' c! E* b' A# u6 Z0 ]  \+ i这是AGV_putin中arrive的method。
5 G- A8 a! M* K8 a; A0 |3 U9 e8 N: A7 M  R1 R, b  d4 G
当到达物料速度越高时,这个报警更多,

3 N7 l8 P1 L) a另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-26 00:18 , Processed in 0.016621 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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