设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7446|回复: 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'
7 w  ~/ J; A' G/ l*/
: \+ b% K2 W5 ~8 ~is$ s8 P: u1 z; G
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;2 D1 J3 N; a' [, M
do
1 A/ ^8 f  D  ~+ e        Lan := rootfolder.Internal.Tools.AOLlanguage;
. M" @; Z8 O$ b5 j+ ]4 `: A        if current = @.Destination -- else return
& Z2 o- G* X# r  e* Z" [7 P        then5 O; y2 M4 i9 G9 }; G
                @.Destination := void;
  ?5 s" T# B5 j* g9 [                if @.occupied then* l. g) I' Q4 f1 g
                        part := @.cont;
$ a! B# l; {" c7 C7 y                        @.transpOrder := void;, k: v6 M2 J- _% f6 Z* Y% H
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,& }# F' a% n2 ^5 F+ N3 B- T
                                @,root.eventcontroller.simTime);
4 h7 J, s9 Q1 h" ^" _2 a$ I                        @.HasOrder := false;
0 O- _) F2 `3 j2 N                        @.DrivingHome := true;
9 P2 X; w: n( l. H. ^( O; e                        rgManager.tryToStartTransOrder;' p& d3 ~# N- X: U" u
                        if @.Destination = void
3 g0 {. o2 @  V* w# g/ i                        then -- no transport order for vehicle @
' t& P- V2 I9 G' O2 T                                @.Destination :=
9 A6 x( c) }; S" w- ~                                rgManager.nearestFreeStation(@,track.~);
& D: Y6 M/ G3 l/ R* c8 L8 f2 {% {, _                                newDirection(@);   
' ~+ f8 M6 U! u3 d. A) y6 j; a% S                                if @.Destination /= void then
, S9 b7 A9 Y; h$ c- H# h                                        @.Destination.NumReservation :=4 v6 N4 _' Y: u
                                        @.Destination.NumReservation + 1;; N; d- K2 Z0 O1 `5 g) D
                                end;
2 @9 P  _, {# d% G- h                                @.CurrIcon := "drivingHome";+ z8 T( p: B& d) z3 K
                                @.DrivingHome := true;
' R8 |, U9 B5 d( K/ k: C                        end;
& a, l" ]9 R2 ~6 P. N; {                else -- the vehicle @ is empty, both vehicle and part are in the same dock station. R/ V3 |' V9 L, N
                        part := @.transpOrder;0 f" V3 B5 L$ x( X
                        part.move(@);-- load part1 [% a7 T  ^+ j1 q9 n2 O- E# B
                        @.CurrIcon := "load";9 W3 D5 ?1 f" G& D
                        GlobalDistObj := part.globDestination;+ u$ z! c' ?0 c& |
                        assignLObj := rgmanager.rgAssignL;3 ~4 n- p. M* S  @3 ~
                        row := assignLObj.getRowNo(GlobalDistObj);
' I" N' i- Q+ w                        if Row = -1 then -- since 70
3 x' u, E* D# ~! v! B                                if lan=1 then
: P! q' p+ Y+ ~0 J- Q" x! |                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),4 W3 I' v4 ~% z0 G4 o2 ?
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
" m- `3 g; c) p$ t" f" w# o                                else! K" F' `. x. F" B4 C4 N
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
7 o3 |% \! P* k2 [                                                to_str("in docking station: \"",?.~.name,"\""));                                - {6 p% {7 t6 V, [5 \/ B$ i! Y
                                end;! e  _; P5 e7 y# d; L$ }( }9 ~8 B
                        else
+ J6 Z* G) x* e' P! o; r- ~2 X                                @.Destination := assignLObj[1,row];5 q+ r8 x9 }. W, o: z* u0 _! X' M
                        end;                       
/ w, q( W7 \4 A+ N( \; g                        newDirection(@);
. T+ [* H6 n7 [                        @.HasOrder := true;# D: Z+ g6 |5 g
                end;
/ ^8 s/ a4 W4 B% m; p  S$ Q        end;
' H7 P" m  G: oend;        -- of the method4 k+ n! c! ?( O& D. a9 {
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
$ k: E% N9 _) o2 N' K3 [) z8 `* \1 ]8 B
这是AGV_putin中arrive的method。( y5 f1 z. G4 Y+ `! f

) d$ O7 {2 J6 |0 ?. Y) H当到达物料速度越高时,这个报警更多,- O5 Q, `2 @5 X$ d, a( k
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。  s' p+ V! \) p$ {9 }4 ~9 O9 d
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?/ k7 D6 s9 L3 x& l

3 i' c4 C5 s; i8 ]* n! o7 |! s另外一个小建议,就是move,所有的move都可以这样
: o5 h7 G# j- r' B- Pif not move() then debug end
  h' r6 A4 W( V2 ]1 O0 P5 F这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。9 }5 J: `+ b% s% ^. i
plant simulation中的free libraries有AGV模板,' @# p/ g& G. Q3 R. m
里面也有案例。; D! L/ ^% ]; a" J# E
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。3 B5 ]& |9 r) T

. L5 e1 o8 W) ]# [我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ' H% x4 }6 W- K! b" f
2 |: _! f/ w' `2 {& `9 v" P. m4 S
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
; J; r, a# h: D$ O" g7 p0 c这是AGV_putin中arrive的method。
. `; n% e* Q+ i
) o2 P! S* Y/ z( C当到达物料速度越高时,这个报警更多,
/ |: p1 x- m" F/ i7 S7 U
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-11 23:36 , Processed in 0.020631 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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