设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9655|回复: 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'! p" {) F1 {- m- Z+ F" R* v
*/) L, F, A- n- z/ f7 b
is- }& q$ Z/ E. k8 A, C
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
0 I! i. V0 k" ~- Ydo
( N. T( M, v8 C% N/ m4 q" Z        Lan := rootfolder.Internal.Tools.AOLlanguage;9 K3 @  d! g* w. {0 s
        if current = @.Destination -- else return2 b" Q5 O5 C: l) @; r3 b
        then6 o+ d* P+ m; P+ ]1 n
                @.Destination := void;
) l' f) W+ W/ K5 l                if @.occupied then5 e* [: [- ~1 j# ?
                        part := @.cont;
) z9 }4 o+ B/ P( s, s7 ^% [5 S                        @.transpOrder := void;# |  w, r2 y3 M  N8 S* l
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
, N' e8 K( Z# K8 t8 f4 G2 A. J                                @,root.eventcontroller.simTime);! Y, i- t( Q9 E) |, c9 y
                        @.HasOrder := false;
# ^( r$ x% }5 b% u- ~" I/ y8 y. |) |                        @.DrivingHome := true;+ T+ i" a+ k$ @% y. Z- F- \
                        rgManager.tryToStartTransOrder;1 O; M" i# f5 o5 L4 \2 I) u9 M' h
                        if @.Destination = void
2 _5 r' z9 m: m6 ?2 u& l% D2 c                        then -- no transport order for vehicle @  Q8 m  F( ^3 C3 Q) B) E
                                @.Destination :=2 m' O2 ?! ~1 L! |  Q2 d6 s
                                rgManager.nearestFreeStation(@,track.~);
* a" F) a) Z. R! @0 R& i5 A7 U                                newDirection(@);   
5 Y4 y/ E4 `, Z& n% f5 D                                if @.Destination /= void then
  R( I, E+ M7 c& Q; C- S+ [                                        @.Destination.NumReservation :=
$ k; }9 O! S, E) d0 m. ]                                        @.Destination.NumReservation + 1;: b" i5 e/ Q1 w% F3 F8 y
                                end;
2 T  R  I' A8 J1 X5 T                                @.CurrIcon := "drivingHome";* f1 y9 o7 N% h- }& a
                                @.DrivingHome := true;
8 J- {. Q/ M; X2 i, x: X) G1 k                        end;
; d; m6 }2 Z$ f; ^                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
, e& i% x& E+ [6 L8 F; D                        part := @.transpOrder;
$ p4 t, t8 w0 U2 Q: a; }! j1 w                        part.move(@);-- load part
. Y$ t& |2 s. n, N- `                        @.CurrIcon := "load";& f  L  B! E3 _, d) c2 V
                        GlobalDistObj := part.globDestination;9 a* `# V9 V; {! H9 s
                        assignLObj := rgmanager.rgAssignL;/ |" h2 h6 ?1 J4 |7 ?* q% Q
                        row := assignLObj.getRowNo(GlobalDistObj);
1 K: K& [# U/ r. b1 b4 J- g                        if Row = -1 then -- since 70
* H5 x& [) |$ E9 N3 G                                if lan=1 then
" D; Q& ], ~4 x% v                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
2 R. [& H* [% c4 H                                                to_str("in der Andockstation: \"",?.~.name,"\""));$ `1 _0 [6 M. h' ?
                                else0 g7 D$ _7 T) y, Y+ J
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),2 o. l; F2 T4 \5 V
                                                to_str("in docking station: \"",?.~.name,"\""));                                ( g% m) L! _/ y1 o3 R/ C# U! q
                                end;: V' F- H* j& I- |
                        else
& m0 i& [0 j0 g, r; s2 c, {' a9 ^                                @.Destination := assignLObj[1,row];
+ ~) i5 j# p+ p5 m* m                        end;                          Q; U' [+ o3 ~3 B  B: x$ Q; x
                        newDirection(@);; |9 q4 X8 h2 R" Q$ y+ x& n
                        @.HasOrder := true;- ~, s3 F  }$ c) Q1 \& E
                end;3 @( u5 w! ~* P+ L/ g2 R
        end;2 }) z$ I( F/ }: J
end;        -- of the method
/ E" y: r8 o9 ]% ~6 i2 G
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 # m' E7 E7 K, E

) s, p7 Q2 v# g/ f这是AGV_putin中arrive的method。
; b: f9 Q& G" n8 i2 Y: z* b: ^) ?7 Z* Y* K9 B7 ^0 M$ ~6 u  t
当到达物料速度越高时,这个报警更多,  @) v! K+ |0 u1 e& I
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
6 P6 f  w# K/ s% D  v; `$ D程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
, `( O0 r0 P6 ~0 Z
& ^+ z; d: L2 |$ L, T+ ^另外一个小建议,就是move,所有的move都可以这样
$ ^4 D- l$ P( j/ w4 Q0 _/ V( Jif not move() then debug end
9 e1 W4 o, b6 f- H- _. \7 [' w* t这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
! `5 v- |/ U. a9 n& V; q' S- Xplant simulation中的free libraries有AGV模板,2 ^: h8 i5 g' [4 O! o( A
里面也有案例。8 c. ?4 ^9 H" [# w5 Q
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。. k$ H" k. s, Q

6 o8 P5 I, w6 N我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
, D) O: T( X! x' G. J5 F! x1 d1 b. b7 F; n
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
5 E' [1 h$ L6 }% r" e" r5 ?这是AGV_putin中arrive的method。
' X4 t' T1 P# H& k
) R. z3 h% O$ t: @$ y# k; e当到达物料速度越高时,这个报警更多,

/ B" J1 ?! X6 m" f. s另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-15 01:33 , Processed in 0.019269 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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