设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9952|回复: 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'
% I% h% @1 @0 X6 l8 p# e*/
* u/ T: u+ a( N! N! Z: A6 c: yis+ Q* t4 p7 ~+ M
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;) ]5 g8 r6 ?4 }4 d3 o& Z- q
do
1 g/ O& b& c1 c3 J$ _        Lan := rootfolder.Internal.Tools.AOLlanguage;
" i; z! \1 m3 l& G        if current = @.Destination -- else return
) S5 Q9 Z: F5 y) N        then. m2 M7 ~3 w+ F$ Y& @, V
                @.Destination := void;
: j/ m) O7 f/ q( e                if @.occupied then
' r) N  ~$ N6 ]) i8 B  h& w6 i                        part := @.cont;7 ]0 ]- D5 _, W* d1 }" ~2 X
                        @.transpOrder := void;7 h7 O, k: b; E1 h9 b
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
: o$ R' }( O( P  ~                                @,root.eventcontroller.simTime);" e0 _+ T. j) W3 e( i5 h* _$ Z9 G+ m
                        @.HasOrder := false;
. Z# Z2 i$ [# U" Y4 E5 _                        @.DrivingHome := true;
$ k. B( T2 L7 P& X0 |9 u                        rgManager.tryToStartTransOrder;5 [! x* g% L% m! M+ y3 K0 s
                        if @.Destination = void
0 |# ^) s. k& N5 V: a                        then -- no transport order for vehicle @- V) h, \0 I  a+ M
                                @.Destination :=+ j# N6 O: o' o8 c4 s% i! G
                                rgManager.nearestFreeStation(@,track.~);
# G( Q6 g9 M. K/ S                                newDirection(@);   
$ w1 Q  B/ y8 Z: V1 W; C                                if @.Destination /= void then
1 z8 f6 Z- T6 R1 N- h                                        @.Destination.NumReservation :=
2 j' L8 I7 e. |* m& w, i                                        @.Destination.NumReservation + 1;
" m  V% X3 g" p) o                                end;  m! c6 k, I% t" A/ U1 i1 j5 C- ?8 X
                                @.CurrIcon := "drivingHome";
& O+ @& ^0 F, `+ n" o$ I' O                                @.DrivingHome := true;
0 }0 a/ F* q7 W+ e9 e" a                        end;
3 M2 Y7 M. k/ q& ]                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
7 s6 D5 }$ L: H7 {, k$ G                        part := @.transpOrder;
" M+ X4 u- c  [                        part.move(@);-- load part: R& P% b1 L6 x3 t2 D
                        @.CurrIcon := "load";$ n" t+ T4 [# j7 v7 u9 b0 S) d) k) w+ D
                        GlobalDistObj := part.globDestination;( A( j1 U: P+ l
                        assignLObj := rgmanager.rgAssignL;2 I/ Y8 R$ {1 l5 H; i4 C4 Q
                        row := assignLObj.getRowNo(GlobalDistObj);. M* {. a1 {( h& i& M
                        if Row = -1 then -- since 70
/ |& h8 D9 Q9 R2 p, y6 v2 ^                                if lan=1 then
  M  `0 i4 @! [3 `; S; p# Z                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
' V: f/ Q, n% w& m* h                                                to_str("in der Andockstation: \"",?.~.name,"\""));  z8 i' a: h5 h! f
                                else5 @7 x$ {: L- B9 X( ^% e$ m) m
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\"")," k( l; g- v4 {- ]
                                                to_str("in docking station: \"",?.~.name,"\""));                                1 R. `$ n, `7 ]/ }6 z9 ?( j. s# u
                                end;
8 p& p6 c  s% z! @) O/ {, u) b                        else* A  b! ?. x; c: ^( I
                                @.Destination := assignLObj[1,row];  N8 V4 ]+ `" L" p
                        end;                       
! b  v. m: Y+ S! c5 q' L                        newDirection(@);
- f0 P5 \, p5 t3 W0 h" Z% o8 v                        @.HasOrder := true;
! b) ]- P: X7 u9 r6 D+ ~) R+ [                end;
, t7 _  m5 z' v2 J        end;, S; _# f& V6 t  |& R4 H
end;        -- of the method% g1 R% w! a0 _( K5 v
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 6 Y/ v0 e* d2 d! D- t+ b! D% i

2 S( n2 z: o3 S0 b% i1 h) Q这是AGV_putin中arrive的method。
5 A2 A' P/ S1 Q+ X2 i4 X( G7 o
" }" M3 [- \4 L+ ]9 b当到达物料速度越高时,这个报警更多,: C+ F4 X; b2 n, j& |4 f, ~8 h  m" }/ A
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
7 \& d# O% C/ t, s. l9 ~程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
6 X( W, v$ P; {; i) m" I
" f, p$ ^2 V6 a3 T1 @- U% W( ?另外一个小建议,就是move,所有的move都可以这样, O9 ~7 O6 o% u/ g" z0 m
if not move() then debug end; A) `# q0 L' u9 T' F+ }7 h+ F7 E
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
) B9 v" ]6 k- N8 h8 bplant simulation中的free libraries有AGV模板,) C8 z% r1 X7 m" P2 r0 n1 o
里面也有案例。
# O9 m, \3 L6 a$ N/ d我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。& h, i' l6 |: {  j. C, M

- k+ M. g, Y5 W; q( N我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 % N1 d4 G2 y+ o+ Y6 O3 d# w; j
6 Y+ t! E3 y. g% F! l  L
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 * i2 e3 F7 ^4 A
这是AGV_putin中arrive的method。
" t" J# m0 F1 L2 ]- G3 M# P
( t+ `( Z) T9 ]7 g) c3 i; v4 M当到达物料速度越高时,这个报警更多,

- F: `. D+ i) G4 ~另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-4 03:55 , Processed in 0.019471 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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