设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6097|回复: 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'2 |/ P; N$ J  _! k* x) s. A
*/" T5 G0 E' Q% C8 j
is( o4 Y7 l! J$ F- X$ m8 Q
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
7 V. ~, @2 {' K- M6 ]do( q3 Y, x! m( u- w/ z# i: o$ X$ V! G; L
        Lan := rootfolder.Internal.Tools.AOLlanguage;) l$ l& B) N) |6 g0 c
        if current = @.Destination -- else return
# Q  ?7 C: s8 P# }( r8 J        then8 m. \1 x& [) e+ l" P, l+ ?) R$ d& W
                @.Destination := void;
8 I* B& z! L+ O8 l2 v                if @.occupied then
. O! U' f. g9 H  g                        part := @.cont;
6 S% l$ z" t: u3 M  @6 M2 w                        @.transpOrder := void;
) m, [1 B! P7 O                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,) x- B, Z7 d$ e9 E( W
                                @,root.eventcontroller.simTime);* I( X3 A2 v8 r+ r/ A
                        @.HasOrder := false;% E# b- ]2 I6 G8 F1 ?- l! P$ m- o  s
                        @.DrivingHome := true;) `  a( ?7 C0 N- G& s# {% W
                        rgManager.tryToStartTransOrder;
; m- G' u7 Z: w% c                        if @.Destination = void0 g3 v3 ]+ E" \6 ^) }& s
                        then -- no transport order for vehicle @
9 W, m' y8 W7 m                                @.Destination :=
* @9 P2 u8 Y& G$ _- {$ c                                rgManager.nearestFreeStation(@,track.~);
% c: h2 D# ]3 M# Q+ l! H                                newDirection(@);   
6 C4 }% f- w: }" Q: I/ ?( G; |' X                                if @.Destination /= void then1 F9 a, @1 J/ B* {* A, Y/ n% d- @
                                        @.Destination.NumReservation :=& ?  O( J# l$ z+ G2 K, a! A- X
                                        @.Destination.NumReservation + 1;% v# l" [, G! |
                                end;
' A( M( j! q5 _: B# r' u! _                                @.CurrIcon := "drivingHome";
. W4 A) V/ ?. l7 T% J: P                                @.DrivingHome := true;8 m2 o6 L' D, S7 P
                        end;/ [) L/ @5 `9 a; N1 ?
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station4 X: }1 s8 G/ p4 J
                        part := @.transpOrder;
4 _3 }" G4 T0 n                        part.move(@);-- load part
- e# l: k; m3 w8 _7 b9 ^  [                        @.CurrIcon := "load";
) P3 S8 t' p- m" m                        GlobalDistObj := part.globDestination;5 V8 Y% I: c4 Q6 M6 \0 y5 q0 x
                        assignLObj := rgmanager.rgAssignL;
7 J" g0 q. ~$ |% Q0 j! w( i                        row := assignLObj.getRowNo(GlobalDistObj);
7 v7 Y! F! G( R" a  u* V+ O" A* _                        if Row = -1 then -- since 70
" |% T! T% s/ O, W, c                                if lan=1 then9 W3 z/ A, Q  @2 o6 ]
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),0 U6 ?: t- x- j9 d) @/ L" q
                                                to_str("in der Andockstation: \"",?.~.name,"\""));; U+ W: j6 [' h: E5 W9 ~
                                else
1 y) y9 W& P3 l- I9 s                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
$ ]/ A  D" [; a! C; a0 U, p, K3 F                                                to_str("in docking station: \"",?.~.name,"\""));                               
% e" ~' ?9 B7 G  u# v: S0 x                                end;/ C8 E: x" i: a2 w
                        else1 \: T5 g* |, _. `; W+ W6 |
                                @.Destination := assignLObj[1,row];. u9 z# N6 D/ y6 O" [
                        end;                       
# [+ t$ L0 }+ `, [2 u% ]* M# C                        newDirection(@);* {+ d2 v/ A: G9 K: R
                        @.HasOrder := true;  ]; p* e1 K7 l; L
                end;
$ S( v6 t& \! H% L$ b        end;$ e& [! \8 w6 g# c! M
end;        -- of the method
: y9 w1 ]3 T, s$ a8 C. I2 f
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
1 ]4 E* h8 {! o4 w* O
( b: p- W5 B' a8 Y( q这是AGV_putin中arrive的method。6 U: ]0 z  ?1 ]8 q/ L7 S- a7 s
7 N% D$ c" [- w* V" X
当到达物料速度越高时,这个报警更多,& D: O& v# A/ K* |5 x+ A3 b
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
: t' k& V6 L7 c6 D5 t5 }程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?9 L) `/ U7 f# O# X" K/ j- ?
2 T. u2 h3 u) @5 ]  i
另外一个小建议,就是move,所有的move都可以这样
! P, e  E, O7 D: z7 C* `7 E. rif not move() then debug end
; u4 ^8 v5 ~) Z% `1 M这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。( e, f/ y. s1 L; e; O7 c+ F+ C
plant simulation中的free libraries有AGV模板,
8 X8 X9 M/ I, B: O. {0 S里面也有案例。
* f7 Y! ~' f' g. H0 R: k我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
0 M: r& K$ I& ]% U6 o3 J. X1 V! O
5 ?. P! _7 S+ B3 g) m我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 % F% U5 F) {' R$ S, K) f1 L

# a; ]- T' u* m6 j; @那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
: {$ t0 k& U( F' ]. `. D3 r* {0 I. u这是AGV_putin中arrive的method。
. O2 g6 k9 I& o$ a
, x6 @) X6 D- v) O当到达物料速度越高时,这个报警更多,

9 S! _! `. ~( D. n& R3 f  H5 R8 ]1 z另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-18 05:45 , Processed in 0.020146 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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