设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5418|回复: 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', c8 C% |/ o; q& ?# x6 o' h
*/0 w2 f# W, D" r- T
is$ ]4 \$ d' q* o' E" |, g$ k# e
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
# i0 k# N9 A, Z+ x5 ~; U6 Zdo
/ Q- l6 [6 N6 ?. T0 M( Y6 Z' I8 b        Lan := rootfolder.Internal.Tools.AOLlanguage;9 X! E' ?6 I7 b7 t
        if current = @.Destination -- else return4 {' p( b( [7 e' z! Y
        then
$ ]- f5 v7 z( f9 d                @.Destination := void;
4 j6 [" j4 b, H8 {                if @.occupied then5 _1 u' o3 s, }6 o2 i2 Q
                        part := @.cont;
% j2 K8 ?9 U0 n3 W, F6 l) M: N                        @.transpOrder := void;
( l+ I% C2 I: J/ o9 v: w                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,, G! K& L+ @6 W7 C/ `
                                @,root.eventcontroller.simTime);3 X$ G8 R, i3 H7 {: o- `2 K% x
                        @.HasOrder := false;
( N$ O  x+ k; `" [- P                        @.DrivingHome := true;0 u& q3 |$ v" @7 b7 [/ a
                        rgManager.tryToStartTransOrder;
; J0 W3 Z6 D( Q' `                        if @.Destination = void
" h- b3 D  Q) j) Q9 L                        then -- no transport order for vehicle @
% J5 T' r( m$ B                                @.Destination :=
* _3 s, w1 ^$ g- A! U                                rgManager.nearestFreeStation(@,track.~);
( ^# _% b: O2 L                                newDirection(@);   
8 o5 ~, _0 S, S* s% }1 Y) L- S: P                                if @.Destination /= void then
: \; C  V% M1 }5 v! K                                        @.Destination.NumReservation :=0 B, n- v2 ^7 ^/ m
                                        @.Destination.NumReservation + 1;# j. \# _# i( d0 w7 k
                                end;" B9 E" t) z$ c2 b
                                @.CurrIcon := "drivingHome";3 \6 Q4 W0 q* c& M
                                @.DrivingHome := true;
1 o1 \3 \1 D- i+ }3 s                        end;
5 J" |/ M+ O' |# B, D2 `# ?                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
) |" ?6 I6 P0 v8 v! ~                        part := @.transpOrder;( ]1 I  [4 l" D+ Y, F
                        part.move(@);-- load part2 G0 {, A+ l8 h; v7 _0 y8 n
                        @.CurrIcon := "load";
7 D/ y/ c6 K+ b( l* h                        GlobalDistObj := part.globDestination;
2 Z. L; L) S' U1 ^                        assignLObj := rgmanager.rgAssignL;
- \/ r) w# u) y& p/ C8 e! E                        row := assignLObj.getRowNo(GlobalDistObj);$ Q* k4 m+ g( Q) ]$ _
                        if Row = -1 then -- since 70
7 W* o9 c, s9 f0 F3 g8 Q" X. l                                if lan=1 then0 e2 M) Z* \& k4 T, v  ^  p3 n  W
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
( F2 m* p$ t6 o+ F; S                                                to_str("in der Andockstation: \"",?.~.name,"\""));
/ n& f" M  d: F9 z( T! o                                else/ l% A- |0 `' P0 K
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
4 Q$ b3 A' k1 S' l                                                to_str("in docking station: \"",?.~.name,"\""));                                2 X6 `; u( Q8 V& K7 K
                                end;
" F6 T  w( c! z! u- U2 M# m! l                        else8 J( }+ Z; P8 y
                                @.Destination := assignLObj[1,row];
. C! ?! L8 n6 ~; W' q9 p: T                        end;                       
: m. G4 a  ~2 U! `) T                        newDirection(@);5 V, ^! W6 e0 y7 _) Q
                        @.HasOrder := true;
9 z9 F. N5 t* s8 p$ @$ e8 A- P7 ?                end;
% Q2 C- S2 C6 Q  J  l0 r        end;& ?& l+ C4 Z- c& e/ E# R
end;        -- of the method& a% [, {' E( q- Y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑   @1 s. p' m) P
4 Q' w1 I2 O0 j1 D* f7 y$ d% d
这是AGV_putin中arrive的method。% k' g, Y2 z( _. P$ B
% Z# O9 c6 s! K$ e
当到达物料速度越高时,这个报警更多,! c. B6 e" z6 V
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。: P, A) b% ^7 N( ^! m# N8 h
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
3 Q/ _% q0 T5 m5 r
7 ~- |. k; m: g+ c/ P8 p' E3 e另外一个小建议,就是move,所有的move都可以这样8 a4 O  ?2 ?" m' q
if not move() then debug end
3 {1 C/ U; s6 x4 [5 q# p; P这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
. k5 `2 b  m6 xplant simulation中的free libraries有AGV模板,
+ b8 k6 O) [  G* S6 t% A% r里面也有案例。) [" O: S7 V+ N; V* J: D
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
, P9 n' J9 _# S- _' Z9 o6 V1 c1 Z7 W3 A4 \1 @( i4 o# F
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 9 i5 ]# `1 r& k: B9 j; w( ?

( _8 P% ^" E" Q& E/ s那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
. s: ^' Q# K' y6 Y! H3 h' ^* l这是AGV_putin中arrive的method。
! {9 J" }, p2 x: n" f" ~3 X
; m- V  @1 i' c( H1 b/ r当到达物料速度越高时,这个报警更多,

$ p* y4 ~9 g. n# c( e! Z- q+ h另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-22 15:18 , Processed in 0.016858 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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