设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9627|回复: 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'
" ?; V' ]! z  Y5 g, k8 W; ?0 N*/  v( ]. {8 g% E, g8 f, p: q
is) |; U; \% ~2 D/ ^6 Y
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
. ^. @8 R$ }0 D. `  edo
* N8 D' m2 T. l) ?4 j, ^        Lan := rootfolder.Internal.Tools.AOLlanguage;/ {3 W$ @* I: q) H0 t7 s
        if current = @.Destination -- else return1 c  y; f8 F# y/ ~- R! H: ?
        then# G! g1 ]; a; ?' J
                @.Destination := void;% `" d- Z2 i$ |1 K- k! A  O
                if @.occupied then
) g. w+ A& d- Q# o/ T  f; C                        part := @.cont;! r+ R/ }! y# f4 z1 B* F- a
                        @.transpOrder := void;" V4 I; _4 |! u8 {! o, d. E
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,4 R8 A! H+ r8 W( t8 S
                                @,root.eventcontroller.simTime);/ |$ e1 ~, `; P3 t
                        @.HasOrder := false;
( w5 ?2 P5 b' Z& c4 @9 }4 d                        @.DrivingHome := true;7 L' _7 l: G7 G9 b7 t
                        rgManager.tryToStartTransOrder;5 [! F, n5 N& O
                        if @.Destination = void5 I1 J5 R9 ], e  r$ V
                        then -- no transport order for vehicle @+ U9 l* ]$ S1 M: B/ w
                                @.Destination :=
$ X4 j7 l: b5 y8 I  M& Z+ x9 L                                rgManager.nearestFreeStation(@,track.~);; o  q  ^; U* H- J3 E
                                newDirection(@);   % S4 U, c# t) e5 b
                                if @.Destination /= void then5 b' d$ w5 T# p8 H
                                        @.Destination.NumReservation :=' f8 |9 t7 }8 V: f* b
                                        @.Destination.NumReservation + 1;
7 G, R6 L! P; B! j: L" t7 H                                end;
+ D5 I8 M+ y; ^+ A                                @.CurrIcon := "drivingHome";% i6 K& h+ O0 B/ p
                                @.DrivingHome := true;, r5 z" g9 p: `* C* {) w
                        end;
( U, _5 B+ g# ~8 i, P- \9 r                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
& e# f' v9 M& R. l" a                        part := @.transpOrder;
) Z& H% t8 d. g6 _+ Z                        part.move(@);-- load part3 o+ q! |4 W4 x" a2 ~& |
                        @.CurrIcon := "load";2 T" H' j5 [1 g
                        GlobalDistObj := part.globDestination;4 r4 B+ V, s+ y2 g: c3 D0 ?
                        assignLObj := rgmanager.rgAssignL;0 v% `, Z9 ~) V/ Z# ]
                        row := assignLObj.getRowNo(GlobalDistObj);
/ e" w4 i' B0 }% g                        if Row = -1 then -- since 70
* c9 c4 Z% S) |+ X/ D4 h                                if lan=1 then
) R0 z+ Q- H' I7 I3 o% e1 S' R                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
6 B. i! j8 A" `                                                to_str("in der Andockstation: \"",?.~.name,"\""));3 \9 G8 |& m: X( U% T. d/ d
                                else& k6 z# W$ q/ H+ N% x
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
, z( A/ o% ^; k                                                to_str("in docking station: \"",?.~.name,"\""));                                " P' f( m) d- e+ _- n4 Q) U% {
                                end;2 A; [4 b( J8 r) U  }: ~: `+ T7 _
                        else% D4 h, S: z5 G  f$ Q- X/ d0 V
                                @.Destination := assignLObj[1,row];% w0 I/ Y. j$ Z
                        end;                       
, H- Y5 |9 |# v5 m                        newDirection(@);
8 v+ b+ P5 {/ m                        @.HasOrder := true;0 O' B2 w0 a: q9 S8 T6 n# G+ x
                end;6 l1 \  `1 a9 T: g0 E+ k
        end;
0 c" k7 `0 l  a% m5 Bend;        -- of the method
& U& D/ ~6 [0 O) u! o2 y) J
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
! ~  D! O$ b4 r0 m+ Y# ]* G" V' Q, Y
7 M* m0 v' X$ r6 s# j这是AGV_putin中arrive的method。4 D0 b3 }; s" ^7 Z% T( G. P2 k
- E' `  U+ e; ?/ B3 w
当到达物料速度越高时,这个报警更多,
$ K6 _8 ]; j! ~5 a8 U* ]+ ^可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
* I( q4 e2 ?( f% C( _1 c1 [程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?+ w' K3 ^; P8 ^0 ~0 x) h
. M6 F+ X4 }' j8 Q0 U' U. Q- x2 E
另外一个小建议,就是move,所有的move都可以这样  ]6 h! P* S3 M+ I, m
if not move() then debug end0 e& g" B. T+ i* D
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
* ~( l* ]2 R( ^8 ~1 L  W4 jplant simulation中的free libraries有AGV模板,
+ X7 U6 K+ P: B/ v& d$ s里面也有案例。
4 }! U* l! ]1 r. {! H) }, F我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。* x) s- H: i) o
7 l2 M3 h; ^7 A6 x2 X
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
: ]5 g1 \" G2 Q8 y6 f$ |5 S! o1 ]
4 r2 h7 `2 J) F8 W那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
3 a5 b  r% P# X2 L- n0 K1 A$ S8 I  A" s这是AGV_putin中arrive的method。
8 [" W) O& y: |% o4 u% q% d% ]' n1 R1 p6 D
当到达物料速度越高时,这个报警更多,

$ e) q) b& q/ z/ Y- K/ D7 L另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-12 19:48 , Processed in 0.019039 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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